無限ノック › DOP 練習問題一覧 › 問題
DOP構成管理と Infrastructure as Code (IaC)

開発チームは Elastic Beanstalk を使用して Python Web アプリケーションをデプロイしています。以下の3つの要件をコードとして管理し、スケールアウト時の新規インスタンスにも自動適用されるようにしたいと考えています。 ①社内の監視エージェント(RPM パッケージ:Linux 系 OS のパッケージ形式)をすべての EC2 インスタンスにインストールする、 ②アプリケーションを実行する専用 Linux ユーザー `appuser` を作成する、 ③`/etc/myapp/config.ini` に環境変数から生成した設定ファイルを配置する。最小の運用負荷で実現する方法はどれですか?

A
EC2 起動テンプレートの UserData に3つの処理をすべて記述し、Elastic Beanstalk の環境設定で当該起動テンプレートを参照させる
EC2起動テンプレート設定は、Beanstalk が管理する起動テンプレートを直接手動で上書きすることになり、環境更新時に変更が失われるリスクがあります。
B
デプロイパッケージ(ZIP)の `.ebextensions/` ディレクトリに YAML 設定ファイルを作成し、`packages`・`users`・`files` キーを使用して各要件を定義してパッケージに含める
✓ 正解
`.ebextensions/` は Elastic Beanstalk ネイティブのカスタマイズ機構で、デプロイパッケージに含めることでバージョン管理されます。`packages` キーで RPM/yum パッケージをインストール、`users` キーで Linux ユーザーを作成、`files` キーでファイル内容・パーミッション・テンプレート変数を含むファイルを配置できます。Beanstalk は内部で cfn-init を使用して設定を適用し、スケールアウト時の新規インスタンスにも自動適用されます。
C
Systems Manager Run Command ドキュメントを作成し、Elastic Beanstalk の環境デプロイイベントに EventBridge ルールでトリガーして各インスタンスに処理を実行させる
SSM Run Command と EventBridge は複雑であり、スケールアウト時の新規インスタンスへの自動適用も保証されません。
D
CodeDeploy AppSpec ファイルの `hooks` セクションに `BeforeInstall` フックスクリプトを定義し、Elastic Beanstalk デプロイ時に実行されるよう設定する
CodeDeploy AppSpec は Elastic Beanstalk のデプロイ仕様とは別サービスの仕様であり、標準の Beanstalk デプロイパッケージには使用しません。

解説

`.ebextensions/` は Elastic Beanstalk ネイティブのカスタマイズ機構で、デプロイパッケージに含めることでバージョン管理されます。`packages` キーで RPM/yum パッケージをインストール、`users` キーで Linux ユーザーを作成、`files` キーでファイル内容・パーミッション・テンプレート変数を含むファイルを配置できます。Beanstalk は内部で cfn-init を使用して設定を適用し、スケールアウト時の新規インスタンスにも自動適用されます。 選択肢AのEC2起動テンプレート設定は、Beanstalk が管理する起動テンプレートを直接手動で上書きすることになり、環境更新時に変更が失われるリスクがあります。 選択肢CのSSM Run Command と EventBridge は複雑であり、スケールアウト時の新規インスタンスへの自動適用も保証されません。 選択肢DのCodeDeploy AppSpec は Elastic Beanstalk のデプロイ仕様とは別サービスの仕様であり、標準の Beanstalk デプロイパッケージには使用しません。

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

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

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