COST09-BP02 Implementasikan buffer atau throttle untuk mengelola permintaan - AWS Well-Architected Framework

COST09-BP02 Implementasikan buffer atau throttle untuk mengelola permintaan

Buffering dan throttling memodifikasi permintaan di beban kerja Anda, meratakan fluktuasi. Implementasikan throttling ketika klien Anda mencoba ulang. Implementasikan buffering untuk menyimpan permintaan dan menunda pemrosesan ke lain waktu. Pastikan throttle dan buffer Anda didesain sehingga klien menerima respons dalam waktu yang diperlukan.

Tingkat risiko yang terjadi jika praktik terbaik ini tidak diterapkan: Sedang

Panduan implementasi

Throttling: Jika sumber permintaan memiliki kemampuan coba ulang, maka Anda dapat mengimplementasikan throttling. Throttling memberitahu sumber bahwa jika sumber tidak dapat melayani permintaan pada saat ini maka sumber harus mencoba lagi nanti. Sumber akan menunggu selama beberapa waktu kemudian mencoba ulang permintaan tersebut. Implementasi throttling memiliki manfaat membatasi jumlah maksimum sumber daya dan biaya beban kerja. Di AWS, Anda dapat menggunakan Amazon API Gateway untuk mengimplementasikan throttling. Lihat laporan resmi pilar Keandalan Well-Architected untuk detail selengkapnya tentang implementasi throttling.

Berbasis buffer: Serupa dengan throttling, buffer menunda pemrosesan permintaan, sehingga aplikasi yang dijalankan pada tingkat yang berlainan dapat berkomunikasi secara efektif. Pendekatan berbasis buffer menggunakan antrean untuk menerima pesan (unit kerja) dari produsen. Pesan dibaca oleh konsumen dan diproses, sehingga pesan dapat dijalankan dengan tingkat yang memenuhi persyaratan bisnis konsumen. Anda tidak perlu mengkhawatirkan produsen harus berurusan dengan masalah throttling, seperti daya tahan data dan tekanan balik (di mana produsen menjadi lebih lambat karena konsumen mereka beroperasi lebih lambat).

Di AWS, Anda dapat memilih dari beberapa layanan untuk mengimplementasikan pendekatan buffer. Amazon Simple Queue Service(Amazon SQS) merupakan layanan terkelola yang memberikan antrean yang memungkinkan satu konsumen membaca pesan secara individu. Amazon Kinesis memberikan aliran yang memungkinkan banyak konsumen membaca pesan yang sama.

Ketika mendesain dan mengonfigurasi dengan pendekatan berbasis buffer, pastikan Anda mendesain dan mengonfigurasi beban kerja untuk melayani permintaan dalam waktu yang diperlukan, dan Anda dapat menangani permintaan kerja duplikat.

Langkah implementasi

  • Analisis persyaratan klien: Analisis permintaan klien untuk menentukan apakah mereka dapat mencoba ulang. Untuk klien yang tidak dapat mencoba ulang, buffer harus diimplementasikan. Analisis permintaan secara keseluruhan, tingkat perubahan, dan waktu respons yang diperlukan untuk menentukan ukuran throttle atau buffer yang diperlukan.

  • Implementasi buffer atau throttle: Implementasikan buffer atau throttle di beban kerja. Antrean seperti Amazon Simple Queue Service (Amazon SQS) dapat memberikan buffer untuk komponen beban kerja Anda. Amazon API Gateway dapat memberikan throttling untuk komponen beban kerja Anda.

Sumber daya

Dokumen terkait: