ある会社は Amazon ECS(Elastic Container Service)で本番サービスを運用しており、AWS CodeDeploy を使った Blue/Green デプロイメントを導入しています。タスク定義を更新した後、本番トラフィックを新しいタスクセット(Green 環境)に完全に切り替える前に、テストリスナーポートを通じた動作確認を Lambda 関数で実施したいと考えています。 AppSpec ファイルで使用すべきライフサイクルイベントフックはどれですか?
ECS の CodeDeploy Blue/Green デプロイでは、ALB のテストリスナー経由でテストトラフィックが Green 環境に流れた直後に AfterAllowTestTraffic フックが呼び出されます。このフックに Lambda 関数を指定してスモークテストを実行し、成功すれば本番トラフィックが切り替わります。 選択肢AのBeforeInstallはGreen環境のタスクセット作成前に実行されるフックであり、テストリスナー経由のトラフィックがまだ有効化されていない段階のため、動作確認には使用できません。 選択肢CのBeforeAllowTrafficはAfterAllowTestTrafficの完了後・本番トラフィック切り替え前に呼び出されます。テストリスナー経由の動作確認はAfterAllowTestTrafficで行うのが標準であり、BeforeAllowTrafficは本番切り替え前の最終準備など別の目的に使用します。 選択肢DのAfterAllowTrafficは本番トラフィックが切り替わった後に実行されるフックで後処理に使用するため、事前の動作確認には遅すぎます。