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

WebアプリケーションチームがAWS CodeDeployを使用してEC2インスタンスへのデプロイを設定しています。デプロイ中に以下の3つの処理を実行する必要があります。 ①新しいファイルがコピーされる前に、現在稼働中のWebサーバーを停止する ②新しいファイルがインストールされた後に、データベーススキーマのマイグレーションスクリプトを実行する ③アプリケーション起動後にヘルスチェックエンドポイントへのリクエストが正常に返ることを確認する これらの処理をAppSpec.ymlで定義する際、正しいライフサイクルイベントフックの組み合わせとして適切なものはどれですか?

A
BeforeInstall → AfterInstall → ValidateService
BeforeInstallはファイルコピー前の前処理(ファイル復号化など)に使うフックです。稼働中WebサーバーはApplicationStopで停止します。AfterInstallとValidateServiceの組み合わせは正しいですが、最初のフックが誤りです。
B
ApplicationStop → AfterInstall → ValidateService
✓ 正解
ApplicationStop(稼働中サーバー停止)→ AfterInstall(ファイルコピー後のDBマイグレーション)→ ValidateService(動作確認)という順序が、3つの要件を正確に満たすライフサイクルフックの組み合わせです。
C
ApplicationStop → ApplicationStart → ValidateService
ApplicationStartはアプリケーション起動コマンドの実行に使うフックです。DBマイグレーションはファイルコピー直後のAfterInstallで実行するのが正しく、ApplicationStartへの置き換えは誤りです。
D
BeforeInstall → ApplicationStart → ValidateService
BeforeInstallはWebサーバー停止用途ではなく、ApplicationStartはDBマイグレーション用途でもないため、3つの要件すべてに対して誤ったフックが割り当てられた組み合わせです。

解説

CodeDeployのEC2/オンプレミスデプロイにおけるライフサイクルイベントの正しい使い方が問われています。 ApplicationStopは、新しいリビジョンのダウンロードが始まる前に実行されるフックで、現在稼働中のアプリケーションやWebサーバーを停止するために使用します。AfterInstallは、新しいファイルがEC2インスタンスにコピーされた直後に実行されるフックで、データベースマイグレーションや設定ファイルの変更など、インストール後の処理に最適です。ValidateServiceはApplicationStartの後に実行される最終フックで、デプロイされたアプリケーションが正常に動作していることを確認します。 選択肢AのBeforeInstallはファイルコピー前の前処理(ファイル復号化など)に使うフックであり、稼働中のWebサーバー停止にはApplicationStopが適切です。 選択肢CのApplicationStartはアプリケーション起動コマンドを実行するフックであり、DBマイグレーションの実行場所としては不適切です。 選択肢DはBeforeInstallとApplicationStartの組み合わせで、3つの要件のいずれに対しても適切なマッピングになっていません。

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

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

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