環境を作成する前に設定オプションを設定する
AWS Elastic Beanstalk は、環境内のリソースに適用される設定を変更するための設定オプションを数多くサポートしています。これらのオプションの一部には、環境のカスタマイズで上書きされるデフォルト値があります。その他のオプションを設定すると、追加機能を有効化できます。
Elastic Beanstalk では、2 つの方法で設定オプションの設定を保存できます。YAML または JSON 形式の設定ファイルは、.ebextensions
というディレクトリ名でアプリケーションのソースコードに含め、アプリケーションソースバンドルの一部としてデプロイできます。設定ファイルをローカルで作成して管理します。
保存済み設定とは、実行中の環境や JSON オプション ファイルから作成され、Elastic Beanstalk に保存されるテンプレートです。既存の保存済み設定を拡張し、新しい設定を作成することもできます。
注記
設定ファイルや保存済み設定で定義された設定は、環境の作成時または環境の作成後に設定された設定 (Elastic Beanstalk コンソール コンソールや EB CLI に適用される推奨値など) よりも優先順位が低くなります。詳細については、「優先順位」を参照してください。
オプションは JSON ドキュメントでも指定され、EB CLI や AWS CLI で環境を作成または更新する際に Elastic Beanstalk に対して直接設定される場合があります。この方法で Elastic Beanstalk に直接設定されるオプションは、他の方法によるすべてのオプションを上書きします。
使用可能なオプションの詳細なリストについては、「設定オプション」を参照してください。
設定ファイル (.ebextensions
)
アプリケーションを機能させるのに必要なオプションを .ebextensions
を使用して設定し、優先順位の高い設定に上書きされるその他のオプションのデフォルト値を指定します。.ebextensions
で指定されるオプションは、優先順位が一番低く、他のあらゆるレベルの設定に上書きされます。
設定ファイルを使用するには、プロジェクトのソースコードの最上位に .ebextensions
という名前のフォルダを作成します。拡張子 .config
をつけてファイルを追加し、次の方法でオプションを指定します。
option_settings: - namespace:
namespace
option_name:option name
value:option value
- namespace:namespace
option_name:option name
value:option value
たとえば次の設定ファイルは、アプリケーションのヘルスチェック URL を /health
に設定します。
healthcheckurl.config
option_settings: - namespace: aws:elasticbeanstalk:application option_name: Application Healthcheck URL value: /health
JSON の場合:
{ "option_settings" : [ { "namespace" : "aws:elasticbeanstalk:application", "option_name" : "Application Healthcheck URL", "value" : "/health" } ] }
これは、Elastic Beanstalk 環境に Elastic Load Balancing ロードバランサーを設定し、各 EC2 インスタンスへのパス /health
に HTTP リクエストを実行して、正常かどうかを判断します。
注記
YAML は、一貫したインデントに依存します。設定ファイルの例でコンテンツを置き換える際はインデントレベルを一致させ、テキストエディタがインデントにタブ文字ではなくスペースを使用していることを確認します。
.ebextensions
ディレクトリをアプリケーションソースバンドルに含め、新規または既存の Elastic Beanstalk 環境にデプロイします。
設定ファイルは、環境内のサーバーで実行されるソフトウェアやファイルのカスタマイズのために、option_settings
に加えて複数のセクションをサポートします。詳細については、「Linux サーバーでのソフトウェアのカスタマイズ」および「Windows Server でのソフトウェアのカスタマイズ」を参照してください。
保存された設定
保存済み設定を作成し、AWS マネジメントコンソール、EB CLI、または AWS CLI による環境の作成時または作成後に既存の環境に適用した設定を保存します。保存済み設定はアプリケーションに属し、同アプリケーションの新しいまたは既存の環境に適用される場合があります。
クライアント
Elastic Beanstalk コンソール
保存済み設定を作成する (Elastic Beanstalk コンソール)
-
Elastic Beanstalk コンソール を開きます。
-
お客様の環境の管理ページに移動します。
-
[アクション]、[設定の保存] の順にクリックします。
-
設定名と説明を入力し、[保存] をクリックします。
保存済み設定は、アプリケーションに関連する名前のフォルダ内の Elastic Beanstalk S3 バケットに格納されます。たとえば、us-west-2 リージョンにあるアカウント番号
123456789012 の my-app
という名前のアプリケーションの設定は、s3://elasticbeanstalk-us-west-2-123456789012/resources/templates/my-app
にあります。
EB CLI
EB CLI は、eb config で保存済み設定とやりとりするためのサブコマンドも指定します。
保存済み設定を作成する(EB CLI)
-
アタッチされた環境の現在の設定を保存する
~/project$
eb config save --cfg
my-app-v1
EB CLI は、設定を
~/project/.elasticbeanstalk/saved_configs/
に保存します。my-app-v1
.cfg.yml -
保存済み設定を必要に応じてローカルで変更します。
-
保存済み設定を S3 にアップロードします。
~/project$
eb config put
my-app-v1
AWS CLI
実行中の環境から、aws elasticbeanstalk
create-configuration-template
で保存済み設定を作成します。
保存済み設定を作成する(AWS CLI)
-
describe-environments
で Elastic Beanstalk 環境の環境 ID を特定する$
aws elasticbeanstalk describe-environments --environment-name
{ "Environments": [ { "ApplicationName": "my-env", "EnvironmentName": "my-env", "VersionLabel": "89df", "Status": "Ready", "Description": "Environment created from the EB CLI using \"eb create\"", "EnvironmentId": "my-env
e-vcghmm2zwk
", "EndpointURL": "awseb-e-v-AWSEBLoa-1JUM8159RA11M-43V6ZI1194.us-west-2.elb.amazonaws.com", "SolutionStackName": "64bit Amazon Linux 2015.03 v2.0.2 running Multi-container Docker 1.7.1 (Generic)", "CNAME": "my-env-nfptuqaper.elasticbeanstalk.com", "Health": "Green", "AbortableOperationInProgress": false, "Tier": { "Version": " ", "Type": "Standard", "Name": "WebServer" }, "HealthStatus": "Ok", "DateUpdated": "2015-10-01T00:24:04.045Z", "DateCreated": "2015-09-30T23:27:55.768Z" } ] } -
create-configuration-template
で環境の現在の設定を保存する$ aws elasticbeanstalk create-configuration-template --environment-id
e-vcghmm2zwk
--application-namemy-app
--template-namev1
Elastic Beanstalk は、Amazon S3 内の Elastic Beanstalk バケットに設定を保存します。
JSON ドキュメント
AWS CLI を使用して環境を作成および更新する場合、JSON 形式で設定オプションを指定することもできます。AWS CLI を使用して環境の作成および管理を行う場合は、JSON の設定ファイルのライブラリが役立ちます。
たとえば、次の JSON ドキュメントはアプリケーションのヘルスチェック URL を /health
に設定します。
~/ebconfigs/healthcheckurl.json
[ { "Namespace": "aws:elasticbeanstalk:application", "OptionName": "Application Healthcheck URL", "Value": "/health" } ]
EB CLI 設定
EB CLI では、保存済み設定と eb config コマンドによる直接的な環境設定がサポートされるだけでなく、環境内のインスタンスへの SSH アクセスのための Amazon EC2 キーペアを指定するのに使用できる
default_ec2_keyname
という名前の設定ファイルを利用できます。EB CLI は、このオプションを使用して EC2KeyName
名前空間に aws:autoscaling:launchconfiguration
設定オプションを設定します。
~/workspace/my-app/.elasticbeanstalk/config.yml
branch-defaults: master: environment: my-env develop: environment: my-env-dev deploy: artifact: ROOT.war global: application_name: my-app default_ec2_keyname:
my-keypair
default_platform: Tomcat 8 Java 8 default_region: us-west-2 profile: null sc: git