Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pelambatan untuk permintaan API Amazon Route 53
penting
Amazon Route 53 memperbarui perilaku pelambatan API-nya. Pembaruan termasuk meningkatkan batas permintaan per detik dan memperkenalkan pelambatan berbasis perubahan. Halaman ini menjelaskan batas yang diperbarui secara rinci.
Amazon Route 53 membatasi permintaan API berdasarkan per akun untuk menjaga stabilitas layanan dan memastikan penggunaan yang wajar untuk semua pelanggan. Rute 53 menerapkan dua batasan independen:
-
Tingkat permintaan: jumlah permintaan API per detik.
-
Ubah throughput: jumlah perubahan catatan DNS individual per detik, digabungkan di seluruh tindakan API yang mengubah data DNS.
Permintaan dapat dibatasi oleh salah satu batas. Saat permintaan dibatasi, Amazon Route 53 mengembalikan kesalahan HTTP 400 (Bad request). Header respons juga mencakup elemen Code dengan nilai Throttling dan elemen Message dengan nilai Rate exceeded.
Bagaimana throttling diterapkan
Amazon Route 53 menggunakan algoritma bucket token. Setiap batas memiliki bucket yang menampung jumlah maksimum token. Setiap permintaan (untuk batas tingkat permintaan) atau setiap perubahan (untuk batas throughput perubahan) menghapus token dari bucket yang berlaku. Ember diisi ulang dengan kecepatan tetap setiap detik, hingga kapasitas maksimumnya. Jika token isi ulang tiba ketika ember sudah penuh, Route 53 membuangnya.
Dua nilai menggambarkan setiap ember:
-
Kapasitas maksimum bucket adalah burst Anda: jumlah permintaan atau perubahan yang dapat diserap Route 53 sekaligus saat bucket penuh.
-
Tingkat isi ulang bucket adalah tingkat berkelanjutan Anda: jumlah permintaan atau perubahan per detik yang dapat Anda pertahankan tanpa batas waktu.
Anda dapat menggunakan token isi ulang saat ditambahkan; Anda tidak perlu menunggu ember diisi ulang sepenuhnya.
Minta ukuran bucket token tarif dan tarif isi ulang
Rute 53 menerapkan pelambatan tarif permintaan di dua tingkat:
-
Tingkat akun: semua permintaan API Amazon Route 53 dari akun Anda diambil dari satu bucket.
-
Tingkat akun dan operasi: setiap tindakan API juga memiliki bucket sendiri.
Permintaan mengkonsumsi token dari kedua bucket dan dibatasi jika salah satu bucket kosong. Tindakan berikut memiliki batas tingkat permintaan default yang berbeda.
| Tindakan API | Kapasitas maksimum bucket | Tingkat pengisian ulang ember |
|---|---|---|
| Semua tindakan API Amazon Route 53 digabungkan (tingkat akun) | 50 | 10 |
| Setiap tindakan API tunggal yang tidak tercantum di bawah ini (default per tindakan) | 50 | 10 |
AssociateVPCWithHostedZone |
20 | 5 |
ChangeCidrCollection |
40 | 5 |
CreateCidrCollection |
40 | 5 |
CreateHealthCheck |
50 | 0.5 |
CreateHostedZone |
40 | 2 |
CreateReusableDelegationSet |
40 | 2 |
CreateTrafficPolicyInstance |
1 | 1 |
DeleteCidrCollection |
40 | 5 |
DeleteHealthCheck |
15 | 3 |
DeleteHostedZone |
40 | 5 |
DeleteReusableDelegationSet |
40 | 5 |
DeleteTrafficPolicyInstance |
1 | 1 |
DisassociateVPCFromHostedZone |
10 | 5 |
GetHealthCheckLastFailureReason |
4 | 1 |
GetHealthCheckStatus |
4 | 1 |
UpdateHealthCheck |
50 | 5 |
UpdateTrafficPolicyInstance |
1 | 1 |
Untuk daftar lengkap tindakan API Amazon Route 53, lihat Tind akan di Referensi API Amazon Route 53.
Permintaan CreateHealthCheck
Anda dapat mengirimkan satu CreateHealthCheck permintaan setiap 2 detik per Akun AWS. Ini sesuai dengan tingkat pengisian ulang 0,5 permintaan per detik yang ditunjukkan pada tabel sebelumnya.
Ubah pembatasan throughput
Selain batas tingkat permintaan, tindakan API yang mengubah data DNS tunduk pada batas throughput perubahan. Batas ini menggunakan bucket token terpisah yang habis berdasarkan jumlah perubahan catatan DNS yang dibuat permintaan, bukan jumlah permintaan. Perubahan throughput terbatas per Akun AWS, bukan per tindakan API. Semua tindakan berikut diambil dari satu bucket, yang memiliki kapasitas maksimum 1.500 perubahan (burst) dan isi ulang pada 100 perubahan per detik (berkelanjutan).
Perubahan dihitung sebagai berikut:
| Operasi | Token yang dikonsumsi |
|---|---|
ChangeResourceRecordSets |
1 perCREATE, 1 perDELETE, 2 per UPSERT |
AssociateVPCWithHostedZone |
2 |
DisassociateVPCFromHostedZone |
2 |
CreateHostedZone |
2 |
DeleteHostedZone |
2 |
Semua tindakan API Amazon Route 53 lainnya tidak menggunakan token throughput perubahan dan hanya dibatasi oleh tingkat permintaan.
Contoh: Anda dapat mengirimkan permintaan tunggal yang berisi 1.000 perubahan (burst), yang menghabiskan 1.000 token. Setelah ledakan, ember diisi ulang dengan 100 token per detik. Jika Anda terus mengirimkan 100 perubahan per detik, Anda dapat mempertahankan tingkat itu tanpa batas waktu. Jika Anda mencoba mempertahankan 500 perubahan per detik, bucket habis dan permintaan berikutnya dibatasi hingga terisi ulang.
Pantau pelambatan API
Anda dapat memantau penggunaan API Amazon Route 53 dengan memperhatikan tanggapan HTTP 400 di log aplikasi Anda, atau dengan melacak penggunaan API melalui CloudWatch metrik. Ketika Anda menerima kesalahan pembatasan, permintaan Anda melebihi salah satu batas yang dijelaskan di bagian sebelumnya.
Percobaan ulang dan mundur eksponensial
Saat Anda melakukan polling atau mencoba kembali permintaan API, sebaiknya gunakan algoritma backkoff eksponensial untuk menghitung interval tidur antar permintaan. Backoff eksponensial menggunakan penantian yang semakin lama di antara percobaan ulang untuk respons kesalahan berturut-turut. Terapkan interval penundaan maksimum dan jumlah percobaan ulang maksimum, dan pertimbangkan untuk menambahkan jitter (penundaan acak) untuk mencegah tabrakan berturut-turut. Untuk informasi selengkapnya, lihat Waktu habis, percobaan ulang, dan mundur dengan jitter
Setiap AWS SDK mengimplementasikan logika coba ulang otomatis, termasuk mode coba ulang adaptif yang menyesuaikan tingkat permintaan sisi klien sebagai respons terhadap pembatasan. Untuk beban kerja yang secara teratur mendekati batas ini, pertimbangkan untuk mengaktifkan percobaan ulang adaptif. Untuk informasi selengkapnya, lihat Per ilaku Coba Ulang di Panduan Refer AWS ensi SDK dan Alat.
Meminta kenaikan batas
Anda dapat meminta peningkatan tingkat permintaan API atau batas throughput perubahan melalui AWS Dukungan. Untuk meminta kenaikan:
-
Buka Pusat AWS Dukungan
. -
Buat kasus dan pilih Pen ingkatan batas layanan.
-
Untuk Jenis batas, pilih Rute 53.
-
Berikan penggunaan Anda saat ini dan batas yang Anda butuhkan.
Praktik terbaik untuk pelambatan API
-
Tingkat permintaan saldo terhadap ukuran batch: Jika Anda dibatasi oleh batas tarif permintaan, kirim lebih banyak perubahan per permintaan. Jika Anda dibatasi oleh batas throughput perubahan, kurangi tingkat perubahan total Anda. Baik batch yang sangat kecil maupun yang sangat besar tidak optimal dengan sendirinya.
-
Gunakan batching untuk atomisitas: Semua perubahan dalam satu
ChangeResourceRecordSetspermintaan diterapkan secara atom, sehingga mereka berhasil atau gagal bersama-sama. -
Sebarkan perubahan dari waktu ke waktu: Bagikan perubahan secara merata dalam hitungan detik alih-alih mengirimkan batch besar secara bersamaan.
-
Andalkan burst untuk lonjakan sesekali, bukan throughput yang berkelanjutan: Kapasitas burst mengakomodasi lonjakan lalu lintas yang sah; ini bukan batas operasi yang berkelanjutan.
-
Coba lagi dengan mundur eksponensial: Saat Anda menerima tanggapan HTTP 400, coba lagi setelah penundaan yang meningkat dengan setiap upaya (lihat). Percobaan ulang dan mundur eksponensial
-
Batas permintaan meningkat secara proaktif: Jika Anda mengantisipasi pertumbuhan beban kerja, minta peningkatan sebelum Anda mencapai batas (lihatMeminta kenaikan batas).
Untuk panduan Amazon Route 53 yang lebih luas, lihatPraktik terbaik untuk Amazon Route 53.