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
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
Amazon ECS menggunakan algoritma token bucket
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
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 20ListClusters, atau 50 DescribeClusters dan 0ListClusters, atau 0 DescribeClusters dan 50ListClusters, 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 |
|
20 | 1 |
| Tindakan membaca cluster |
|
50 | 20 |
| Definisi tugas memodifikasi tindakan |
|
20 | 1 |
| Definisi tugas membaca tindakan |
|
50 | 20 |
| Tindakan penghapusan definisi tugas |
|
5 | 1 |
| Penyedia kapasitas memodifikasi tindakan |
|
10 | 1 |
| Penyedia kapasitas membaca tindakan |
|
50 | 20 |
| Tag memodifikasi tindakan |
|
20 | 10 |
| Tag membaca tindakan |
|
50 | 20 |
| Pengaturan memodifikasi tindakan |
|
10 | 1 |
| Mengatur tindakan baca |
|
50 | 20 |
| Tindakan modifikasi sumber daya cluster |
|
100 | 40 |
| Tindakan membaca sumber daya cluster |
|
100 | 20 |
| Agen memodifikasi tindakan |
|
200 | 120 |
| Layanan memodifikasi tindakan |
|
50 | 5 |
| Tindakan membaca layanan |
|
100 | 20 |
| Tindakan penyebaran layanan |
|
50 | 20 |
| Tindakan revisi layanan |
|
50 | 20 |
|
Tindakan perlindungan tugas |
|
200 | 80 |
| Tindakan membaca sumber daya layanan kluster |
|
10 | 1 |
1 AWS Fargate juga membatasi Amazon ECS RunTask API ke tarif yang tercantum di sini di Panduan Pengembang Amazon ECS.
Menyesuaikan kuota throttling API
Anda dapat meminta peningkatan kuota pembatasan API untuk akun Anda. AWS Untuk meminta penyesuaian kuota, hubungi AWS Dukungan Pusat
Penanganan API throttling
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 Panduan Referensi Umum AWS
-
Posting blog backoff dan jitter eksponensial
-
Batas waktu, percobaan ulang, dan backoff dengan artikel jitter
di Perpustakaan Amazon Builder