翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Elastic Beanstalk 環境用のプラットフォームスクリプトツール
このトピックでは、 AWS Elastic Beanstalk は、Amazon Linux プラットフォームを使用する環境に を提供します。ツールは Elastic Beanstalk 環境の Amazon EC2インスタンスにあります。
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 環境のEC2インスタンスに接続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 および Amazon Linux 2023 プラットフォームブランチの最新バージョンで一定の情報が含まれています。 -
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"
pkg-repo
注記
pkg-repo
ツールは、Amazon Linux 2023 プラットフォームに基づく環境では使用できません。ただし、パッケージとオペレーティングシステムの更新を AL2023 インスタンスに手動で適用することはできます。詳細については、「Amazon Linux 2023 ユーザーガイド」の「パッケージとオペレーティングシステムの更新の管理」を参照してください
緊急の状況によっては、必要な Elastic Beanstalk プラットフォームバージョンでまだリリースされていない Amazon Linux 2 セキュリティパッチで Amazon EC2インスタンスを更新する必要がある場合があります。デフォルトでは、Elastic Beanstalk 環境で手動更新を実行することはできません。これは、プラットフォームのバージョンが Amazon Linux 2 リポジトリの特定のバージョンにロックされているためです。このロックにより、インスタンスがサポートされ、一貫性のあるソフトウェアバージョンが実行されることが保証されます。緊急の場合、pkg-repo
ツールを使用すると、新しい Elastic Beanstalk プラットフォームバージョンでリリースされる前に環境にインストールする必要がある場合は、Amazon Linux 2 で yum パッケージを手動で更新する回避策を使用できます。
-pkg-repo
Amazon Linux 2 プラットフォーム上のツールは、yum
パッケージリポジトリ。その後、を手動で実行できますyum updateセキュリティパッチの場合。逆に、ツールを使用して yum パッケージのリポジトリをロックして、さらなる更新を防ぐことで、更新をフォローできます。このpkg-repo
ツールは、Elastic Beanstalk 環境内のすべてのEC2インスタンスの /opt/elasticbeanstalk/bin/pkg-repo
ディレクトリにあります。
pkg-repo
ツールを使用した変更は、ツールが使用されているEC2インスタンスでのみ行われます。他のインスタンスに影響したり、環境への今後の更新を妨げたりすることはありません。このトピックで後述する例では、を呼び出して、すべてのインスタンスに変更を適用する方法を説明します。pkg-repo
スクリプトおよび設定ファイルからのコマンド
警告
このツールは推奨されませんユーザー。ロック解除されたプラットフォームバージョンに適用される手動による変更は、帯域外と見なされます。このオプションは、次のリスクを受け入れる可能性のある緊急の状況にあるユーザーに対してのみ実行できます。
-
プラットフォームのバージョンは、環境内のすべてのインスタンスで一貫性が保証されるわけではありません。
-
を使用して変更された環境
pkg-repo
ツールが正しく機能することは保証されません。Elastic Beanstalk がサポートするプラットフォームではテストおよび検証が行われていません。
テストとバックアウト計画を含むベストプラクティスを適用することを強くお勧めします。ベストプラクティスを容易にするために、Elastic Beanstalk コンソールと EB を使用して環境のクローンを作成し、環境 CLIをスワップできますURLs。これらの操作の詳細については、このガイドの「環境の管理」の章の「ブルー/グリーンデプロイ」を参照してください。
yum リポジトリ構成ファイルを手動で編集する場合は、pkg-repo
ツールはまずです。-pkg-repo
yum リポジトリ設定ファイルを手動で編集した Amazon Linux 2 環境では、ツールが意図したとおりに動作しない場合があります。これは、ツールが構成の変更を認識しない可能性があるためです。
Amazon Linux パッケージリポジトリの詳細については、「Amazon ユーザーガイド」の「パッケージリポジトリEC2」トピックを参照してください。
pkg-repo コマンド
pkg-repo
ツールのコマンドを実行するには、次の構文を使用します。
$ /opt/elasticbeanstalk/bin/pkg-repo command
[options
]
pkg-repo
コマンドを以下に示します:
-
lock— をロックします
yum
リポジトリを特定のバージョンにパッケージ化する -
unlock— ロックを解除します
yum
特定のバージョンのリポジトリをパッケージ化する -
status— すべてのリストを表示します。
yum
パッケージリポジトリとその現在のロックステータス -
help— 1 つのコマンドに関する一般的なヘルプまたはヘルプを表示します
オプションは、以下のようにコマンドに適用されます。
-
lock
,unlock
そしてstatus
— オプション:-h
,--help
、またはなし (既定)。 -
help
— オプション:lock
,unlock
,status
、またはなし (既定)。
次の例では、unlock コマンドを実行します。
$ sudo /opt/elasticbeanstalk/bin/pkg-repo unlock
Amazon Linux 2 core package repo successfully unlocked
Amazon Linux 2 extras package repo successfully unlocked
次の例では、lock コマンドを実行します。
$ sudo /opt/elasticbeanstalk/bin/pkg-repo lock
Amazon Linux 2 core package repo successfully locked
Amazon Linux 2 extras package repo successfully locked
次の例では、status コマンドを実行します。
$ sudo /opt/elasticbeanstalk/bin/pkg-repo status
Amazon Linux 2 core package repo is currently UNLOCKED
Amazon Linux 2 extras package repo is currently UNLOCKED
次の例では、helpコマンドのlockコマンド。
$ sudo /opt/elasticbeanstalk/bin/pkg-repo help lock
次の例では、helpコマンドのpkg-repo
ツール。
$ sudo /opt/elasticbeanstalk/bin/pkg-repo help
SSH を使用して Elastic Beanstalk 環境のインスタンスに接続pkg-repo
することでテストできます。1 つのSSHオプションは EB CLI eb ssh コマンドです。
注記
-pkg-repo
ツールを実行するには root ユーザー権限が必要です。アクセス許可エラーが表示された場合は、sudo
でコマンドを再度実行します。
環境にデプロイするスクリプトまたは設定ファイルでツールを使用するときは、sudo
を追加する必要はありません。Elastic Beanstalk は、すべてのスクリプトを root ユーザーとして実行します。
pkg-repo の例
前のセクションでは、Elastic Beanstalk 環境の個々のEC2インスタンスでテストするためのコマンドラインの例を示します。このアプローチはテストに役立ちます。ただし、一度に更新されるインスタンスは 1 つだけなので、環境内のすべてのインスタンスに変更を適用するのは現実的ではありません。
より実用的なアプローチはプラットフォームフックスクリプトまたは.ebextensions一貫した方法ですべてのインスタンスに変更を適用するための設定ファイル。
次の例では、を呼び出します。pkg-repo
の設定ファイルから.ebextensionsfolder Elastic Beanstalk は、update_package.config
アプリケーションソースバンドルをデプロイするときにファイルを指定します。
.ebextensions
└── update_package.config
docker パッケージが最新バージョンを受け取るには、この設定で、yum update コマンドの docker パッケージを指定します。
### update_package.config ### commands: update_package: command: | /opt/elasticbeanstalk/bin/pkg-repo unlock yum update docker -y /opt/elasticbeanstalk/bin/pkg-repo lock yum clean all -y rm -rf /var/cache/yum
この設定では、yum updateコマンド。その結果、利用可能なすべての更新が適用されます。
### update_package.config ### commands: update_package: command: | /opt/elasticbeanstalk/bin/pkg-repo unlock yum update -y /opt/elasticbeanstalk/bin/pkg-repo lock yum clean all -y rm -rf /var/cache/yum
次の例では、を呼び出します。pkg-repo
bashスクリプトからプラットフォームフック。Elastic Beanstalkupdate_package.sh
にあるスクリプトファイルprebuild
サブディレクトリ。
.platform
└── hooks
└── prebuild
└── update_package.sh
docker パッケージが最新バージョンを受け取るには、このスクリプトで yum update コマンドの docker パッケージを指定します。パッケージ名を省略すると、すべての利用可能な更新が適用されます。前の設定ファイルの例では、この方法を示しています。
### update_package.sh ### #!/bin/bash /opt/elasticbeanstalk/bin/pkg-repo unlock yum update docker -y /opt/elasticbeanstalk/bin/pkg-repo lock yum clean all -y rm -rf /var/cache/yum
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
フォルダにダウンロードする方法を示しています。