Q71 — AWS DOP-C02 第1章

第 71/100 問 | ← 第1章

ある企業が、Amazon EC2インスタンス上で実行されるアプリケーションを運用しています。同社はAWS CodePipelineを用いてアプリケーションを複数のAWSリージョンへデプロイしています。パイプラインは各リージョンごとにステージを構成しており、各ステージにはそのリージョン向けのAuto ScalingグループおよびCloudFormationアクションが含まれています。 パイプラインがアプリケーションをあるリージョンへデプロイした後、パイプラインが次のリージョンへ進む前にアプリケーションが健全であることを確認したいと考えています。各リージョンのアプリケーションに対してAmazon Route 53レコードが設定されています。DevOpsエンジニアは、各リージョンのAmazon CloudWatchアラートに基づいたRoute 53ヘルスチェックを作成しました。 DevOpsエンジニアが次に実施すべき手順は何ですか?

正解: A. CloudWatchアラートのステータスを確認するAWS Step Functionsワークフローを作成します。ワークフローを、アラートがALARM状態の場合にエラー終了するよう設定します。各リージョンのデプロイステージ間に新しいステージをパイプライン内に作成します。各新規ステージに、Step Functionsワークフローを呼び出す操作を含めます。

解説

AWS CodePipelineでは、各ステージ間でヘルスチェックの確認ステップを挿入する必要があります。本問では、各リージョンへのデプロイ後にアプリケーションの状態を検証し、その後に次のステージへ進むことが求められています。選択肢Aは、AWS Step Functionsワークフローを用いてCloudWatchアラートのステータスを確認し、ALARM状態の場合は失敗して終了するよう設定し、各リージョンのデプロイステージ間に新しいステージを追加してStep Functionsワークフローを呼び出す操作を含めるという手法です。これは、パイプラインのフロー制御要件を満たします。CodePipeline自体はCloudWatchアラートのステータス待機をネイティブにサポートしないため、カスタムStep Functionsワークフローによる実装が必要です。他の選択肢は、存在しないネイティブ統合に依存(選択肢C)、不要なコンポーネント導入(選択肢D)、または既存のデプロイアーキテクチャ変更(選択肢B)を伴うため、適切ではありません。正解は選択肢Aです。