AWS Elastic Beanstalk
開発者ガイド

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

保存済み設定を適用し、新しいソースバンドルと設定ファイル (.ebextensions) または JSON ドキュメントをアップロードすることで、実行中の環境でオプション設定を変更できます。EB CLI および Elastic Beanstalk コンソールには、オプション設定の設定と更新を実行するためのクライアント固有の機能もあります。

設定オプションを設定または変更する場合、変更の重要度によっては環境全体の更新をトリガできます。たとえば、aws:autoscaling:launchconfiguration のオプションへの変更 (InstanceType など) では、環境内の Amazon EC2 インスタンスの再プロビジョニングが必要です。これにより、ローリング更新がトリガーされます。他の設定変更は、中断や再プロビジョニングなしに適用されます。

EB CLI または AWS CLI コマンドにより、環境からオプション設定を削除できます。API レベルで環境に直接設定されたオプションを削除すると、これらの設定にマスキングされていた設定ファイルの設定が有効になります。

保存済み設定と設定ファイルの設定は、他の設定方法のいずれかを使用して環境に直接同じオプションを設定することで上書きできます。ただし、これらは、更新された保存済み設定ファイルまたは設定ファイルを適用することによってのみ完全に削除することができます。オプションが、保存済み設定や設定ファイルに設定されていない場合、または環境に直接設定されていない場合、デフォルト値が適用されます (存在する場合)。詳細については、「優先順位」を参照してください。

Elastic Beanstalk コンソール

設定ファイルを含むアプリケーションソースバンドルをデプロイする、保存済み設定を適用する、または環境マネジメントコンソールの [設定] で直接変更することにより、AWS マネジメントコンソール の設定オプションの設定を更新することができます。

設定ファイルの使用 (.ebextensions)

ソース ディレクトリにある設定ファイルを更新し、新しいソースバンドルを作成し、変更を適用する Elastic Beanstalk 環境に新しいバージョンをデプロイします。

ソースバンドルをデプロイするには

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

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

  3. [Upload and Deploy] を選択します。

  4. 画面上のダイアログボックスを使用して、ソースバンドルをアップロードします。

  5. [Deploy] を選択します。

  6. デプロイが完了したら、新しいタブのウェブサイトを開く、サイトの URL を選択します。

設定ファイルへの変更は、保存済み設定や API レベルで環境に直接適用された設定のオプション設定を上書きしません。詳細については、「優先順位」を参照してください。

保存済み設定を使用する

実行中の環境に保存済み設定を適用し、同設定に定義されたオプション設定を適用します。

実行中の環境に保存済み設定を適用するには (Elastic Beanstalk コンソール)

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

  2. アプリケーションの名前を選択します。

  3. [保存された設定] を選択します。

  4. 保存住設定を選択した後、[ロード] を選択します。

  5. 環境を選択した後、[ロード] を選択します。

保存済み設定で定義された設定は、設定ファイルの設定を上書きし、環境マネジメントコンソールを使用して設定された設定に上書きされます。

保存済み設定を作成する方法の詳細については、「保存された設定」を参照してください。

環境マネジメントコンソールを使用する

Elastic Beanstalk コンソール コンソールでは、各環境の [設定] ページに多くの設定オプションが表示されます。

実行中の環境で設定オプションを変更するには (Elastic Beanstalk コンソール)

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

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

  3. [Configuration] を選択します。

  4. 編集する設定ページを見つけます。

    • 目的のオプションを見つけたか、そのオプションが含まれている設定カテゴリがわかったら、設定カテゴリの [変更] を選択します。

    • オプションを探すには、[テーブルビュー] をオンにし、検索ボックスに検索語句を入力します。入力中に、リストが短くなり、検索語句に一致したオプションのみが表示されます。

      目的のオプションを見つけたら、そのオプションが含まれている設定カテゴリの [変更] を選択します。

      
                  オプションの検索を示す、Elastic Beanstalk コンソール の設定概要ページのテーブルビュー
  5. 設定を変更し、次に [保存] を選択します。

  6. 必要に応じて、追加の設定カテゴリで前の 2 つの手順を繰り返します。

  7. [適用] を選択します。

環境マネジメントコンソールの設定オプションへの変更は、環境に直接適用されます。これらの変更により、設定ファイルまたは保存済み設定の同じオプションの設定が上書きされます。詳細については、「優先順位」を参照してください。

Elastic Beanstalk コンソール を使用して実行環境の設定オプションを変更する方法の詳細については、「AWS Elastic Beanstalk 環境の設定」のトピックを参照してください。

EB CLI

設定ファイルを含むソースコードをデプロイする、保存済み設定の設定を適用する、または eb config コマンドで環境設定を直接変更することにより、設定オプションの設定を EB CLI で更新できます。

設定ファイルの使用 (.ebextensions)

.config の下のプロジェクトフォルダに .ebextensions ファイルを含め、アプリケーションコードとともにこれらをデプロイします。

~/workspace/my-app/ |-- .ebextensions | |-- environmentvariables.config | `-- healthcheckurl.config |-- .elasticbeanstalk | `-- config.yml |-- index.php `-- styles.css

eb deploy でソースコードをデプロイします。

~/workspace/my-app$ eb deploy

保存済み設定を使用する

eb config コマンドを使用して、実行中の環境に保存済み設定を適用できます。保存済み設定の名前で --cfg オプションを使用し、その設定を環境に適用できます。

$ eb config --cfg v1

この例の [v1] は、以前に作成された保存済みファイルの名前です。

このコマンドで環境に適用された設定は、環境の作成時に適用された設定やアプリケーションソースバンドルの設定ファイルで定義された設定を上書きします。

eb config を使用する

EB CLI の eb config コマンドにより、テキストエディタを使用して環境で直接オプション設定を設定および削除できます。

eb config を実行している場合、EB CLI は、設定ファイル、保存済み設定、推奨値、環境に直接設定されたオプション、API デフォルトなどのすべてのソースから環境に適用されている設定を表示します。

注記

eb config は、環境プロパティを表示しません。アプリケーションで読み取り可能な環境プロパティを設定するには、eb setenv を使用します。

次の例では、aws:autoscaling:launchconfiguration 名前空間に適用される設定を示します。設定は次のとおりです。

  • 2 つの推奨値、IamInstanceProfile および InstanceType は、環境作成時に EB CLI によって適用されます。

  • オプション EC2KeyName は、リポジトリ設定に基づいて作成時に環境に直接適用されます。

  • その他のオプションの API デフォルト値。

ApplicationName: tomcat DateUpdated: 2015-09-30 22:51:07+00:00 EnvironmentName: tomcat SolutionStackName: 64bit Amazon Linux 2015.03 v2.0.1 running Tomcat 8 Java 8 settings: ... aws:autoscaling:launchconfiguration: BlockDeviceMappings: null EC2KeyName: my-key IamInstanceProfile: aws-elasticbeanstalk-ec2-role ImageId: ami-1f316660 InstanceType: t2.micro ...

eb config で設定オプションを設定するまたは変更するには

  1. eb config を実行して環境の設定を表示します。

    ~/workspace/my-app/$ eb config
  2. デフォルトのテキストエディタを使用して任意の設定値をへんこうする.

    aws:autoscaling:launchconfiguration: BlockDeviceMappings: null EC2KeyName: my-key IamInstanceProfile: aws-elasticbeanstalk-ec2-role ImageId: ami-1f316660 InstanceType: t2.medium
  3. 一時設定ファイルを保存して終了します。

  4. EB CLI が環境設定を更新します。

eb config で設定オプションを設定すると、他のすべてのソースの設定が上書きされます。

eb config で環境からオプションを削除することもできます。

設定オプションを削除するには(EB CLI)

  1. eb config を実行して環境の設定を表示します。

    ~/workspace/my-app/$ eb config
  2. 表示された値を文字列 null で置き換えます。削除するオプションを含む行全体を削除することもできます。

    aws:autoscaling:launchconfiguration: BlockDeviceMappings: null EC2KeyName: my-key IamInstanceProfile: aws-elasticbeanstalk-ec2-role ImageId: ami-1f316660 InstanceType: null
  3. 一時設定ファイルを保存して終了します。

  4. EB CLI が環境設定を更新します。

eb config で環境からオプションを削除すると、アプリケーションソースバンドルの設定ファイルの同じオプションの設定が有効になります。詳細については、「優先順位」を参照してください。

eb setenv を使用する

EB CLI で環境プロパティを設定するには、eb setenv を使用します。

~/workspace/my-app/$ eb setenv ENVVAR=TEST INFO: Environment update is starting. INFO: Updating environment my-env's configuration settings. INFO: Environment health has transitioned from Ok to Info. Command is executing on all instances. INFO: Successfully deployed new configuration to environment.

このコマンドは、aws:elasticbeanstalk:application:environment 名前空間の環境プロパティを設定します。eb setenv で設定された環境プロパティは、短い更新プロセスの後、アプリケーションで利用できます。

環境に設定された環境プロパティを eb printenv で表示します。

~/workspace/my-app/$ eb printenv Environment Variables: ENVVAR = TEST

AWS CLI:

設定ファイルを含むソースバンドルをデプロイする、リモートに格納された保存済み設定を適用する、または aws elasticbeanstalk update-environment コマンドで環境を直接変更することにより、AWS CLI で設定オプションの設定を更新できます。

設定ファイルの使用 (.ebextensions)

AWS CLI で実行中の環境に設定ファイルを適用するには、Amazon S3 にアップロードするアプリケーションバンドルに同ファイルを含めます。

~/workspace/my-app-v1.zip |-- .ebextensions | |-- environmentvariables.config | `-- healthcheckurl.config |-- index.php `-- styles.css

アプリケーションソースバンドルをアップロードし、実行中の環境に適用するには(AWS CLI)

  1. Amazon S3 に Elastic Beanstalk バケットがまだない場合は、create-storage-location で作成します。

    $ aws elasticbeanstalk create-storage-location { "S3Bucket": "elasticbeanstalk-us-west-2-123456789012" }
  2. アプリケーションソースバンドルを Amazon S3 にアップロードします。

    $ aws s3 cp sourcebundlev2.zip s3://elasticbeanstalk-us-west-2-123456789012/my-app/sourcebundlev2.zip
  3. アプリケーションバージョンを作成します。

    $ aws elasticbeanstalk create-application-version --application-name my-app --version-label v2 --description MyAppv2 --source-bundle S3Bucket="elasticbeanstalk-us-west-2-123456789012",S3Key="my-app/sourcebundlev2.zip"
  4. 環境を更新します。

    $ aws elasticbeanstalk update-environment --environment-name my-env --version-label v2

保存済み設定を使用する

--template-name コマンドの aws elasticbeanstalk update-environment オプションにより、実行中の環境に保存済み設定を適用できます。

保存済み設定は、resources/templates の下のアプリケーションに関連する名前のパスの Elastic Beanstalk バケット内にあることが必要です。たとえば、米国西部 (オレゴン) リージョン (us-west-2) にあるアカウント 123456789012 の my-app アプリケーションの v1 テンプレートは、s3://elasticbeanstalk-us-west-2-123456789012/resources/templates/my-app/v1 にあります。

実行中の環境に保存済み設定を適用するには(AWS CLI)

  • update-environment オプションで、--template-name コールの保存済み設定を指定します。

    $ aws elasticbeanstalk update-environment --environment-name my-env --template-name v1

Elastic Beanstalk は、aws elasticbeanstalk create-configuration-template で作成された保存済み設定をこの場所に配置します。保存済み設定をローカルに変更し、自身でこの場所に配置することもできます。

コマンドラインオプションを使用する

JSON ドキュメントで設定オプションを変更するには(AWS CLI)

  1. ローカルファイルで、オプション設定を JSON 形式で定義します。

  2. update-environment オプションで --option-settings を実行します。

    $ aws elasticbeanstalk update-environment --environment-name my-env --option-settings file://~/ebconfigs/as-zero.json

この例では、ゼロインスタンスの最小数と最大数で環境を設定するオプションを [as-zero.json] が定義します。これにより、環境を終了することなく、インスタンスが停止します。

~/ebconfigs/as-zero.json

[ { "Namespace": "aws:autoscaling:asg", "OptionName": "MinSize", "Value": "0" }, { "Namespace": "aws:autoscaling:asg", "OptionName": "MaxSize", "Value": "0" }, { "Namespace": "aws:autoscaling:updatepolicy:rollingupdate", "OptionName": "RollingUpdateEnabled", "Value": "false" } ]

注記

update-environment で設定オプションを設定すると、他のすべてのソースの設定が上書きされます。

update-environment で環境からオプションを削除することもできます。

設定オプションを削除するには(AWS CLI)

  • update-environment オプションを使用して --settings-to-remove コマンドを実行します。

    $ aws elasticbeanstalk update-environment --environment-name my-env --options-to-remove Namespace=aws:autoscaling:launchconfiguration,OptionName=InstanceType

update-environment で環境からオプションを削除すると、アプリケーションソースバンドルの設定ファイルの同じオプションの設定が有効になります。これらの方法でオプションが設定されている場合、API のデフォルト値が適用されます(存在する場合)。詳細については、「優先順位」を参照してください。