

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Mengelola beberapa lingkungan Elastic Beanstalk sebagai grup dengan EB CLI
<a name="ebcli-compose"></a>

Anda dapat menggunakan EB CLI untuk membuat grup lingkungan, masing-masing menjalankan komponen terpisah AWS Elastic Beanstalk dari aplikasi arsitektur berorientasi layanan. CLI EB mengelola grup tersebut dengan menggunakan [ComposeEnvironments](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_ComposeEnvironments.html)API.

**catatan**  
Grup lingkungan berbeda dari beberapa kontainer di lingkungan Multicontainer Docker. Dengan grup lingkungan, setiap komponen aplikasi Anda berjalan di lingkungan Elastic Beanstalk yang terpisah, dengan set instans Amazon EC2 khusus. Setiap komponen dapat menskalakan secara terpisah. Dengan Multicontainer Docker, Anda menggabungkan beberapa komponen aplikasi ke dalam satu lingkungan. Semua komponen berbagi set instans Amazon EC2 yang sama, dengan setiap instans menjalankan beberapa kontainer Docker. Pilih salah satu dari arsitektur ini sesuai dengan kebutuhan aplikasi Anda.  
Untuk detail tentang Multicontainer Docker, lihat [Menggunakan cabang platform Docker yang dikelola ECS di Elastic Beanstalk](create_deploy_docker_ecs.md).

Mengatur komponen aplikasi Anda ke dalam struktur folder berikut:

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

Setiap subfolder berisi kode sumber untuk komponen independen dari aplikasi yang akan berjalan di lingkungannya sendiri dan file definisi lingkungan bernama `env.yaml`. Untuk detail di format `env.yaml`, lihat [Manifes lingkungan (`env.yaml`)](environment-cfg-manifest.md). 

Untuk menggunakan API `Compose Environments`, jalankan **eb init** dari folder proyek terlebih dahulu, menentukan setiap komponen dengan nama folder yang berisi dengan opsi `--modules`:

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

EB CLI meminta Anda untuk [mengonfigurasi setiap komponen](eb-cli3-configuration.md), dan kemudian membuat direktori `.elasticbeanstalk` di setiap folder komponen. EB CLI tidak membuat file konfigurasi di direktori induk.

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

Selanjutnya, jalankan perintah **eb create** dengan daftar lingkungan untuk membuat, satu untuk setiap komponen:

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

Perintah ini membuat lingkungan untuk setiap komponen. Nama-nama lingkungan yang dibuat dengan menggabungkan `EnvironmentName` yang ditentukan di file `env.yaml` dengan nama grup, dipisahkan dengan tanda hubung. Panjang total dua opsi ini dan tanda hubung tidak boleh melebihi maksimum panjang nama lingkungan 23 karakter yang diizinkan.

Untuk memperbarui lingkungan, gunakan perintah **eb deploy**:

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

Anda dapat memperbarui setiap komponen secara individu atau Anda dapat memperbaruinya sebagai grup. Tentukan komponen yang ingin Anda perbarui dengan opsi `--modules`.

EB CLI menyimpan nama grup yang digunakan dengan **eb create** di bagian `branch-defaults` dari file konfigurasi EB CLI di bawah `/.elasticbeanstalk/config.yml`. Untuk men-deploy aplikasi Anda ke grup yang berbeda, gunakan opsi `--env-group-suffix` ketika Anda menjalankan **eb deploy**. Jika grup sudah tidak ada, EB CLI akan membuat grup baru lingkungan:

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

Untuk mengakhiri lingkungan, jalankan **eb terminate** di folder untuk setiap modul. Secara default, EB CLI akan menunjukkan kesalahan jika Anda mencoba untuk mengakhiri lingkungan yang lingkungan berjalan lain dependen padanya. Mengakhiri lingkungan dependen pertama, atau menggunakan opsi `--ignore-links` untuk mengganti perilaku default:

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