EC2 インスタンスの 1 つから AMI を作成したとします。これを手動で LB に追加するか、AutoScaling グループに任せることができます (提供した条件に基づいて)。この時点までは、すべて問題ありません。
ここで、開発者が新しい機能を追加し、私が既存のインスタンスに新しいコードをプルしたとします。この時点では AMI は更新されておらず、古いコードが残っていることに注意してください。私の質問は、自動スケーリング グループが私の AMI から新しいインスタンスを作成するときに最新のコードを使用できるように、この状況をどのように処理する必要があるかということです。
2つの方法が頭に浮かびます。他に解決策があれば教えてください。
a) AMI を常に最新の状態に保つ。つまり、プルリクエストがあるたびに、古い AMI を削除 (削除) し、新しいものに置き換える必要があります。
b) 初期起動時にリポジトリから最新のコードを取得する起動スクリプト (cloud-init) を AMI に用意します。(リポジトリ資格情報をインスタンスに保存し、コードを git から直接プルすることにより)
これらの方法のうち、どちらが優れていますか? 両方が良くない場合、この目標を達成するためのベストプラクティスは何ですか?