.ebextensions を使用して、AWS Elastic Beanstalk 環境をカスタマイズしたいと考えています。
解決策
**注: ** AWS コマンドラインインターフェイス (AWS CLI)コマンドの実行時にエラーが発生した場合は、 AWS CLI のエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
.ebextensions ディレクトリを設定する
次の手順を実行します:
- アプリケーションバンドルのルートに、.ebextensions という名前のディレクトリを作成します。
- 設定ファイルをこのディレクトリに保存します。アプリケーションのソースバンドルは次の例のようになります:
~/workspace/my-application/
|-- .ebextensions
| |-- 01-server-configuration.config
| `-- 02-asg-healthcheck.config
|-- index.php
`-- styles.css
注: ** Elastic Beanstalk は、 .ebextensions ** ディレクトリの設定ファイルをアルファベット順に処理します。ファイル名に番号付きのプレフィックスを使用して、構成の順序を制御します。
Elastic Beanstalk 環境をカスタマイズする
環境の構成を変更するには、option_settings キーを使用します。
Elastic Beanstalk コンソールまたは Elastic Beanstalk Command Line Interface(EB CLI)を使用して環境を作成または更新すると、これらのクライアントによって 推奨値 が適用されます。推奨値は、API レベルで直接設定され、最大の優先順位が割り当てられます。option_settings を使用して構成を変更することはできません。
優先順位ルールにより、** option\ _settings ** の変更が環境設定に適用されない場合があります。環境の作成時に Elastic Beanstalk が環境に直接適用した設定を削除するには、Elastic Beanstalk API の UpdateEnvironment オペレーションを使用します。または、次の update-environment AWS CLI コマンドを使用することもできます:
aws elasticbeanstalk update-environment --application-name applicationname --environment-name environmentnamename --options-to-remove Namespace=aws:elasticbeanstalk:application:environment,OptionName==yourpropertyname
**注: ** applicationname をご使用のアプリケーション名に、environmentname をご使用の環境名に、yourpropertyname をプロパティ名に置き換えてください。
option_settings を使用して設定を変更できない場合は、リソース キーを使用して Elastic Beanstalk 環境の リソースをカスタマイズ してください。
Elastic Beanstalk は、設定ファイルで定義したリソースを、環境を起動する AWS CloudFormation テンプレートに追加します。CloudFormation テンプレートは、すべての CloudFormation リソースタイプをサポートしています。論理リソース名の詳細については、Elastic Beanstalk が環境に作成するリソースを変更するを参照してください。
構成ファイルの拡張子は .config であり、形式は YAML または JSON である必要があります。
設定ファイルが YAML 形式を使用している場合は、ファイルのインデントに一貫したスペースを使用していることを確認してください。インデントが正しくないと、デプロイが失敗する可能性があります。
キーを使用して Linux サーバーや Windows サーバーのソフトウェアをカスタマイズします。各キーは、各設定ファイルで 1 回だけ使用してください。
Amazon Linux 2 と Amazon Linux 2023 をベースとするプラットフォームでは、インスタンスのプロビジョニング中に ** Buildfile 、 Procfile **、および プラットフォームフック を使用してカスタムコードを実行するのがベストプラクティスです。設定ファイルでは、コマンド と container\ _commands を引き続き使用できます。詳細については、プラットフォームフックを使用して Elastic Beanstalk 環境をカスタマイズする方法?」を参照してください。
Elastic Beanstalk にアプリケーションをデプロイする際は、 .ebextensions 設定ファイルを使用して、Amazon Elastic Compute Cloud(Amazon EC2)インスタンスをカスタマイズします。構成ファイルのサンプルについては、GitHub のウェブサイトで elastic-beanstalk-samples を参照してください。
.ebextensions を使用して環境の HTTPS を設定する方法については、Elastic Beanstalk 環境の HTTPS を設定するを参照してください。
カスタム設定をアプリケーションに適用する
設定ファイルを含むアプリケーションソースバンドルを作成し、 その後、 更新したアプリケーションをデプロイします。
注: ** ZIP ファイルの作成時に、ファイルアーカイブツールに隠しディレクトリが含まれていない場合があります。ファイルブラウザには、ピリオドで始まるフォルダ (例: ** .ebextensions) が表示されない場合があります。これらのフォルダを表示させるには、アプリケーションソースバンドルを作成する際、.ebextensions フォルダをアプリケーションバンドルのルートに配置します。
.ebextensions の設定に関する問題のトラブルシューティング
デプロイ後に Elastic Beanstalk ** が.ebextensions ** 設定を適用しない場合は、以下のアクションを実行してください。
**ディレクトリの場所とファイル拡張子を確認してください **
Elastic Beanstalk コンソールで最近の環境イベントを確認してください。Elastic Beanstalk からのデプロイおよび設定メッセージは、** イベント ページに表示されます。ソースバンドルのルートに.ebextensions ** ディレクトリを設定し、設定ファイルに.config ファイル拡張子を使用していることを確認します。
**デプロイログを確認する **
Amazon EC2 インスタンスに接続し、設定ファイルに関連するエラー、起動失敗、またはデプロイの問題がないか、** /var/log/eb-engine.log ** を確認します。デプロイ結果については、/var/log/cfn-init.log と /var/log/cfn-init-cmd.log も確認してください。
デプロイログを表示するには、コンソールでのデプロイログの表示を参照してください。
ログを取得するには、 Elastic Beanstalk 環境の Amazon EC2 インスタンスからログ を表示するのインスタンスログを取得するを参照してください。
**最近の構成変更を元に戻す **
**.ebextensions ** 設定の変更によりデプロイが失敗した場合は、アプリケーションバージョンを再デプロイしてください。
関連情報
Elastic Beanstalk 環境のトラブルシューティング