Meningkatkan skalabilitas, kinerja, dan ketersediaan aplikasi dengan menggunakan Amazon RDS Proxy - AWS Panduan Preskriptif

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

Meningkatkan skalabilitas, kinerja, dan ketersediaan aplikasi dengan menggunakan Amazon RDS Proxy

Dibuat oleh Anand Komandooru, Noorul Hasan, Venkat Nalajala, dan Varun Kumar, Amazon Web Services ()AWS

Oktober 2022

Panduan ini akan membahas kebutuhan akan pengumpulan koneksi database, tantangan yang terkait dengan penerapan solusi yang di-host sendiri, dan manfaat menggunakan Proxy Amazon Relational Database Service (Amazon RDS) dengan Amazon RDS for PostgreSQL dalam arsitektur aplikasi di Amazon Web Services ().AWS

Tantangan

PostgreSQL diimplementasikan dengan menggunakan model client/server. process-per-user Ketika koneksi baru diterima, proses utama memulai proses anak untuk menangani koneksi baru ini. Proses utama kemudian menunggu koneksi berikutnya, dan proses anak menangani semua aktivitas yang terkait dengan koneksi klien baru ini. Proses anak baru dimulai untuk setiap koneksi baru yang diterima oleh database.

Banyak aplikasi, termasuk yang dibangun di atas arsitektur tanpa server modern, dapat memiliki sejumlah besar koneksi terbuka ke server database. Mereka mungkin membuka dan menutup koneksi database pada tingkat tinggi, menghabiskan memori database dan sumber daya komputasi.

Aplikasi transaksional yang sering membuka dan menutup koneksi akan mengalami latensi koneksi yang lebih tinggi, sehingga transaksi per detik lebih rendah. Ini akan meningkatkan latensi aplikasi.

Failover terjadi ketika instance database primer menjadi tidak dapat diakses, dan instance lain mengambil alih sebagai primer baru. Ini mengganggu koneksi klien. Failover dapat direncanakan, ketika mereka disebabkan oleh tindakan administratif seperti upgrade bergulir, atau tidak direncanakan, ketika mereka terjadi karena kegagalan. Dalam kedua kasus tersebut, operator harus mengurangi waktu henti untuk meminimalkan gangguan klien.

Praktek umum

Untuk mengatasi tantangan skalabilitas dan kinerja aplikasi, kumpulan koneksi digunakan. Penggabungan koneksi secara signifikan mengurangi latensi koneksi dengan menggunakan kembali koneksi yang ada, dan memungkinkan throughput database yang lebih tinggi (transaksi per detik) di server. Sebuah kumpulan koneksi antrian atau membatasi koneksi aplikasi yang tidak dapat dilayani langsung dari kumpulan koneksi.

Tantangan tambahan muncul setelah menerapkan penyatuan koneksi ini. Operator harus mengelola sendiri infrastruktur dan perangkat lunak untuk mengoperasikan layanan penyatuan koneksi. Untuk menangani peristiwa failover, pengembang aplikasi harus mengelola kompleksitas koneksi untuk setiap aplikasi. Aplikasi harus mendeteksi kegagalan koneksi, menemukan primer baru, dan menghubungkannya kembali secepat mungkin.

Rekomendasi

Untuk mengurangi tantangan yang terkait dengan solusi pengumpulan koneksi yang dihosting sendiri, sambil memanfaatkan manfaatnya, sebaiknya evaluasi Amazon RDS Proxy untuk beban kerja Anda.

RDS Proxy adalah proxy database yang dikelola sepenuhnya dan sangat tersedia. RDS Proxy menggunakan penyatuan koneksi untuk membuat aplikasi lebih terukur, lebih tahan terhadap kegagalan database, dan lebih aman.