本番環境で AWS CodeDeploy を使用した EC2 インスタンスへの Blue/Green デプロイを実施しています。先日のデプロイ後、ALB(Application Load Balancer)のヘルスチェックはすべて正常でしたが、CloudWatch カスタムメトリクス `AppErrorRate` が閾値を超えアプリケーションレベルの障害が発生していました。次回以降のデプロイで同様の問題が発生した際に、人手を介さず自動ロールバックするための最も適切な設定はどれですか?
選択肢Aは、CodeDeploy デプロイグループには CloudWatch アラームを監視設定として追加でき、指定アラームが ALARM 状態になると自動的にデプロイを停止してロールバックします。ALB ヘルスチェックが正常でもアプリケーションレベルのカスタムメトリクスでロールバックを制御でき、完全自動化が実現します。 選択肢Bは、CodePipeline への手動承認ステージ追加は手動介入が必要で RTO(Recovery Time Objective: 目標復旧時間)が悪化します。 選択肢Cは、ALB アクセスログのリアルタイム性が低く(数分の遅延)、Lambda 経由での API 呼び出しより CodeDeploy ネイティブのアラーム連携のほうがシンプルかつ確実です。 選択肢Dは、CloudWatch Synthetics カナリアは手動介入が必要で RTO が悪化します。