プラットフォームスクリプトツール - AWS Elastic Beanstalk

プラットフォームスクリプトツール

このトピックでは、Amazon Linux プラットフォームバージョンを使用する環境のインスタンスで AWS Elastic Beanstalk が提供するツールについて説明します。これらのツールを使用して、環境内でインスタンス上で実行されるプラットフォームフックスクリプトを強化できます。

get-config

get-config ツールを使用して、環境変数の値やその他のプラットフォームおよびインスタンス情報を取得します。このツールは /opt/elasticbeanstalk/bin/get-config にあります。

get-config コマンド

get-config ツールコマンドは、特定の種類の情報を返します。ツールのコマンドを実行するには、次の構文を使用します。

$ /opt/elasticbeanstalk/bin/get-config command [ options ]

次の例では、environment コマンドを実行します。

$ /opt/elasticbeanstalk/bin/get-config environment -k PORT

選択したコマンドとオプションに応じて、ツールはキーと値のペアを持つオブジェクト (JSON または YAML)、または単一の値を返します。

SSH を使用して Elastic Beanstalk 環境内のインスタンスに接続することで get-config をテストできます。

注記

get-config テストを実行する場合、一部のコマンドでは、基礎となる情報にアクセスするために root ユーザー権限が必要になる場合があります。アクセス許可エラーが表示された場合は、sudo でコマンドを再度実行します。

環境にデプロイするスクリプトでツールを使用するときは、sudo を追加する必要はありません。Elastic Beanstalk は、すべてのスクリプトを root ユーザーとして実行します。

次のセクションでは、ツールのコマンドについて説明します。

get-config optionsettings コマンドは、環境に設定され、環境インスタンス上のプラットフォームで使用される設定オプションをリスト化するオブジェクトを返します。これらは、名前空間別に編成されています。

$ /opt/elasticbeanstalk/bin/get-config optionsettings {"aws:elasticbeanstalk:application:environment":{"JDBC_CONNECTION_STRING":""},"aws:elasticbeanstalk:container:tomcat:jvmoptions":{"JVM Options":"","Xms":"256m","Xmx":"256m"},"aws:elasticbeanstalk:environment:proxy":{"ProxyServer":"nginx","StaticFiles":[""]},"aws:elasticbeanstalk:healthreporting:system":{"SystemType":"enhanced"},"aws:elasticbeanstalk:hostmanager":{"LogPublicationControl":"false"}}

特定の設定オプションを返すには、--namespace (-n) オプションを使用して名前空間を指定し、--option-name (-o) オプションを使用してオプション名を指定します。

$ /opt/elasticbeanstalk/bin/get-config optionsettings -n aws:elasticbeanstalk:container:php:phpini -o memory_limit 256M

get-config environment コマンドは、環境プロパティのリストを含むオブジェクトを返します。これらには、ユーザー設定のプロパティと Elastic Beanstalk によって提供されるプロパティの両方が含まれます。

$ /opt/elasticbeanstalk/bin/get-config environment {"JDBC_CONNECTION_STRING":"","RDS_PORT":"3306","RDS_HOSTNAME":"anj9aw1b0tbj6b.cijbpanmxz5u.us-west-2.rds.amazonaws.com","RDS_USERNAME":"testusername","RDS_DB_NAME":"ebdb","RDS_PASSWORD":"testpassword1923851"}

例えば、Elastic Beanstalk は統合された Amazon RDS DB インスタンス (RDS_HOSTNAME など) に接続する環境プロパティを提供します。これらの RDS 接続プロパティは設定オプションで設定されていないため、get-config environment の出力には表示されますが、get-config optionsettings の出力には表示されません。

特定の環境プロパティを返すには、--key (-k) オプションを使用してプロパティキーを指定します。

$ /opt/elasticbeanstalk/bin/get-config environment -k TESTPROPERTY testvalue

get-config container コマンドは、環境インスタンスに反映されるプラットフォームと環境設定の値をリストするオブジェクトを返します。

次の例は、Amazon Linux 2 Tomcat 環境でのコマンドの出力を示しています。

$ /opt/elasticbeanstalk/bin/get-config container {"common_log_list":["/var/log/eb-engine.log","/var/log/eb-hooks.log"],"default_log_list":["/var/log/nginx/access.log","/var/log/nginx/error.log"],"environment_name":"myenv-1da84946","instance_port":"80","log_group_name_prefix":"/aws/elasticbeanstalk","proxy_server":"nginx","static_files":[""],"xray_enabled":"false"}

