

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

# Membuat dan mengelola Amazon ECS Gateway
<a name="gateway-managing"></a>

Amazon ECS Gateway adalah sumber daya tingkat akun yang memegang konfigurasi masuk dan standar keamanan yang diwarisi oleh layanan yang terhubung. Tim platform membuat gateway, mengonfigurasi kebijakan jaringan, dan mengaitkannya dengan cluster Amazon ECS target. Tim aplikasi kemudian memilih layanan mereka dan layanan kemudian terhubung ke gateway yang kompatibel di cluster. Untuk informasi selengkapnya, lihat [Hubungkan layanan Amazon ECS ke gateway](gateway-connect-service.md).

Membuat gateway tidak segera menyediakan infrastruktur. Amazon ECS menyediakan Application Load Balancer pertama hanya ketika layanan pertama terhubung ke gateway terkait.

## Prasyarat
<a name="gateway-managing-prerequisites"></a>

Sebelum Anda membuat gateway, pastikan Anda memiliki yang berikut:
+ Peran IAM infrastruktur yang dapat diasumsikan Amazon ECS untuk menyediakan dan mengelola sumber daya masuk.
+ Sebuah VPC default di AWS Wilayah tempat Anda membuat gateway. Jika Anda tidak memiliki VPC default, Anda dapat menentukan subnet Anda sendiri saat membuat gateway.

### Peran Infrastruktur IAM untuk Amazon ECS Gateway
<a name="gateway-infrastructure-role"></a>

Amazon ECS memerlukan peran infrastruktur untuk membuat, mengkonfigurasi, dan mengelola penyeimbang beban, pendengar, kelompok target, grup keamanan, dan AWS Certificate Manager sertifikat di akun Anda.

Buat peran IAM dengan kebijakan kepercayaan yang memungkinkan `ecs.amazonaws.com` prinsipal layanan untuk mengasumsikannya, dan melampirkan AWS kebijakan yang dikelola `AmazonECSInfrastructureRoleForGatewayHostSharedALB`. Anda dapat melihat izin yang diberikan kebijakan ini di [*AWS Referensi Kebijakan Terkelola*](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonECSInfrastructureRoleForGatewayHostSharedALB.html).

```
aws iam create-role \
    --role-name ecsInfrastructureRoleForGateways \
    --assume-role-policy-document '{
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": "ecs.amazonaws.com"
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }'

aws iam attach-role-policy \
    --role-name ecsInfrastructureRoleForGateways \
    --policy-arn arn:aws:iam::aws:policy/AmazonECSInfrastructureRoleForGatewayHostSharedALB
```

Pengguna atau peran IAM yang membuat atau memperbarui gateway harus memiliki izin untuk meneruskan peran infrastruktur ke Amazon ECS. Lingkup kebijakan berikut `iam:PassRole` untuk peran infrastruktur khusus itu daripada memberikannya secara luas.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::123456789012:role/ecsInfrastructureRoleForGateways"
        }
    ]
}
```

Tim aplikasi tidak membutuhkan keduanya `iam:PassRole` atau operasi gateway untuk memberikan layanannya titik akhir HTTPS. Tim juga tidak memerlukan izin untuk membuat penyeimbang beban, karena izin tersebut berada dalam peran infrastruktur.

**catatan**  
Peran IAM pada akhirnya konsisten, sehingga peran yang baru dibuat mungkin tidak dapat digunakan segera. Tepat setelah Anda membuat peran ini, yang pertama Anda `create-gateway` panggilan dapat gagal dengan kesalahan seperti `The infrastructureRoleArn could not be assumed. Verify the role exists and its trust policy allows ECS to assume it.` Tunggu sebentar (sekitar satu menit) agar peran menyebar, lalu coba lagi perintah tersebut.

**penting**  
Amazon ECS menandai semua sumber daya yang dibuatnya `AmazonECSManaged=true`. Jika Anda mengubah atau menghapus tag ini dari Application Load Balancer, grup keamanan, atau aturan pendengar yang dikelola, Amazon ECS tidak dapat lagi memperbarui atau membersihkan sumber daya tersebut.

## Buat gerbang
<a name="gateway-create"></a>

Saat membuat gateway, Anda harus menentukan nama unik, peran infrastruktur ARN, dan `hostSharedAlb` objek konfigurasi. SEBUAH `hostSharedAlb` gateway berbagi Application Load Balancers di seluruh layanan dan menggunakan routing berbasis host untuk mengarahkan lalu lintas masuk ke layanan ECS yang terhubung. Setiap pengaturan di dalam konfigurasi adalah opsional, jadi `--configuration '{"hostSharedAlb": {}}'` membuat gateway yang menggunakan nilai default. `CreateGateway` adalah operasi sinkron: mengembalikan status `ACTIVE`, dan Amazon ECS tidak menyediakan infrastruktur sampai layanan pertama terhubung.

**Untuk membuat gateway**

```
aws ecs create-gateway \
    --name my-gateway \
    --infrastructure-role-arn arn:aws:iam::123456789012:role/ecsInfrastructureRoleForGateways \
    --configuration '{
        "hostSharedAlb": {
            "scheme": "internet-facing",
            "networkConfiguration": {
                "subnets": ["subnet-abc123", "subnet-def456"]
            }
        }
    }'
