DevOpsエンジニアはEC2インスタンス上のアプリケーションをApplication Load Balancer(ALB)経由でCodeDeployのインプレースデプロイを使って更新しています。新バージョンインストール後、ALBへのトラフィック再登録前に自動統合テストを実行し、テスト失敗時はトラフィックを新バージョンに切り替えずに即座にロールバックしたいと考えています。使用すべきAppSpecライフサイクルフックはどれですか?
ALBを使用するインプレースデプロイでは、BeforeAllowTrafficフックがデプロイ対象インスタンスをALBターゲットグループに再登録する直前に実行されます。このフックでテストが失敗(exit code 1)した場合、CodeDeployはトラフィックを新バージョンへ切り替えることなくデプロイを失敗とし自動ロールバックをトリガーします。 選択肢AのAfterInstallはアプリケーション起動前の設定後フックであり、ALBへの登録制御とは連携しません。 選択肢BのValidateServiceはALBへの再登録後に実行される最終検証フックであるため、トラフィック切り替えを防ぐ用途には使用できません。 選択肢DのApplicationStartはアプリケーション起動直後のフックであり、同様にALB登録前ですがトラフィック制御と直接連携しません。