無限ノック › DVA 練習問題一覧 › 問題DVA デプロイ
開発チームがAWS CodeDeployを使用してEC2インスタンス上のWebアプリケーションをin-place(現行インスタンスへの上書き)デプロイしています。appspec.yml に以下の4つの処理をフックとして定義する必要があります。
① 旧バージョンのWebサーバープロセスの停止
② デプロイ後のヘルスチェック実行
③ 設定ファイルの権限変更・初期化
④ 新バージョンのWebサーバープロセスの起動
処理①〜
④を正しいライフサイクルイベントフックに対応させた組み合わせはどれですか?
A ①BeforeInstall ②ValidateService ③AfterInstall ④ApplicationStart
BeforeInstallはファイルコピー前のフックのため旧サーバーを停止するには早すぎます。①の旧Webサーバー停止にはApplicationStopが正しく、選択肢AはBeforeInstallとApplicationStopを混同しています。
B ①ApplicationStop ②ValidateService ③AfterInstall ④ApplicationStart
✓ 正解
ApplicationStop(①停止)→AfterInstall(③初期化)→ApplicationStart(④起動)→ValidateService(②ヘルスチェック)はライフサイクルの正しい順序と完全に一致しています。
C ①ApplicationStop ②AfterInstall ③ValidateService ④ApplicationStart
②ヘルスチェックにAfterInstallを使うとアプリケーション起動前にヘルスチェックが実行される誤った順序になります。②デプロイ後ヘルスチェックにはValidateService(最終確認フック)を使うべきです。
D ①BeforeInstall ②AfterInstall ③ApplicationStart ④ValidateService
BeforeInstallは①の旧サーバー停止に使うことができず(ファイルコピー前のフック)、②③④についてもAfterInstall・ApplicationStart・ValidateServiceの割り当てがすべて誤っています。
解説 EC2 in-placeデプロイのライフサイクルイベントは ApplicationStop → DownloadBundle → BeforeInstall → Install → AfterInstall → ApplicationStart → ValidateService の順です。
各処理と対応するフック:
①旧Webサーバープロセスの停止 → ApplicationStop(最初に実行)
②デプロイ後のヘルスチェック実行 → ValidateService(最後に実行)
③設定ファイルの権限変更・初期化 → AfterInstall(新ファイルコピー後)
④新Webサーバープロセスの起動 → ApplicationStart
選択肢Aが誤りの理由:BeforeInstallはファイルコピー前のフックであり旧サーバー停止には使えません。選択肢Cは②と③のフックが逆(ValidateServiceとAfterInstallが入れ替わっています)。選択肢Dは②③④の対応がすべて誤りです。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →