

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

# Minta pembatasan untuk Amazon ECS API
<a name="request-throttling"></a>

Amazon Elastic Container Service membatasi semua permintaan API untuk setiap AWS akun per wilayah. Kami melakukan ini untuk memastikan kinerja yang konsisten dan penggunaan layanan yang adil untuk semua pelanggan Amazon ECS. Throttling memastikan bahwa panggilan ke Amazon ECS API tidak melebihi kuota permintaan API maksimum yang diizinkan untuk Amazon ECS dan AWS layanan lain yang terintegrasi dengannya. Panggilan API tunduk pada kuota permintaan apakah berasal dari:
+ Aplikasi pihak ketiga
+ Alat baris perintah
+ Konsol Amazon ECS

Jika melebihi kuota throttling API, Anda mendapatkan kode kesalahan `ThrottlingException`.

```
An error occurred (ThrottlingException) when calling the DescribeClusters operation (reached max retries: 4): Rate exceeded.
com.amazonaws.services.ecs.model.AmazonECSException: Rate exceeded (Service: AmazonECS; Status Code: 400; Error
Code: ThrottlingException; Request ID: 5ed90669-e454-464d-9b2f-6523bc86f537; Proxy: null)
```

## Bagaimana throttling diterapkan
<a name="throttling-how"></a>

Amazon ECS menggunakan [algoritma token bucket](https://en.wikipedia.org/wiki/Token_bucket) untuk mengimplementasikan pelambatan API. Dengan algoritme ini, akun Anda memiliki *bucket* yang memegang sejumlah tertentu *token*. Jumlah token dalam bucket mewakili kuota throttling Anda pada detik tertentu.

**Amazon ECS memeriksa tingkat pengiriman permintaan API untuk semua API Amazon ECS di akun Anda, per Wilayah, dan menerapkan dua jenis kuota pembatasan API: berkelanjutan dan burst.** Tingkat berkelanjutan adalah jumlah rata-rata permintaan API yang diizinkan per detik dari waktu ke waktu untuk suatu operasi. Kecepatan burst adalah jumlah maksimum permintaan API yang diizinkan dalam satu detik. Dengan burst, Anda dapat secara berkala membuat jumlah permintaan API yang lebih tinggi daripada tingkat berkelanjutan. Setelah itu, Amazon ECS membatasi permintaan API berikutnya hingga tingkat permintaan API yang diizinkan dari waktu ke waktu stabil ke tingkat berkelanjutan. Dalam algoritma token bucket, *kapasitas maksimum bucket* menandakan burst rate dan *bucket refill rate adalah laju* berkelanjutan. Kami akan menggunakan istilah ini untuk memberi Anda ilustrasi pembatasan permintaan Amazon ECS API dalam contoh berikut.

Anda dibatasi pada jumlah permintaan API yang Anda buat dan setiap permintaan menghapus satu token dari keranjang token. Misalnya, ukuran bucket untuk *tindakan baca Cluster*, seperti `DescribeClusters` API, adalah 50 token, sehingga Anda dapat membuat hingga 50 `DescribeClusters` permintaan dalam satu detik. Jika Anda melebihi 50 permintaan dalam satu detik, Anda dibatasi dan permintaan yang tersisa dalam detik itu gagal.

Bucket secara otomatis diisi ulang pada tingkat yang ditetapkan. Jika bucket berada di bawah kapasitas maksimumnya, sejumlah token ditambahkan kembali setiap detik hingga mencapai kapasitas maksimumnya. Jika ember penuh saat token isi ulang tiba, mereka dibuang. Bucket tidak dapat menampung lebih dari jumlah token maksimumnya. Misalnya, ukuran bucket untuk *tindakan baca Cluster*, seperti `DescribeClusters` API, adalah 50 token, dan tingkat isi ulang adalah 20 token per detik. Jika Anda membuat 50 permintaan `DescribeClusters` API dalam satu detik, bucket segera dikurangi menjadi nol token. Bucket kemudian diisi ulang dengan 20 token setiap detik, hingga mencapai kapasitas maksimum 50 token. Ini berarti bahwa ember yang sebelumnya kosong mencapai kapasitas maksimumnya setelah 2,5 detik.

Anda tidak perlu menunggu bucket benar-benar penuh sebelum Anda dapat membuat permintaan API. Anda dapat menggunakan token karena mereka ditambahkan ke bucket. Jika Anda segera menggunakan token isi ulang, ember tidak mencapai kapasitas maksimumnya. Misalnya, ukuran bucket untuk *tindakan baca Cluster*, seperti `DescribeClusters` API, adalah 50 token, dan tingkat isi ulang adalah 20 token per detik. Jika Anda menghabiskan bucket dengan membuat 50 permintaan API dalam satu detik, Anda dapat terus membuat 20 permintaan API per detik. Bucket dapat diisi ulang hingga kapasitas maksimum hanya jika Anda membuat kurang dari 20 permintaan API per detik.

## Minta Ukuran Bucket Token dan Tarif Isi Ulang
<a name="throttling-quotas"></a>

Untuk tujuan pembatasan tingkat permintaan, tindakan API dikelompokkan ke dalam kategori. Semua tindakan API dalam kategori berbagi keranjang token yang sama. Misalnya, `DescribeClusters` dan `ListClusters` API berbagi bucket *tindakan baca Cluster*, yang kapasitasnya 50 dan laju isi ulang adalah 20. Ini berarti bahwa jumlah kumulatif permintaan API untuk semua *tindakan baca Cluster* dibatasi oleh kuota burst rate yang sama yaitu 50 permintaan API. Dengan demikian, Anda dapat membuat 25 `DescribeClusters` dan 25 permintaan `ListClusters` API dalam satu detik, atau 30 `DescribeClusters` dan 20`ListClusters`, atau 50 `DescribeClusters` dan 0`ListClusters`, atau 0 `DescribeClusters` dan 50`ListClusters`, tetapi Anda tidak dapat membuat 50 `DescribeClusters` dan 50 `ListClusters` permintaan pada saat yang sama. Tingkat berkelanjutan juga diterapkan secara kumulatif ke semua permintaan API dalam bucket.

Tabel berikut menunjukkan kapasitas bucket (atau burst) dan laju isi ulang (atau berkelanjutan) untuk semua AWS Wilayah. Semua kategori tindakan API memberlakukan kuota tarif untuk setiap AWS akun berdasarkan per wilayah.


| Kategori aksi API | Tindakan | Kapasitas maksimum bucket (atau Burst rate) | Tingkat isi ulang bucket (atau Tarif berkelanjutan) | 
| --- | --- | --- | --- | 
| Tindakan modifikasi cluster |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/AmazonECS/latest/developerguide/request-throttling.html)  | 20 | 1 | 
| Tindakan membaca cluster |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/AmazonECS/latest/developerguide/request-throttling.html)  | 50 | 20 | 
| Definisi tugas memodifikasi tindakan |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/AmazonECS/latest/developerguide/request-throttling.html)  | 20 | 1 | 
| Definisi tugas membaca tindakan |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/AmazonECS/latest/developerguide/request-throttling.html)  | 50 | 20 | 
| Tindakan penghapusan definisi tugas |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/AmazonECS/latest/developerguide/request-throttling.html)  | 5 | 1 | 
| Penyedia kapasitas memodifikasi tindakan |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/AmazonECS/latest/developerguide/request-throttling.html)  | 10 | 1 | 
| Penyedia kapasitas membaca tindakan |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/AmazonECS/latest/developerguide/request-throttling.html)  | 50 | 20 | 
| Tag memodifikasi tindakan |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/AmazonECS/latest/developerguide/request-throttling.html)  | 20 | 10 | 
| Tag membaca tindakan |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/AmazonECS/latest/developerguide/request-throttling.html)  | 50 | 20 | 
| Pengaturan memodifikasi tindakan |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/AmazonECS/latest/developerguide/request-throttling.html)  | 10 | 1 | 
| Mengatur tindakan baca |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/AmazonECS/latest/developerguide/request-throttling.html)  | 50 | 20 | 
| Tindakan modifikasi sumber daya cluster |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/AmazonECS/latest/developerguide/request-throttling.html)  | 100 | 40 | 
| Tindakan membaca sumber daya cluster |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/AmazonECS/latest/developerguide/request-throttling.html)  | 100 | 20 | 
| Agen memodifikasi tindakan |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/AmazonECS/latest/developerguide/request-throttling.html)  | 200 | 120 | 
| Layanan memodifikasi tindakan |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/AmazonECS/latest/developerguide/request-throttling.html)  | 50 | 5 | 
| Tindakan membaca layanan |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/AmazonECS/latest/developerguide/request-throttling.html)  | 100 | 20 | 
| Tindakan penyebaran layanan |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/AmazonECS/latest/developerguide/request-throttling.html)  | 50 | 20 | 
| Tindakan revisi layanan |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/AmazonECS/latest/developerguide/request-throttling.html)  | 50 | 20 | 
| Tindakan perlindungan tugas |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/AmazonECS/latest/developerguide/request-throttling.html)  | 200 | 80 | 
| Tindakan membaca sumber daya layanan kluster |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/AmazonECS/latest/developerguide/request-throttling.html)  | 10 | 1 | 

<a name="note-1"></a>1 AWS Fargate juga membatasi Amazon ECS `RunTask` API ke tarif yang tercantum di [sini di Panduan Pengembang](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/throttling.html) *Amazon ECS*.

## Menyesuaikan kuota throttling API
<a name="throttling-increase"></a>

Anda dapat meminta peningkatan kuota pembatasan API untuk akun Anda. AWS Untuk meminta penyesuaian kuota, hubungi [AWS Dukungan Pusat](https://console.aws.amazon.com/support/home#/).

## Penanganan API throttling
<a name="handling-throttling"></a>

Anda dapat menerapkan coba ulang kesalahan dan strategi back-off eksponensial untuk menghindari dampak kesalahan pelambatan pada beban kerja Anda. Jika Anda menggunakan AWS SDK, logika coba ulang otomatis sudah built-in dan dapat dikonfigurasi. Anda dapat merujuk ke sumber daya berikut untuk lebih jelasnya:
+ [Kesalahan percobaan ulang dan backoff eksponensial di dalam AWS](https://docs.aws.amazon.com/general/latest/gr/api-retries.html) Panduan Referensi Umum AWS 
+ Posting blog [backoff dan jitter eksponensial](https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/)
+ Batas [waktu, percobaan ulang, dan backoff dengan artikel jitter](https://aws.amazon.com/builders-library/timeouts-retries-and-backoff-with-jitter/) di Perpustakaan Amazon Builder