AWS Elastic Beanstalk
開発者ガイド

EB CLI で複数の AWS Elastic Beanstalk 環境をグループとして管理する

EB CLI を使用して環境グループを作成し、それぞれの環境がサービス対応アーキテクチャアプリケーションの別々のコンポーネントを実行するようにできます。EB CLI は、ComposeEnvironments API を使用してこのようなグループを管理します。

注記

環境グループは、マルチコンテナの Docker 環境の複数のコンテナとは異なります。環境グループでは、アプリケーションの各コンポーネントは、別の Elastic Beanstalk 環境で独自の専用 Amazon EC2 インスタンスのセットと共に実行されます。各コンポーネントは個別にスケールできます。マルチコンテナの Docker では、単一の環境にアプリケーションの複数のコンポーネントを結合します。すべてのコンポーネントは同じ Amazon EC2 インスタンスのセットを共有し、各インスタンスは複数の Docker コンテナを実行します。アプリケーションのニーズに基づいて、これらのいずれかのアーキテクチャを選択します。

マルチコンテナの Docker の詳細については、「複数コンテナの Docker 環境」を参照してください。

次のフォルダ構造にアプリケーションコンポーネントを整理します。

~/project-name |-- component-a | `-- env.yaml `-- component-b `-- env.yaml

それぞれのサブフォルダには、独自の環境と env.yaml という環境定義ファイルを実行する 1 つのアプリケーションの個別のコンポーネントのソースコードが含まれます。env.yaml 形式の詳細については、「マニフェスト環境(env.yaml)」を参照してください。

Compose Environments API を使用するためには、まずプロジェクトフォルダから eb init を実行し、--modules オプションでコンポーネントがあるフォルダの名前をそれぞれのコンポーネントごとに指定します。

~/workspace/project-name$ eb init --modules component-a component-b

EB CLI は、各コンポーネントを設定するプロンプトを表示し、続いて各コンポーネントフォルダに .elasticbeanstalk ディレクトリを作成します。EB CLI は親ディレクトリに設定ファイルを作成しません。

~/project-name |-- component-a | |-- .elasticbeanstalk | `-- env.yaml `-- component-b |-- .elasticbeanstalk `-- env.yaml

続いて、各コンポーネントごとに、作成する環境のリストがある eb create コマンドを実行します:

~/workspace/project-name$ eb create --modules component-a component-b --env-group-suffix group-name

このコマンドは、各コンポーネントの環境を作成します。環境の名前は、EnvironmentName ファイルに特定された env.yaml とグループ名をハイフンで区切って連結して作成されます。ハイフンを含めたこの 2 つのオプションの合計は、環境の名前に使用できる最大限の 23 文字を超えることはできません。

環境を更新するためには、eb deploy コマンドを使用します。

~/workspace/project-name$ eb deploy --modules component-a component-b

各コンポーネントごとを個別に、あるいはグループとして更新できます。--modules オプションを使用して更新するコンポーネントを指定します。

EB CLI は、eb create で使用したグループ名を、branch-defaults の下にある EB CLI 設定ファイルの /.elasticbeanstalk/config.yml セクションに保存します。アプリケーションを別々のグループにデプロイする場合は、--env-group-suffix 実行時に eb deploy オプションを使用します。グループが既に存在しない場合には、EB CLI は環境の新しいグループを作成します。

~/workspace/project-name$ eb deploy --modules component-a component-b --env-group-suffix group-2-name

環境を終了するには、各モジュールのフォルダ内で eb terminate を実行します。デフォルトでは、実行されているその他の環境と依存関係にある環境を終了しようとする際に、EB CLI によってエラーが表示されます。まず依存した環境を終了するか、あるいは --ignore-links オプションでデフォルトの動作を変更します。

~/workspace/project-name/component-b$ eb terminate --ignore-links