メニュー
AWS Elastic Beanstalk
開発者ガイド (API Version 2010-12-01)

環境を作成する前に設定オプションを設定する

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 コンソール)

  1. Elastic Beanstalk コンソールを開きます。

  2. お客様の環境の管理ページに移動します。

  3. [Actions]、[Save Configuration] の順にクリックします。

  4. 設定名と説明を入力し、[Save] をクリックします。

保存済み設定は、アプリケーションに関連する名前のフォルダー内の Elastic Beanstalk S3 バケットに格納されます。たとえば、us-west-2 リージョンにあるアカウント番号 0123456789012 の my-app という名前のアプリケーションの設定は、s3://elasticbeanstalk-us-west-2-0123456789012/resources/templates/my-app にあります。

EB CLI

EB CLI は、eb config で保存済み設定とやりとりするためのサブコマンドも指定します。

保存済み設定を作成する(EB CLI)

  1. アタッチされた環境の現在の設定を保存する

    ~/project$ eb config save --cfg my-app-v1

    EB CLI は、設定を ~/project/.elasticbeanstalk/saved_configs/my-app-v1.cfg.yml に保存します。

  2. 保存済み設定を必要に応じてローカルで変更します。

  3. 保存済み設定を S3 にアップロードします。

    ~/project$ eb config put my-app-v1

AWS CLI

実行中の環境から、aws elasticbeanstalk create-configuration-template で保存済み設定を作成します。

保存済み設定を作成する(AWS CLI)

  1. describe-environments で Elastic Beanstalk 環境の環境 ID を特定する

    $ aws elasticbeanstalk describe-environments --environment-name my-env
    {
        "Environments": [
            {
                "ApplicationName": "my-env",
                "EnvironmentName": "my-env",
                "VersionLabel": "89df",
                "Status": "Ready",
                "Description": "Environment created from the EB CLI using \"eb create\"",
                "EnvironmentId": "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"
            }
        ]
    }
  2. create-configuration-template で環境の現在の設定を保存する

    $ aws elasticbeanstalk create-configuration-template --environment-id e-vcghmm2zwk --application-name my-app --template-name v1

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 は、このオプションを使用して aws:autoscaling:launchconfiguration 名前空間に EC2KeyName 設定オプションを設定します。

~/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