特定のキーの値を返すには、--key (-k) オプションを使用してキーを指定します。

$ /opt/elasticbeanstalk/bin/get-config container -k environment_name myenv-1da84946

get-config addons コマンドは、環境アドオンの構成情報を含むオブジェクトを返します。これを使用して、環境に関連付けられた Amazon RDS データベースの構成を取得します。

$ /opt/elasticbeanstalk/bin/get-config addons {"rds":{"Description":"RDS Environment variables","env":{"RDS_DB_NAME":"ebdb","RDS_HOSTNAME":"ea13k2wimu1dh8i.c18mnpu5rwvg.us-east-2.rds.amazonaws.com","RDS_PASSWORD":"password","RDS_PORT":"3306","RDS_USERNAME":"user"}}}

結果を制限するには、2 つの方法があります。特定のアドオンの値を取得するには、--add-on (-a) オプションを使用してアドオン名を指定します。

$ /opt/elasticbeanstalk/bin/get-config addons -a rds {"Description":"RDS Environment variables","env":{"RDS_DB_NAME":"ebdb","RDS_HOSTNAME":"ea13k2wimu1dh8i.c18mnpu5rwvg.us-east-2.rds.amazonaws.com","RDS_PASSWORD":"password","RDS_PORT":"3306","RDS_USERNAME":"user"}}

アドオン内の特定のキーの値を返すには、--key (-k) オプションを追加してキーを指定します。

$ /opt/elasticbeanstalk/bin/get-config addons -a rds -k RDS_DB_NAME ebdb

get-config platformconfig コマンドは、プラットフォームのバージョンに定数のプラットフォーム構成情報を含むオブジェクトを返します。同じプラットフォームバージョンを実行しているすべての環境で、出力は同じです。コマンドの出力オブジェクトには、次の 2 つの埋め込みオブジェクトがあります。

  • GeneralConfig - すべての Amazon Linux 2 プラットフォームブランチの最新バージョンで定数の情報が含まれています。

  • PlatformSpecificConfig - プラットフォームのバージョンに対して定数で、それに固有の情報が含まれます。

次の例は、Tomcat 8.5 running Corretto 11 プラットフォームブランチを使用する環境でのコマンドの出力を示しています。

$ /opt/elasticbeanstalk/bin/get-config platformconfig {"GeneralConfig":{"AppUser":"webapp","AppDeployDir":"/var/app/current/","AppStagingDir":"/var/app/staging/","ProxyServer":"nginx","DefaultInstancePort":"80"},"PlatformSpecificConfig":{"ApplicationPort":"8080","JavaVersion":"11","TomcatVersion":"8.5"}}

特定のキーの値を返すには、--key (-k) オプションを使用してキーを指定します。これらのキーは、2 つの埋め込みオブジェクト間で一意です。キーを含むオブジェクトを指定する必要はありません。

$ /opt/elasticbeanstalk/bin/get-config platformconfig -k AppStagingDir /var/app/staging/

get-config 出力オプション

出力オブジェクトの形式を指定するには、--output オプションを使用します。有効な値は JSON (デフォルト) と YAML です。これはグローバルオプションであり、コマンド名の前に指定する必要があります。

次の例では、設定オプション値を YAML 形式で返します。

$ /opt/elasticbeanstalk/bin/get-config --output YAML optionsettings aws:elasticbeanstalk:application:environment: JDBC_CONNECTION_STRING: "" aws:elasticbeanstalk:container:tomcat:jvmoptions: JVM Options: "" Xms: 256m Xmx: 256m aws:elasticbeanstalk:environment:proxy: ProxyServer: nginx StaticFiles: - "" aws:elasticbeanstalk:healthreporting:system: SystemType: enhanced aws:elasticbeanstalk:hostmanager: LogPublicationControl: "false"

download-source-bundle (Amazon Linux AMI のみ)

Amazon Linux AMI プラットフォームブランチ (Amazon Linux 2 より前) では、Elastic Beanstalk は追加のツールとして download-source-bundle を提供しています。これを使用して、プラットフォームのデプロイ中にアプリケーションのソースコードをダウンロードします。このツールは /opt/elasticbeanstalk/bin/download-source-bundle にあります。

サンプルスクリプト 00-unzip.sh は、環境インスタンスの appdeploy/pre フォルダにあります。これは download-source-bundle を使用して、デプロイ中にアプリケーションのソースコードを /opt/elasticbeanstalk/deploy/appsource フォルダにダウンロードする方法を示しています。