無限ノック › DOP 練習問題一覧 › 問題
DOPSDLC の自動化

企業はCodePipelineとCodeDeployを使用してECSサービスのブルーグリーンデプロイを実装しています。デプロイ後に問題が検出された場合に即座に自動ロールバックを行いたいと考えています。また正常なデプロイが完了した後は元のBlue(旧バージョン)タスクセットを60分間保持してから削除し、万が一の際に素早く切り戻せるようにしたいと考えています。この両方の要件を満たすCodeDeployの設定として正しいものはどれですか?

A
デプロイグループのAlarm configurationにALBの5xxエラー率を監視するCloudWatch Alarmを設定してアラーム発火時の自動ロールバックを有効化し、BlueGreenDeploymentConfigのTerminateBlueInstancesOnDeploymentSuccessのterminationWaitTimeInMinutesを60に設定する
✓ 正解
ECS CodeDeployブルーグリーンデプロイでは、デプロイグループのCloudWatch Alarmsを使ったAlarm-based Auto Rollbackにより、アラーム発火時に即時自動ロールバックが実現します。BlueGreenDeploymentConfigのTerminateBlueInstancesOnDeploymentSuccess.terminationWaitTimeInMinutes=60により、デプロイ成功後60分間Blueタスクセットが保持され、素早い手動切り戻しも可能です。
B
デプロイグループでAutomatic Rollback on Failureを有効化し、AppSpecのAfterAllowTrafficフックでエラー監視スクリプトを実行する。BlueインスタンスのTermination WaitはCodePipeline側のウェイトアクションで60分制御する
CodePipelineのウェイトアクションではCodeDeploy側のBlueタスク保持を制御できず、アラームベースの自動ロールバックも実現できません。
C
CloudWatchダッシュボードで5xxエラー率を監視し、閾値超過時にEventBridgeルールがLambdaを呼び出してCodeDeploy StopDeployment APIを実行する。Blue保持はECSサービスのminimumHealthyPercentを調整して制御する
「Lambda」は、イベント伝搬の遅延があり即時性に欠け、Blue保持もminimumHealthyPercentでは制御できません。
D
デプロイ設定をCodeDeployDeploymentConfig_LINEAR_10PercentEvery1Minutesに変更し、各ステップ後にCloudWatch Alarmをチェックする。完全移行後60分間はタスク定義の古いリビジョンをECRに保持する
ECR(Elastic Container Registry)はコンテナイメージを格納するレジストリであり、Blueタスクセットの保持期間管理をECRへのイメージ保持で実現しようとしている点が根本的に誤りです。ECS向けのLINEARデプロイ設定は実在しますが、BlueタスクセットのCodeDeployによる保持期間管理はTerminateBlueInstancesOnDeploymentSuccess.terminationWaitTimeInMinutesで行うものであり、ECRへのイメージ保持とは無関係です。

解説

ECS CodeDeployブルーグリーンデプロイでは、デプロイグループのCloudWatch Alarmsを使ったAlarm-based Auto Rollbackにより、アラーム発火時に即時自動ロールバックが実現します。BlueGreenDeploymentConfigのTerminateBlueInstancesOnDeploymentSuccess.terminationWaitTimeInMinutes=60により、デプロイ成功後60分間Blueタスクセットが保持され、素早い手動切り戻しも可能です。 選択肢Bは、CodePipelineのウェイトアクションではCodeDeploy側のBlueタスク保持を制御できず、アラームベースの自動ロールバックも実現できません。 選択肢Cの「Lambda」は、イベント伝搬の遅延があり即時性に欠け、Blue保持もminimumHealthyPercentでは制御できません。 選択肢Dは、Cloudwatch Alarmチェックを組み込む考え方自体は誤りではありませんが、Blueタスクセットの保持を「古いタスク定義リビジョンをECRに保持する」方法で実現しようとしている点が根本的に誤りです。ECR(Elastic Container Registry)はコンテナイメージを格納するレジストリサービスであり、ECSのタスク定義とは異なるリソースです。ECS向けのLINEARデプロイ設定は実在しますが、BlueタスクセットのCodeDeployによる保持期間管理はTerminateBlueInstancesOnDeploymentSuccess.terminationWaitTimeInMinutesで行うものであり、ECRへのイメージ保持とは無関係です。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDOPを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← DOP の問題一覧に戻る