無限ノック › DVA 練習問題一覧 › 問題
DVAデプロイ

開発チームがAWS CodeDeployを使用してAmazon ECSサービスのBlue/Greenデプロイメントを実施しています。新しいタスクセットが起動された後、本番トラフィックを切り替える前に、テスト用リスナー(ポート8080)経由で自動統合テストを実行したいと考えています。AppSpec.yml のどのライフサイクルフックにテスト用Lambda関数を設定すべきですか?

A
BeforeInstall
新タスクセット作成前に実行されるため、テストトラフィックがまだ新タスクセットへ切り替わっておらず、テスト用リスナー経由の統合テスト実行ができません。
B
AfterInstall
新タスクセット作成後・テストトラフィック切り替え前に実行されるため、テスト用リスナーが新タスクセットへのルーティングを開始する前段階であり、統合テスト実行に不適切です。
C
BeforeAllowTraffic
テストトラフィック切り替え後に実行されますが、AfterAllowTestTrafficでテストに失敗した場合、本番トラフィック切り替え前に即座にロールバック可能な方がより安全であり設計上正しいフックです。
D
AfterAllowTestTraffic
✓ 正解
テスト用リスナーが新タスクセットへのルーティング開始直後に実行されるため、本番トラフィック切り替え前の統合テスト実行に最適なフックです。テスト失敗時には本番切り替え前にロールバック可能です。

解説

AfterAllowTestTraffic。 ECSのBlue/GreenデプロイにおけるAppSpec.ymlのライフサイクルフックは、BeforeInstall(タスクセット作成前)→ AfterInstall(タスクセット作成後・テストトラフィック切り替え前)→ AfterAllowTestTraffic(テスト用リスナーへのルーティング開始後)→ BeforeAllowTraffic(本番トラフィック切り替え前)→ AfterAllowTraffic の順に実行されます。 AfterAllowTestTraffic はテスト用リスナー(ポート8080等)が新タスクセットへトラフィックを流し始めた直後に実行されるため、本番トラフィック切り替え前の統合テスト実行に最適なフックです。 選択肢A(BeforeInstall)と選択肢B(AfterInstall)はテストトラフィックがまだ新タスクセットへ届いていない段階であり、テスト用リスナー経由の統合テストを実行できません。 選択肢C(BeforeAllowTraffic)は本番トラフィック切り替え直前のフックですが、AfterAllowTestTraffic でテストに失敗した場合に即時ロールバックが可能であり、本番前テストの実行には AfterAllowTestTraffic が設計上の正しいフックです。

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

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

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