DVAデプロイ
開発者がAWS CodeDeployを使用してEC2インスタンス群にWebアプリケーションをデプロイしています。デプロイ要件は以下の通りです。
・デプロイ開始時にApacheを停止する
・アプリケーションファイルのインストール完了後に自動テストスクリプトを実行する
・テスト成功後にApacheを起動する
appspec.ymlのhooksセクションに設定すべきライフサイクルイベントの組み合わせとして正しいものはどれですか?
AApplicationStop(Apache停止スクリプト)、AfterInstall(テストスクリプト)、ApplicationStart(Apache起動スクリプト)を設定する
✓ 正解
ApplicationStopはデプロイ前の実行中アプリ停止、AfterInstallはファイルインストール後・起動前のスクリプト実行(テストに最適)、ApplicationStartはアプリ起動に対応しており、三つの要件をすべて正確に満たすライフサイクルイベントの組み合わせである。
BBeforeInstall(Apache停止スクリプト)、AfterInstall(テストスクリプト)、ApplicationStart(Apache起動スクリプト)を設定する
BeforeInstallはファイルのインストール前に実行されるフックであり、実行中アプリケーションの停止には使用しない。デプロイ開始時に実行中アプリを停止するにはApplicationStopを使用すべきである。
CApplicationStop(Apache停止スクリプト)、ValidateService(テストスクリプト)、ApplicationStart(Apache起動スクリプト)を設定する
ValidateServiceはApplicationStart後に実行されるライフサイクルイベントであり、「ファイルインストール後・アプリ起動前のテスト実行」という要件には時系列が合わない。インストール後・起動前のテストにはAfterInstallが正しい。
DPreDeploy(Apache停止スクリプト)、Install(テストスクリプト)、PostDeploy(Apache起動スクリプト)を設定する
PreDeploy・PostDeployはCodeDeployのEC2/オンプレミスデプロイに存在しないライフサイクルイベント名である。またInstallフェーズはCodeDeployエージェントが管理するフェーズのため、ユーザーによるスクリプト設定はできない。
解説
CodeDeployのEC2/オンプレミスデプロイでは、appspec.ymlのhooksセクションに以下のライフサイクルイベントを定義できます。
・ApplicationStop:デプロイ開始前に実行中アプリケーションを停止するフック
・BeforeInstall:ファイルインストール前の準備作業(解凍・権限設定等)
・Install:ファイルのインストール(CodeDeployエージェントが管理、スクリプト設定不可)
・AfterInstall:インストール完了後・アプリ起動前の処理(テスト実行に最適)
・ApplicationStart:アプリケーションの起動
・ValidateService:アプリ起動後のサービス検証
要件の「デプロイ前にApache停止」→ApplicationStop、「インストール後にテスト」→AfterInstall、「テスト後に起動」→ApplicationStartの組み合わせが正しい。
選択肢BのBeforeInstallはファイルインストール前の準備作業に使うフックであり、実行中のApache停止にはApplicationStopが適切である。
選択肢CのValidateServiceはApplicationStart後に実行されるイベントであり、「インストール後・起動前」のテスト実行には時系列が合わない。
選択肢DのPreDeploy・Install・PostDeployはEC2デプロイの有効なライフサイクルイベント名ではなく、Installフェーズへのスクリプト設定も不可能である。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →