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ワークフローを呼び出す操作を含めます。 ✓
- B. AWS CodeDeployアプリケーションを構成し、自動ロールバック機能付きCloudFormationテンプレートをデプロイします。CloudWatchアラートをCodeDeployアプリケーションのインスタンスヘルスチェックとして構成します。パイプラインからCloudFormationアクションを削除します。各リージョンのパイプラインステージにCodeDeploy操作を作成します。
- C. アプリケーションをデプロイする各リージョン向けに新しいパイプラインステージを作成します。新規ステージにCloudWatchアラート操作を構成し、CloudWatchアラートのステータスを確認します。アラートがALARM状態の場合、エラー終了します。
- D. EC2インスタンスにCloudWatchエージェントを構成し、Route 53ヘルスチェックへアプリケーションのステータスを報告します。アプリケーションをデプロイする各リージョン向けに新しいパイプラインステージを作成します。CloudWatchアラートがALARM状態の場合、CloudWatchアラート操作をエラー終了およびエラー表示するよう設定します。
正解: 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です。