```

Output:

```
{
    "gatewayArn": "arn:aws:ecs:us-west-2:123456789012:gateway/my-gateway/a1b2c3d4",
    "name": "my-gateway",
    "status": "ACTIVE"
}
```

Untuk mengonfirmasi gateway dan membaca kembali konfigurasinya, jalankan `aws ecs describe-gateway --gateway my-gateway`. Untuk informasi selengkapnya, lihat [Lihat status gateway](gateway-monitoring.md#gateway-view-status).

### Menyesuaikan gateway
<a name="gateway-customize"></a>

Amazon ECS memilih default untuk setiap pengaturan yang tidak Anda berikan. Untuk menyesuaikan gateway, atur bidang opsional di dalam konfigurasi.

Jika setelan memiliki ekuivalen dalam Elastic Load Balancing, nama dan nilai bidang cocok dengan Elastic Load Balancing API.

Pendengar gateway menggunakan `HTTPS` di port 443. Tidak ada protokol atau port lain yang didukung.

Pengaturan berikut tidak dapat diubah setelah gateway dibuat. Untuk mengubah pengaturan yang tidak dapat diubah, Anda harus membuat gateway baru, memperbarui layanan Anda untuk terhubung ke sana, dan menghapus gateway sebelumnya.
+ **Nama.** Nama harus unik di akun Anda dan bisa maksimal 255 karakter.
+ **Subnet**. Tentukan subnet yang digunakan penyeimbang beban. Defaultnya adalah subnet dari VPC default Anda. Subnet gateway menentukan VPC mana dan Zona Ketersediaan mana yang dicakupnya. Layanan hanya terhubung ke gateway yang mencakup VPC dan Zona Ketersediaan yang dijalankannya, sehingga pilihan Anda memutuskan layanan mana yang dapat menggunakan gateway. Jika layanan Anda tidak berjalan di VPC default Anda, tetapkan subnet saat Anda membuat gateway.
+ **Jenis alamat IP.** Pilih `ipv4`, `dualstack`, atau `dualstack-without-public-ipv4`. Nilai default-nya `dualstack`.
+ **Skema.** Memilih `internet-facing` atau `internal`. Nilai default-nya `internet-facing`. Amazon ECS memperoleh jenis akses gateway dari skema, jadi `internet-facing` memberikan jenis akses `PUBLIC` dan `internal` memberikan `PRIVATE`. Layanan hanya terhubung ke gateway yang jenis aksesnya diterima. Untuk informasi selengkapnya, lihat [Hubungkan layanan Amazon ECS ke gateway](gateway-connect-service.md).

Anda dapat mengubah pengaturan berikut kapan saja.
+ **Grup keamanan masuk.** Berikan grup keamanan jika Anda ingin mengontrol lalu lintas masuk ke penyeimbang beban sendiri. Jika tidak, Amazon ECS membuatnya dan mengelola aturan inbound-nya.
+ **Jumlah penyeimbang beban maksimum.** Masukkan jumlah Penyeimbang Beban Aplikasi yang dapat dikelola oleh gateway. Default-nya adalah 10.
+ **AWS WAF ACL web.** Masukkan ARN ACL web untuk dikaitkan dengan setiap penyeimbang beban yang dikelola gateway. Tidak ada default.
+ **Mode mitigasi desync HTTP.** Pilih `monitor`, `defensive`, atau `strictest`. Nilai default-nya `defensive`.
+ **Akses log.** Log akses dinonaktifkan secara default. Untuk mengaktifkannya, berikan bucket Amazon S3 yang Anda miliki.
+ **Uji aturan lalu lintas.** Masukkan header yang merutekan lalu lintas uji ke revisi layanan baru. Tidak ada default. Perubahan berlaku untuk setiap layanan pada penerapan layanan berikutnya.
+ **Perlindungan penghapusan.** Perlindungan penghapusan diaktifkan secara default, dan gateway menyebarkannya ke penyeimbang beban yang dikelolanya. Anda tidak dapat menghapus gateway sampai Anda menonaktifkannya.
+ **Propagasi tag.** Gateway menerapkan tagnya ke infrastruktur yang dikelolanya. Untuk menyimpan tag Anda di gateway saja, setel propagasi tag ke `NONE`.

## Mengaitkan gateway dengan cluster Amazon ECS
<a name="gateway-associate-cluster"></a>

Layanan cluster dapat menggunakan gateway hanya setelah Anda mengaitkan gateway dengan cluster mereka. Gerbang dan cluster yang dilayaninya harus berada di tempat yang sama AWS Wilayah dan akun. Mengasosiasikan gateway tidak merutekan lalu lintas apa pun dengan sendirinya. Itu tidak mengubah cara layanan yang ada menerima lalu lintas. Layanan di cluster ini ikut serta secara terpisah, dan mulai menggunakan gateway pada penerapan berikutnya.

**Untuk mengaitkan gateway dengan cluster**

```
aws ecs associate-gateway-with-cluster \
    --gateway my-gateway \
    --cluster my-cluster
```

Asosiasi banyak-ke-banyak. Anda dapat mengaitkan gateway dengan hingga 10.000 cluster, dan cluster dengan hingga 5 gateway. Anda mengelola asosiasi hanya melalui `AssociateGatewayWithCluster` dan `DisassociateGatewayFromCluster`.

Saat layanan dengan konektor gateway digunakan, Amazon ECS mengevaluasi gateway yang terkait dengan klusternya. Layanan terhubung ke gateway yang kompatibel berdasarkan jenis akses, VPC, dan Zona Ketersediaan. Rencanakan cakupan subnet dengan hati-hati, karena itu menentukan jangkauan gateway. Gateway hanya melayani layanan di VPC dan Zona Ketersediaan yang dicakup oleh subnetnya. Cakupan yang sempit membuat sisa layanan di cluster tidak dapat menggunakannya. Untuk informasi selengkapnya, lihat [Bagaimana Amazon ECS memilih gateway yang kompatibel](gateway-connect-service.md#gateway-select-compatible).

**catatan**  
Saat Anda mengaitkan gateway dengan cluster, layanan yang ada tidak terpengaruh hingga penerapan berikutnya. Menambahkan gateway lain ke cluster tidak secara otomatis menghubungkan layanan yang sudah berjalan.

**Untuk membuat daftar asosiasi cluster gateway**

```
aws ecs list-gateway-cluster-associations --gateway my-gateway
```

Respons termasuk gateway ARN, cluster ARN, dan status asosiasi. Sebuah asosiasi dapat memiliki status berikut:
+ `ACTIVE`: Gateway dikaitkan dengan cluster
+ `DISASSOCIATING`: Asosiasi sedang dihapus. Rute gateway yang ada dapat terus melayani lalu lintas hingga dihapus.

Ini adalah status asosiasi, bukan status gateway. Gateway memiliki rangkaian statusnya sendiri. Anda dapat memfilter daftar ini berdasarkan gateway, berdasarkan cluster, atau berdasarkan status. Lulus `--cluster` untuk melihat gateway mana yang dimiliki cluster, atau filter berdasarkan status untuk menemukan setiap asosiasi yang masih ada `DISASSOCIATING`. Ini adalah cara Anda memeriksa apakah disasosiasi tertunda sebelum Anda menghapus gateway. Hasilnya dipaginasi, 100 per halaman secara default.

## Memperbarui gateway
<a name="gateway-update"></a>

Memperbarui gateway mengubah pengaturan yang diwarisi oleh setiap layanan yang terhubung, termasuk layanan dan infrastruktur yang sudah ada di belakangnya. Beberapa pengaturan tidak dapat diubah setelah Anda membuat gateway. [Menyesuaikan gateway](#gateway-customize) menjelaskan pengaturan yang tersedia dan mengidentifikasi pengaturan yang tidak dapat Anda ubah.

**penting**  
`UpdateGateway` menggantikan konfigurasi gateway dengan yang ada di permintaan Anda. Menghilangkan pengaturan akan menghapusnya daripada membiarkannya tidak berubah. Sebelum Anda memperbarui, jalankan `describe-gateway` untuk mengambil konfigurasi saat ini, dan menyertakan setiap pengaturan yang ingin Anda simpan dalam permintaan, bukan hanya yang Anda ubah.

**Langkah 1: Dapatkan konfigurasi saat ini**

```
aws ecs describe-gateway --gateway my-gateway
```

```
{
    "gateway": {
        "gatewayArn": "arn:aws:ecs:us-west-2:123456789012:gateway/my-gateway/a1b2c3d4",
        "name": "my-gateway",
        "status": "ACTIVE",
        "accessType": "PUBLIC",
        "deletionProtection": true,
        "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRoleForGateways",
        "propagateTags": "GATEWAY",
        "configuration": {
            "hostSharedAlb": {
                "scheme": "internet-facing",
                "protocol": "HTTPS",
                "port": 443,
                "maxAlbCount": 10,
                "currentAlbCount": 2,
                "httpDesync": "monitor",
                "networkConfiguration": {
                    "subnets": ["subnet-abc123", "subnet-def456"],
                    "ipAddressType": "dualstack"
                }
            }
        },
        "tags": [],
        "createdAt": 1760000000.0,
        "updatedAt": 1760400000.0
    }
}
```

**Langkah 2: Pilih pengaturan yang akan disertakan**

Tentukan nilai baru untuk pengaturan yang Anda ubah, dan sertakan setiap pengaturan lainnya dengan nilai saat ini. Amazon ECS tidak mempertahankan pengaturan yang Anda tinggalkan. Tabel berikut menunjukkan ke mana setiap pengaturan pergi dan apa yang terjadi jika Anda meninggalkannya.


| Pengaturan | Di mana harus melewatinya | Jika Anda menghilangkannya | 
| --- | --- | --- | 
| infrastructureRoleArn | Tingkat atas | Permintaan gagal (wajib) | 
| configuration.hostSharedAlb | Tingkat atas | Permintaan gagal (wajib) | 
| deletionProtection | Tingkat atas | Setel ulang ke true | 
| propagateTags | Tingkat atas | Setel ulang ke GATEWAY | 
| networkConfiguration.inboundSecurityGroup | hostSharedAlb | Dihapus. Amazon ECS melanjutkan pengelolaan aturan inbound | 
| webACLArn | hostSharedAlb | Dihapus. ACL web dipisahkan | 
| httpDesync | hostSharedAlb | Setel ulang ke defensive | 
| accessLogs | hostSharedAlb | Dihapus. Logging akses dimatikan | 
| testTrafficRules | hostSharedAlb | Dihapus | 
| maxAlbCount | hostSharedAlb | Setel ulang ke 10 | 

Pintu gerbang `name`, `scheme`, `protocol`, `port`, `subnets`, dan `ipAddressType` diperbaiki saat Anda membuat gateway dan tidak dapat diubah. `currentAlbCount` adalah nilai yang dilaporkan Amazon ECS daripada pengaturan. Tinggalkan semua ini dari permintaan.

**catatan**  
Peran infrastruktur diperlukan di setiap `UpdateGateway` permintaan. Permintaan tanpa itu mengembalikan kesalahan validasi. Jika Anda menghilangkan perlindungan penghapusan atau propagasi tag, Amazon ECS akan mengatur ulang ke nilai defaultnya.

**Langkah 3: Perbarui gateway**

Contoh ini berubah `maxAlbCount` dari `10` kepada `25`. Ini juga termasuk `httpDesync`, yang tidak berubah. Menghilangkannya akan mengembalikan gateway ke default `defensive`.

```
aws ecs update-gateway \
    --gateway my-gateway \
    --infrastructure-role-arn arn:aws:iam::123456789012:role/ecsInfrastructureRoleForGateways \
    --configuration '{
        "hostSharedAlb": {
            "maxAlbCount": 25,
            "httpDesync": "monitor"
        }
    }'
```

Pengaturan yang tidak dapat diubah menggambarkan infrastruktur yang tidak dapat dibangun kembali Amazon ECS tanpa mengganggu lalu lintas. Untuk mengubah pengaturan yang tidak dapat diubah, buat gateway baru dengan konfigurasi yang Anda inginkan, kaitkan dengan cluster, pindahkan layanan ke sana, lalu pisahkan dan hapus gateway lama.

Saat Anda memodifikasi parameter yang dapat diubah dengan `UpdateGateway`, Amazon ECS menerapkan perubahan di semua penyeimbang beban yang dikelola oleh gateway secara asinkron. Perubahan pada infrastruktur bersama berlaku saat pembaruan berjalan. Gerbang masuk `UPDATE_IN_PROGRESS`. Amazon ECS melakukan pembaruan bergulir ke semua ALB aktif. Ketika pembaruan selesai, status menjadi `UPDATE_COMPLETE`.

Jika pembaruan tidak dapat diterapkan ke satu atau lebih penyeimbang beban (seperti ARN WAF yang tidak valid atau izin IAM yang hilang), status gateway berubah menjadi `UPDATE_FAILED`. Gunakan `describe-gateway` untuk memeriksa kegagalan.

**Untuk memeriksa kemajuan pembaruan**

```
aws ecs describe-gateway \
    --gateway my-gateway \
    --query 'gateway.{name:name,status:status}'
```

**catatan**  
Saat gateway memperbarui, penyeimbang beban memiliki campuran konfigurasi lama dan baru, karena Amazon ECS telah menerapkan perubahan pada beberapa dari mereka dan belum pada yang lain. Ulangi perintah sampai status berubah.

Pembaruan dapat berhasil untuk beberapa penyeimbang beban dan gagal untuk yang lain. Amazon ECS melakukan upaya terbaik untuk memperbarui setiap sumber daya daripada berhenti pada kegagalan pertama. Gerbang yang melaporkan `UPDATE_FAILED` Menjelaskan status di `statusReason`. Dalam `failures`, ia mencatat setiap sumber daya yang tidak dapat diperbarui, dan mengapa. Setiap entri menyebutkan sumber daya yang gagal dan operasi, kode kesalahan, dan pesan yang terkait dengan setiap kegagalan. Gateway mencatat kegagalan hingga 200 sumber daya, dengan masing-masing hingga 5 kesalahan. Selesaikan masalah yang mendasarinya, seperti hilangnya izin IAM atau sumber daya yang dimodifikasi secara eksternal dan coba lagi `update-gateway` operasi.

Untuk deskripsi lengkap gateway, termasuk konfigurasinya dan jumlah penyeimbang beban yang saat ini dimilikinya, lihat [Lihat status gateway](gateway-monitoring.md#gateway-view-status).

**penting**  
Sampai laporan pembaruan `UPDATE_COMPLETE`, jangan berasumsi bahwa semua sumber daya yang dikelola memiliki konfigurasi yang diminta.

Bagian berikut menjelaskan pengaturan yang dapat Anda ubah. Masing-masing hanya menunjukkan konfigurasinya sendiri. Tambahkan ke konfigurasi yang Anda ambil di Langkah 1, dan sertakan peran infrastruktur dalam permintaan.

### Kontrol lalu lintas masuk
<a name="gateway-control-inbound"></a>

Secara default, Amazon ECS membuat grup keamanan untuk penyeimbang beban gateway dan memungkinkan lalu lintas HTTPS masuk dari semua alamat IP pada port 443. Untuk mengontrol lalu lintas masuk sendiri, sediakan grup keamanan Anda sendiri. Amazon ECS melampirkan grup keamanan yang ditentukan ke penyeimbang beban, menghapus aturan inbound yang ada yang dikelola sebelumnya, dan berhenti mengelola aturan inbound.

**penting**  
Sebelum menentukan grup keamanan masuk, pastikan grup tersebut memungkinkan lalu lintas yang diperlukan untuk layanan Anda. Jika tidak, layanan yang ada yang terhubung ke gateway mungkin tidak dapat dijangkau.

**Untuk menyediakan grup keamanan inbound Anda sendiri**

```
"networkConfiguration": {
    "inboundSecurityGroup": "sg-085c0f8be53138a08"
}
```

Penyeimbang beban dibagikan, sehingga perubahan pada aturan grup keamanan masuk dapat memengaruhi setiap layanan yang menggunakan penyeimbang beban tersebut. Grup keamanan masuk adalah satu-satunya pengaturan konfigurasi jaringan yang dapat Anda ubah setelah Anda membuat gateway. Subnet dan jenis alamat IP tidak dapat diubah.

### Mengasosiasikan AWS WAF ACL web
<a name="gateway-associate-waf"></a>

Amazon ECS menerapkan ACL web ke setiap penyeimbang beban yang dikelola gateway. ACL web kemudian melindungi setiap layanan di belakang gateway tanpa setiap tim mengonfigurasinya. ACL web harus menjadi ACL web regional dalam hal yang sama AWS Wilayah sebagai pintu gerbang.

**Untuk mengaitkan ACL web**

```
"webACLArn": "arn:aws:wafv2:us-west-2:123456789012:regional/webacl/my-waf/a1b2c3d4"
```

### Mengatur mode mitigasi desync HTTP
<a name="gateway-desync"></a>

Secara default, penyeimbang beban menggunakan `defensive` mode, yang melindungi dari sebagian besar penyelundupan permintaan sambil mengizinkan permintaan yang tidak sepenuhnya sesuai dengan HTTP. Gunakan `strictest` untuk menolak permintaan yang tidak sesuai, atau `monitor` untuk mengizinkan semua permintaan dan mencatat mana yang akan diblokir.

Jika Anda mempertimbangkan `strictest`, mulai dengan `monitor` sehingga Anda dapat melihat apa yang akan ditolak sebelum menolak apa pun. Untuk meninjau hasilnya, aktifkan log akses.

**Untuk mengatur mode mitigasi desync**

```
"httpDesync": "strictest"
```

### Aktifkan log akses
<a name="gateway-access-logs"></a>

Log akses dinonaktifkan hingga Anda menyediakan bucket Amazon S3. Amazon ECS tidak membuat bucket untuk Anda, dan tidak ada pengaturan terpisah yang mengaktifkan login. Menyediakan bucket memungkinkan log akses.

**Untuk mengaktifkan log akses**

```
"accessLogs": {
    "destination": {
        "s3": { "bucket": "my-gateway-logs", "prefix": "alb" }
    }
}
```

Ember harus sama AWS Wilayah sebagai gateway, dan kebijakan bucket-nya harus mengizinkan Elastic Load Balancing untuk menulis ke sana. Peran infrastruktur tidak terlibat dalam penulisan ini, jadi memberikannya izin Amazon S3 tidak berpengaruh. Karena penyeimbang beban dibagikan, satu bucket menerima log untuk setiap layanan di gateway. Gunakan nama host di setiap catatan log untuk mengidentifikasi layanan mana yang dituju permintaan.

### Konfigurasikan aturan lalu lintas uji
<a name="gateway-test-traffic-rules"></a>

Selama penerapan progresif, revisi layanan baru perlu menerima lalu lintas sebelum lalu lintas produksi bergeser ke sana. Aturan lalu lintas uji mengidentifikasi permintaan yang mencapai revisi baru.

Anda mengonfigurasi aturan ini pada gateway daripada pada layanan individual, sehingga setiap layanan di belakang gateway menggunakan aturan yang sama. Amazon ECS mencocokkan permintaan berdasarkan header, dan Anda harus memberikan nama header dan setidaknya satu nilai.

**Untuk mengkonfigurasi aturan lalu lintas uji**

```
"testTrafficRules": {
    "header": { "name": "x-test-traffic", "values": ["canary"] }
}
```

Sebuah permintaan membawa `x-test-traffic: canary` mencapai revisi baru selama penerapan. Semua permintaan lainnya mencapai revisi produksi. Pencocokan header adalah satu-satunya mekanisme. Anda tidak dapat mengirim persentase lalu lintas ke revisi baru.

Di luar penerapan, tidak ada revisi baru, sehingga permintaan yang membawa header pengujian mencapai revisi produksi seperti permintaan lainnya.

**penting**  
Perubahan untuk menguji peraturan lalu lintas tidak berlaku untuk menjalankan layanan saat Anda membuatnya. Ini berlaku untuk setiap layanan pada penerapan layanan berikutnya.

Amazon ECS tidak menulis ulang kondisi kecocokan aturan yang ada. Mengubah header membuat aturan baru untuk revisi baru. Penerapan yang gagal hanya menghapus aturan yang dibuat dan membiarkan aturan yang melayani revisi saat ini tidak berubah. Akibatnya, gateway dapat memiliki beberapa layanan yang cocok dengan header pengujian lama dan yang lain cocok dengan yang baru sampai setiap layanan di-redeploy. Tim aplikasi harus menyebarkan kembali layanan mereka untuk mengambil header baru. Amazon ECS tidak menyebarkan kembali layanan tersebut, jadi koordinasikan perubahan header dengan pemilik layanan.

### Mengatur jumlah penyeimbang beban maksimum
<a name="gateway-alb-capacity"></a>

`maxAlbCount` membatasi berapa banyak Application Load Balancer yang dapat dibuat oleh gateway. Default-nya adalah 10.

**Untuk menaikkan jumlah penyeimbang beban maksimum**

```
"maxAlbCount": 50
```

Dua batasan terpisah menentukan berapa banyak layanan yang dapat dilayani gateway.
+ **Layanan per penyeimbang beban.** SEBUAH `hostSharedAlb` gateway menempatkan hingga 25 layanan pada satu Application Load Balancer. Ini adalah properti tetap dari Application Load Balancer dengan routing berbasis host dan Anda tidak dapat mengubahnya.
+ **Penyeimbang beban per gateway.** `maxAlbCount` adalah plafon yang Anda tetapkan pada berapa banyak penyeimbang beban yang dapat dibuat gateway. Default-nya adalah 10.

Amazon ECS mengisi penyeimbang beban ke 25 layanan, kemudian menyediakan layanan lain, hingga `maxAlbCount`. Ketika layanan terakhir meninggalkan penyeimbang beban, Amazon ECS menghapusnya. Bersama-sama, kedua batas membatasi gateway pada 25 x `maxAlbCount` layanan, atau 250 pada default.

Naikkan maksimum sebelum Anda membutuhkannya. Jika layanan memilih masuk ketika setiap penyeimbang beban penuh dan gateway mencapai maksimum, Amazon ECS tidak dapat menyediakan masuk untuk layanan tersebut. Kegagalan terjadi selama penyebaran layanan itu. Meningkatkan maksimum sesudahnya tidak mencoba lagi penerapan yang gagal, sehingga pemilik layanan harus menerapkan layanan lagi.

Untuk melihat berapa banyak penyeimbang beban yang dimiliki gateway terhadap maksimumnya, jelaskan gateway dan bandingkan `currentAlbCount` bersama `maxAlbCount`. Untuk melihat penyeimbang beban itu sendiri dan rute gateway pada masing-masing, lihat [Memeriksa infrastruktur terkelola (tampilan platform)](gateway-monitoring.md#gateway-inspect-infrastructure).

## Memisahkan gateway dari cluster
<a name="gateway-disassociate-cluster"></a>

Putuskan hubungan gateway dari cluster saat Anda tidak lagi ingin layanan di cluster tersebut terhubung ke gateway. Memutuskan hubungan mencegah koneksi layanan baru melalui asosiasi itu. Itu tidak menghapus koneksi layanan yang ada segera.

**penting**  
Sebelum Anda memutuskan hubungan gateway, verifikasi bahwa layanan yang terpengaruh memiliki jalur masuk alternatif jika harus tetap dapat diakses. Menghapus rute gateway dapat membuat layanan tidak dapat dijangkau melalui gateway itu.

**Untuk memisahkan gateway dari cluster**

```
aws ecs disassociate-gateway-from-cluster \
    --gateway my-gateway \
    --cluster my-cluster
