2

AWS は初めてです。複数の ec2 インスタンスにあるアプリを更新する方法について、誰かが正しい方向に向けることができますか?

この回答を見つけました: 負荷分散された複数の EC2 インスタンスを更新するにはどうすればよいですか? この記事を指している: http://linuxforlovers.wordpress.com/2009/04/11/sharing-amazon-elastic-block-store-among-multiple-instances/ 記事が更新され、EBS から起動できることが説明されています。現在のところ、本質的に無制限のサイズを持つことができる、バックアップされた AMI。

これは、アプリで更新できる ebs インスタンスを使用する代わりに、アプリを ec2 インスタンスにロードし、ebs ボリュームに保存された ami を作成してから、EBS-backed ami から起動できることを意味しますか?

これは、ami だけではなく、ami を使用して起動構成を ebs ボリュームに設定するということですか?

本質的に私の質問は、各マシンにログインしてアプリを変更せずに、複数の ec2 インスタンスで実行されているアプリを更新するにはどうすればよいですか?

ありがとう!

4

5 に答える 5

2

Netflixはあなたが説明したアプローチを使用します。新しいアプリのリリースごとに独自のAMIが作成され、オープンソースのAsgardソフトウェアを使用してローリング再起動を行い、古いインスタンスを終了し、新しいAMIを実行する新しいインスタンスを生成します.

これは完全に有効な作業方法ですが、私のほとんどの作業ではやり過ぎです。多くの場合、AMI の構築と管理は、新しいソフトウェアをサーバーに単に配置するよりも面倒です。私は主にcapistranoを使用してコードの起動 (ほとんどの場合は を実行する必要がありますgit pull) と Web サーバーの再起動を自動化し、 chefを使用してサーバー構成の変更とサードパーティ ソフトウェアのインストールを行います。システムの変更が必要な場合は、新しい AMI を作成して、それを使用して再起動します。

したがって、ワークフローのどの側面がボトルネックを作成しているかに依存すると思います。展開の自動化だけの場合は、capistrano とchef をチェックしてください。アプリの更新に多くの摩擦と展開の手間がかかる場合は、AMI が適している可能性があります。いずれにせよ、シェフのレシピがサーバーを特定のソフトウェア バージョンの仕様に合わせて構築できることを常に確認しています。お役に立てれば。

于 2012-11-19T19:33:30.650 に答える
1

これを達成する方法は、新しいソフトウェアが展開されるたびに新しい ami を作成することだと思います。次に、ami ごとに新しい起動構成を作成します。次に、スケーリング グループを新しい起動構成で更新します。

于 2012-11-29T19:45:59.560 に答える
1

AWS CodeDeployを使用して、複数の EC2 でアプリを更新できます。インスタンス全体で段階的に動作し、アプリケーションが引き続き使用可能で、トラフィックの処理を継続できるようにすることで、ダウンタイムを最小限に抑えます。

また、デプロイの追跡、停止、ロールバックの作成もできます。アプリが EC2 で実行されている場合は無料です。

于 2016-06-15T11:31:30.197 に答える
0

あなたが説明する問題を正確に解決するためにRubyで書かれたデプロイメントツールであるcapistranoをチェックしてください。

これはRubyツールですが、Ruby以外のアプリケーションをデプロイするために使用できます。

複数のサーバーへの同時SSHを管理し、コードを更新し、各サーバーの役割に合わせた展開タスクを実行します。

于 2013-03-05T01:50:00.840 に答える
0

OpsWorksがリリースされた今、状況は少し変わりました。それを見てください。これは、Amazonがサポートする、あなたが望むことを行うための手段ですが、あなたのニーズにはやり過ぎかもしれません.

于 2013-02-27T18:46:08.933 に答える