Q97 — AWS DOP-C02 第1章

第 97/100 問 | ← 第1章

ある企業が、AWS CodePipeline を使用してソフトウェアリリースパイプラインの自動化を進めています。AWS CodeDeploy がパイプライン内で使用され、Amazon Elastic Container Service (Amazon ECS) へのアプリケーションデプロイメントにブルー/グリーンデプロイメントモデルが採用されています。同社は、トラフィックをグリーン環境に切り替える前に、テストスクリプトを実行してグリーン環境のアプリケーションを検証したいと考えています。これらのスクリプトは5分以内に完了する必要があります。テスト中にエラーが検出された場合、アプリケーションは自動的にロールバックされる必要があります。

正解: C. CodeDeploy の AppSpec ファイルに hooks セクションを追加します。AfterAllowTestTraffic ライフサイクルイベントを使用して、テストスクリプトを実行する AWS Lambda 関数を呼び出します。エラーが検出された場合、Lambda 関数をエラー終了させることでロールバックを開始します。

解説

AWS CodeDeploy のブルー/グリーンデプロイメントでは、AppSpec ファイル内の hooks を使用してライフサイクルイベントを定義します。AWS ドキュメントによると、AfterAllowTestTraffic イベントは、トラフィックをグリーン環境に切り替える直前に発生し、検証テストを実行できます。この段階で Lambda を呼び出してテストスクリプトを実行し、エラー終了コードを返すと、CodeDeploy は自動的にデプロイをロールバックします。選択肢 C はこのメカニズムを正しく活用しており、他の選択肢は適切なライフサイクルイベントを使用していないか、外部コマンドによるデプロイ停止に依存しており、自動ロールバック要件を満たしません。