1

ubuntuベースイメージに自分のアプリケーションスタックをインストールしてセットアップし、その後マシンからAMIを作成するプロセスをセットアップしました。このすべてはパッカーを使用して自動化されています。一度パッカーが完了したら、私は手動で新しい起動設定を作成し、ASG設定を更新してから、古いインスタンスを取り除くスケールアップとスケールダウンをスケジューリングします。AWS AMIのアップデートとロールアウトのプロセスを自動化する

それでは、私が探していますは、次のとおりです。

  1. どのようにすることができます任意のソフトウェアバージョンの新しい更新があるたびに、私のアプリケーションスタックを更新するためのより良い方法を提案してください(例:ngnixルビーなど)
  2. ロールアウトプロセスを自動化して、新しいamiが取得され、古いインスタンスが低下するようにします。
+0

あなたはAWS Systems Managerを見ましたか? – Rajesh

+0

いいえ、私はしていません。両方の問題を解決することはできますか? CloudFormを使用して、ロールアウトプロセスを実行できるスタックを更新する方法について読んだことがあります。 AWSシステムマネージャを使用した例を教えてください。 – Umer

+0

謝罪..パッチを更新するためのベースイメージを作成すると仮定していました。アプリケーションの更新を展開する場合は、AWS CodeDeployを使用できます。このようにして、アプリケーション(https://aws.amazon.com/codedeploy/)を更新するときにAMIを作成する必要はありません。 – Rajesh

答えて

2

このプロセスを編成するにはFaster Auto Scaling in AWS CloudFormation Stacks with Lambda-backed Custom Resources

で、このための良い戦略がありますが、あなたは、 ユーザーデータスクリプトで参照インスタンスをブートストラップAMIキャプチャをトリガするために待機条件を使用し、そして最後に が新しく作成されたAMIを参照するAuto Scalingグループ起動設定を作成します。 を使用してAMIを取得する参照インスタンスを終了するか、または 管理アクセスまたはスケジュールされたタスクを実行するために再利用することができます。

プロセスはPackerを使用せず、AMIを作成するための専用サーバーを必要とせず、ラムダバックアップのカスタムリソースを使用します。

番目のオプション

すでにパッカーであなたのAMIの作成に取り組んできたように、あなたが更新さAMIを使用して、既存の起動コンフィギュレーションをコピーするためにラムダを使用することを検討すべきです。あなたはPatch an AMI and Update an Auto Scaling Groupからこれに対する良いアプローチを見ることができます:

次の例は、 が新しく付き自動スケーリンググループを更新ステップを追加することで オートメーション、ラムダ、およびパラメータのストアの例を使用して簡素化AMIのパッチ適用に基づいていますパッチされたAMI。この アプローチにより、自動スケーリンググループを使用する異なるコンピューティング環境の新しいイメージが自動的に利用可能になります。

この例のオートメーションワークフローの最後のステップでは、AWS ラムダ関数を使用して、既存の起動設定をコピーし、 AMI IDを新しくパッチを適用したAMIに設定します。自動スケーリンググループは、 が新しい起動設定で更新されます。このタイプの自動 スケーリングシナリオでは、ユーザは 自動スケーリンググループ内の既存のインスタンスを終了させて​​、新しい イメージを使用する新しいインスタンスを強制的に起動することができます。または、ユーザーは待って、スケールインまたはスケールアウトイベントを に自然に新しいインスタンスを起動させることができます。

関連する問題