NoSQL データベースのベンチマークを行うための小さな Java ツールを作成しました。十分なコンピューターがないため、Amazon EC2 でベンチマーク ツールといくつかのデータベース ノードを実行したいと考えています。
それは可能ですか?-> 追加の設定なしで EC2 に Java アプリをデプロイできますか?
ありがとうございました
NoSQL データベースのベンチマークを行うための小さな Java ツールを作成しました。十分なコンピューターがないため、Amazon EC2 でベンチマーク ツールといくつかのデータベース ノードを実行したいと考えています。
それは可能ですか?-> 追加の設定なしで EC2 に Java アプリをデプロイできますか?
ありがとうございました
追加の設定なしで EC2 に Java アプリをデプロイできますか
はい。一般的なウェブアプリを実行している場合は、Elastic BeanStalk を調べることができます。しかし、それはベンチマークには機能しません。
EC2 コンピューターは単なるコンピューターですが、OS を手動でインストールする代わりに、AMI と呼ばれるプリインストールされた OS を選択して起動できます。Java がプリインストールされたイメージを探すこともできますが、お気に入りのUbuntu /Fedora/Centos/ AmazonLinuxを起動して、「apt-get install java」または「yum install java」を実行するのはかなり簡単です。
最初に、プログラムをボックスにアップロードし、SSH でテストします。ただし、ワークフローを開始するときは、プログラムを S3 にアップロードしてから、起動時にボックスにダウンロードさせる方がよいでしょう。(S3 は通常、アップロード速度よりも高速で、信頼性が高くなります。)
起動時に「ごくわずかな」設定を行うだけの場合は、cloud-init
. これにより、起動時に事前定義されたスクリプトが実行されます。(起動時にコマンドを EC2 ユーザーデータ構成に入れるだけです。) Java のインストール、アプリのダウンロード、アプリの実行の 3 つのコマンドと同じくらい簡単です。
より高度な操作を行うには、Chef、Puppet、またはAnsibleを使用して複数のサーバーを調整します。
しかし、ベンチマークのアイデアのような単純なものについては、AWS API を使用して簡単に「独自のものを作る」ことができます。ライブラリ (Python の場合は Boto、Ruby の場合は Fog。Java の場合はいくつかあると思います) を使用して、次のことを行うプログラムを作成します。1) NoSQL DB をインストールする cloud-init スクリプトを使用してインスタンスを起動します。2) 待機します。 IPを取得するため。3) Java テスト プログラムを構成する cloud-init スクリプトを使用して別のインスタンスを起動し、ステップ 2 から IP を渡します。後で収集できるようにします) 5) インスタンスを終了してクリーンアップします (タグ付けするとクリーンアップが容易になります)
これらすべてを手動で行うこともできますが、バグが見つかった場合は、すべてを再実行する必要があり、自動化によって簡単になります。さらに、さまざまなインスタンス サイズで調査結果を繰り返したいと思うでしょう。
動作するようになったら、実際のベンチマークを実行するときにスポット インスタンスに切り替えることができます。これらのインスタンスは、起動に時間がかかりますが、大量の費用を節約できます。そのため、スポット インスタンスは開発にとって煩わしいものですが、起動時間を気にしない一括テストの実行には最適です。