```

Asosiasi memasuki `DISASSOCIATING` negara. Sementara asosiasi berada di `DISASSOCIATING` negara bagian:
+ Layanan baru tidak dapat terhubung ke gateway melalui cluster.
+ Layanan yang ada terus menerima lalu lintas melalui rute gateway mereka.
+ Layanan terputus dari gateway saat diperbarui atau digunakan kembali.
+ Asosiasi tetap `DISASSOCIATING` sampai semua rute gateway telah dihapus.

Amazon ECS tidak secara otomatis menyebarkan ulang layanan saat gateway dipisahkan dari klusternya. Tim aplikasi harus memperbarui atau menyebarkan kembali layanan mereka untuk memutuskan sambungan dari gateway pemisahan. Jika tidak ada gateway lain yang tersedia di cluster, lepaskan konektor gateway sebelum menyebarkan ulang layanan. Ketika rute gateway terakhir dihapus, Amazon ECS menghapus asosiasi.

### Lihat rute gateway yang mencegah disasosiasi
<a name="gateway-view-blocking-routes"></a>

Gunakan `list-gateway-routes` perintah untuk mengidentifikasi layanan yang masih memiliki rute gateway yang terkait dengan cluster.

**Untuk menemukan rute gateway yang memblokir disasosiasi**

```
aws ecs list-gateway-routes --gateway my-gateway --cluster my-cluster
```

Respons mengidentifikasi rute gateway yang masih terhubung. Jika rute tetap ada, perbarui atau gunakan kembali layanan yang terpengaruh untuk memutuskan sambungannya dari gateway yang terputus.

Selain gateway dan cluster, Anda dapat memfilter rute berdasarkan layanan, berdasarkan nama port kontainer, dan berdasarkan status. Memfilter berdasarkan status menemukan rute yang macet dan bukan masih digunakan. Rute ARN mengarah ke `DescribeGatewayRoute`, yang melaporkan nama host dan infrastruktur khusus layanan untuk satu koneksi itu. Untuk informasi selengkapnya, lihat [Memantau gateway](gateway-monitoring.md).

**catatan**  
Memfilter berdasarkan nama layanan saja tidak diperbolehkan, karena nama layanan unik hanya dalam cluster. Berikan ARN layanan penuh atau nama layanan bersama dengan klasternya.

### Membatalkan disasosiasi gateway
<a name="gateway-cancel-disassociation"></a>

Sementara sebuah asosiasi berada di `DISASSOCIATING` negara, Anda dapat mengaktifkannya kembali. Kaitkan gateway dengan cluster yang sama lagi, dan Amazon ECS mengembalikan asosiasi ke `ACTIVE`.

**Untuk mengaktifkan kembali asosiasi**

```
aws ecs associate-gateway-with-cluster \
    --gateway my-gateway \
    --cluster my-cluster
