web-dev-qa-db-ja.com

2つのインスタンスを切り替えることで、ダウンタイムなしでEC2 Linuxインスタンスを自動的に更新するにはどうすればよいですか?

要するに-OSAmazonLinuxまたはUbuntu。 1つのEC2インスタンス(またはOpsWorksインスタンス?)が実行されています。 1日に1回、2番目のインスタンスを開始し、最新のセキュリティアップデートで更新して、アプリをインストールします。最初のインスタンスをシャットダウンします。毎日繰り返す...

AWS ドキュメントの状態

デフォルトでは、AWSOpsWorksはセットアップ中に最新のアップデートを自動的にインストールします...お勧めします...新しいインスタンスを作成して開始し、現在のオンラインインスタンスを置き換えます。次に、現在のインスタンスを削除します。新しいインスタンスには、セットアップ中に最新のセキュリティパッチのセットがインストールされます。

このプロセスを自動化する方法は?

1つのマイクロインスタンスを開始してCLIを介してこのプロセスを管理できますが、AWS組み込みツールを使用して、失敗時に通知を受け取り、冗長性を追加して(CLIインスタンスが失敗した場合)、すべてが続行されるようにします。新しいCLI/AWSAPIバージョンなどで動作します。

エレガントなアプローチが欠けていますか?

更新:既存のElasticIPを使用する機能が推奨されます。

2
Maris B.

ELBの背後でEC2インスタンスを使用します。

起動時に、ノードは最新のセキュリティ更新プログラムをダウンロードしてインストールし、アプリケーションを実行するために必要なその他の構成を行う必要があります。

インスタンスのサイクリングについては、1日1回:

  1. 2番目のEC2ノードを作成します
  2. それがそれ自体を構成して利用可能になるのを待ちます
  3. 2番目のノードをELBに追加します
  4. ELBから古いノードを削除します
  5. 頭の中の古いノードを撃ちます

上記のすべては、おそらくLambdaジョブとしても、さまざまなAWSAPIを使用して簡単に自動化できます。

5
EEAA