ある企業ではEC2インスタンス群へのアプリケーションデプロイにAWS CodeDeployのBlue/Greenデプロイメントを使用しています。新バージョンのデプロイ後にAmazon CloudWatchアラームがエラーレートの急増を検知した際、デプロイを自動的にロールバックするメカニズムを実装したいと考えています。最も運用効率が高いアプローチはどれですか?
AWS CodeDeployのデプロイグループにはCloudWatchアラームをトリガーとした自動ロールバック機能がネイティブに組み込まれています。デプロイグループの設定で「アラームによるロールバック」を有効化し対象アラームを指定するだけで、アラームがALARM状態になると自動的に直前の正常なバージョンへロールバックされます。 選択肢AのLambda・CloudWatchアクション方式は、StopDeployment APIはデプロイを停止するのみで以前のバージョンへの自動復元は行われず、ロールバック処理を別途実装する必要があるため構成が複雑になります。 選択肢CのEventBridge・SSM Automation方式は、オーバーエンジニアリングであり応答遅延やメンテナンスコストも増加します。 選択肢DのCodePipeline Lambda ポーリング方式は、定期ポーリングのため応答遅延が大きく、メンテナンスコストも高くなります。