

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# EB CLI で複数の Elastic Beanstalk 環境をグループとして管理する
<a name="ebcli-compose"></a>

EB CLI を使用して AWS Elastic Beanstalk 環境のグループを作成し、それぞれがサービス指向アーキテクチャアプリケーションの個別のコンポーネントを実行します。EB CLI は、[ComposeEnvironments](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_ComposeEnvironments.html) API を使用してこのようなグループを管理します。

**注記**  
環境グループは、マルチコンテナの Docker 環境の複数のコンテナとは異なります。環境グループでは、アプリケーションの各コンポーネントは、別の Elastic Beanstalk 環境で独自の専用 Amazon EC2 インスタンスのセットと共に実行されます。各コンポーネントは個別にスケールできます。マルチコンテナの Docker では、単一の環境にアプリケーションの複数のコンポーネントを結合します。すべてのコンポーネントは同じ Amazon EC2 インスタンスのセットを共有し、各インスタンスは複数の Docker コンテナを実行します。アプリケーションのニーズに基づいて、これらのいずれかのアーキテクチャを選択します。  
マルチコンテナの Docker の詳細については、「[Elastic Beanstalk での ECS マネージド Docker プラットフォームブランチの使用](create_deploy_docker_ecs.md)」を参照してください。

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

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

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

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

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

EB CLI は、[各コンポーネントを設定](eb-cli3-configuration.md)するプロンプトを表示し、続いて各コンポーネントフォルダに `.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
```