Java Webアプリを構築し、 EC2にデプロイしたいと思います。これはJavaで記述され、MySQLを使用します。私は実際の展開プロセスと構成に関するいくつかの指針を得ることを望んでいました。特に、次のトピックに興味があります。
- マシンイメージ(DIYと既製)
- mysqlのレプリケーションとS3へのバックアップ
- 中断することなくアプリをEC2にデプロイおよび再デプロイする方法
- ファイアウォール?
- 負荷分散と自動スケーリング
- cloudtools(または代替ツール)
Java Webアプリを構築し、 EC2にデプロイしたいと思います。これはJavaで記述され、MySQLを使用します。私は実際の展開プロセスと構成に関するいくつかの指針を得ることを望んでいました。特に、次のトピックに興味があります。
私は経験からあなたの議論のポイントのいくつかにしか話すことができません。Stackoverflowを初めて使用し、複数のリンクを投稿するのに十分な担当者がいないため、さまざまなAmazon製品へのハイパーリンクを削除する必要がありました。
マシンイメージ:確かに自分のマシンイメージから始めて、EC2 AMIツールを使用してAMIに変換できますが、Amazonの既製のイメージの1つから始めて、ニーズに合わせてカスタマイズすることをお勧めします。ここでの利点は、ベースイメージがデプロイされることをすでに知っていること、フォーラムまたはEC2スタッフからヘルプを得る可能性が高いこと、および物理マシンをセットアップする手間をかける必要がないことです。イメージをバンドルしてアップロードするための独自のVM。EC2 APIツールを使用している場合は、を使用して利用可能なベースイメージのリストを取得できますec2-describe-images -o amazon
。
MySQLのレプリケーションとバックアップ:新しい(ish)Amazon RelationalDatabaseServiceを確認してください。MySQLと連携するように設計されており、自動バックアップを実行でき、簡単に拡張できます。
ファイアウォール:インスタンスのファイアウォールの処理は、APIツールを使用すると簡単です。たとえば、グループを作成できます。
ec2-add-group condor –d “Condor Workers”
そのグループのファイアウォールルールを設定します(悪い例-CIDR範囲のすべてのUDPおよびTCPポートを開きます)、
ec2-authorize condor -P tcp -p 0-65535 -s 129.127.0.0/16
ec2-authorize condor -P udp -p 0-65535 -s 129.127.0.0/16
次に、インスタンスをグループの一部として起動し、ファイアウォールルールを継承します。
ec2-run-instances ami-12345678 –g condor –k mykeypair
トリッキーな部分は別の方向に進んでいます-EC2インスタンスが会社/学校/パーソナルネットワークと通信できるようにします。インスタンスが起動する前にどのIPを使用するかわからないため(Amazon Elastic IPはこれをある程度軽減できます)、通常、EC2クラウドのサブネットを許可する必要があります。
インスタンスにIptablesまたは追加のファイアウォールを設定することもできます。
負荷分散: Amazon ElasticLoadBalancingを検討してください。それがニーズに合わない場合は、独自の「仮想クラスター」を作成して、好きなフレームワークを使用できます。