```

Apa yang disimpan layanan tergantung pada apakah layanan tersebut dialihkan saat asosiasi terputus.
+ **Layanan yang belum dialihkan** pertahankan rute gateway dan nama host DNS yang ada, dan terus melayani lalu lintas tanpa gangguan.
+ **Layanan yang dialihkan saat asosiasi dipisahkan** kehilangan rute gerbang mereka. Masing-masing membutuhkan penerapan lain untuk menerima rute lagi, dan rute itu membawa nama host DNS baru.

Setelah disasosiasi selesai, asosiasi hilang secara permanen dan tidak dapat diaktifkan kembali. Jika asosiasi asli telah sepenuhnya dihapus, untuk menggunakan gateway yang sama dengan cluster itu lagi, buat asosiasi baru. Layanan yang sebelumnya terhubung menerima rute gateway baru, dengan nama host DNS baru, pada penerapan berikutnya.

## Menghapus gateway
<a name="gateway-delete"></a>

Anda dapat menghapus gateway ketika tidak lagi diperlukan. Sebelum Anda menghapus gateway, kondisi berikut harus dipenuhi:
+ Perlindungan penghapusan dinonaktifkan.
+ Gateway tidak memiliki asosiasi cluster di `ACTIVE` atau `DISASSOCIATING` negara.

**Langkah 1: Nonaktifkan perlindungan penghapusan**

Perlindungan penghapusan diaktifkan secara default, jadi pastikan itu dinonaktifkan sebelum Anda melanjutkan.

```
aws ecs update-gateway --gateway my-gateway --no-deletion-protection
```

**Langkah 2: Lepaskan gateway dari masing-masing klusternya**

Jalankan perintah berikut untuk setiap cluster terkait.

```
aws ecs disassociate-gateway-from-cluster \
    --gateway my-gateway \
    --cluster my-cluster
```

Setiap asosiasi tetap `DISASSOCIATING` sampai setiap rute gateway untuk gateway itu di cluster dihapus. Amazon ECS menghapus rute hanya ketika layanan yang memilikinya dikerahkan ulang atau dihapus, dan tidak menyebarkan kembali layanan untuk Anda. Berkoordinasi dengan pemilik layanan untuk menyebarkan kembali setiap layanan.

Untuk menemukan rute yang menahan asosiasi terbuka, jalankan perintah berikut.

```
aws ecs list-gateway-routes --gateway my-gateway --cluster my-cluster
```

**Langkah 3: Konfirmasikan bahwa tidak ada asosiasi yang tersisa**

Amazon ECS menghapus asosiasi setelah rute terakhirnya hilang. Ketika daftar kosong, Anda dapat menghapus gateway.

```
aws ecs list-gateway-cluster-associations --gateway my-gateway
```

**Langkah 4: Hapus gateway**

```
aws ecs delete-gateway --gateway my-gateway
```

Yang `DeleteGateway` Operasi sinkron. Ketika operasi berhasil, Amazon ECS mengembalikan informasi gateway dengan status `DELETED`, dan permintaan selanjutnya untuk gateway mengembalikan a `GatewayNotFoundException`. Jika prasyarat tidak terpenuhi, operasi gagal.

Tidak ada yang tersisa untuk dibersihkan. Amazon ECS menghapus rute gateway layanan dan sumber dayanya saat layanan terputus, dan menghapus penyeimbang beban saat layanan terakhirnya berhenti.