DVAデプロイ
ある開発チームがElastic BeanstalkでPython Webアプリケーションを運用しています。EC2インスタンス上に`git`と`jq`というOSレベルのパッケージをデプロイ時に自動インストールする必要があります。この設定はアプリケーションコードと同じリポジトリでバージョン管理したいと考えています。最も適切なアプローチはどれですか?
A`.ebextensions/packages.config`ファイルを作成し、`packages`セクションにyum経由でインストールするパッケージを定義する
✓ 正解
`.ebextensions`ディレクトリの設定ファイルはアプリケーションZIPに同梱されるためコードと共にバージョン管理でき、`packages`セクションでYum経由のOSパッケージインストールを宣言的に定義できます。
BElastic Beanstalkの環境プロパティにカスタムスクリプト設定を追加し、デプロイ時に`yum install git jq`コマンドを実行させる
Elastic Beanstalkの環境プロパティは環境変数(キーと値のペア)の設定専用機能であり、`yum install`などのOSコマンド実行やパッケージインストールの制御には対応していません。
Cアプリケーションルートの`Procfile`にパッケージインストールコマンドを記述し、Elastic Beanstalkのデプロイ時に実行させる
ProcfileはWebサーバーやバックグラウンドワーカーのプロセス起動コマンドを定義するファイルであり、デプロイ時のOSパッケージインストールには使用できない仕組みです。
DAWS Systems Manager State Managerのアソシエーションを作成してインスタンスへのパッケージインストールを継続的に管理する
Systems Manager State Managerはインスタンス構成の継続的管理に有効ですが、アプリコードと同一リポジトリでバージョン管理するという要件を満たせず、Elastic Beanstalkの標準的なデプロイフローとも切り離された構成になります。
解説
Elastic Beanstalkの`.ebextensions`ディレクトリ配下に配置するYAML形式の設定ファイルを使うと、デプロイ時にEC2インスタンスを詳細にカスタマイズできます。`packages`セクションではYumやaptなどのパッケージマネージャー経由でOSパッケージをインストールでき、設定ファイルはアプリケーションのZIPソースバンドルに含めるためコードと一緒にバージョン管理が可能です。
設定例(.ebextensions/packages.config):
packages:
yum:
git: []
jq: []
選択肢Bの環境プロパティは環境変数(キーと値のペア)を設定するための機能であり、OSコマンドの実行やパッケージインストールには対応していません。
選択肢CのProcfileはWebサーバーやワーカープロセスの起動コマンドを定義するファイルであり、デプロイ時のOSパッケージインストールには使用できません。
選択肢DのSystems Manager State Managerはインスタンス設定を継続的に適用・維持する仕組みとして有効ですが、アプリケーションコードと一緒にバージョン管理するという要件を満たせず、Elastic Beanstalkの標準的な仕組みとも独立しています。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →