Pertimbangan koneksi RDS Proxy - Amazon Aurora

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

Pertimbangan koneksi RDS Proxy

Mengonfigurasi pengaturan koneksi

Untuk menyesuaikan pengumpulan koneksi Proksi RDS, Anda dapat mengubah pengaturan berikut:

IdleClientTimeout

Anda dapat menentukan berapa lama koneksi klien bisa berada dalam status idle sebelum proksi menutupnya. Nilai default-nya adalah 1.800 detik (30 menit).

Koneksi klien dianggap idle jika aplikasi tidak mengirimkan permintaan baru dalam waktu yang ditentukan setelah permintaan sebelumnya selesai. Koneksi basis data yang mendasarinya akan tetap terbuka dan dikembalikan ke kumpulan koneksi. Oleh karena itu, koneksi dapat digunakan kembali untuk koneksi klien baru. Jika Anda ingin proksi secara proaktif menghapus koneksi yang sudah tidak terpakai, turunkan batas waktu koneksi klien yang idle. Jika beban kerja Anda sering membuat koneksi dengan proxy, maka naikkan batas waktu koneksi klien idle untuk menghemat biaya pembuatan koneksi.

Pengaturan ini diwakili oleh bidang batas waktu koneksi klien Idle di konsol RDS dan IdleClientTimeout pengaturan di AWS CLI dan API. Untuk mempelajari cara mengubah nilai kolom Batas waktu koneksi klien idle di konsol RDS, lihat AWS Management Console. Untuk mempelajari cara mengubah nilai IdleClientTimeout setelan, lihat perintah CLI modify-db-proxyatau operasi API Modify. DBProxy

MaxConnectionsPercent

Anda dapat membatasi jumlah koneksi yang dapat dibuat oleh Proksi RDS dengan basis data target. Anda menentukan batas dalam bentuk persentase koneksi maksimum yang tersedia untuk basis data Anda. Pengaturan ini diwakili oleh bidang koneksi maksimum Connection pool di konsol RDS dan MaxConnectionsPercent pengaturan di AWS CLI dan API.

Nilai MaxConnectionsPercent dinyatakan sebagai persentase dari pengaturan max_connections untuk klaster DB Aurora yang digunakan oleh grup target. Proksi tidak membuat semua koneksi ini di depan. Pengaturan ini memungkinkan proksi membuat koneksi ini karena beban kerja membutuhkannya.

Misalnya, untuk target basis data terdaftar dengan max_connections diatur ke 1000, dan MaxConnectionsPercent diatur ke 95, Proksi RDS menetapkan 950 koneksi sebagai batas atas koneksi bersamaan ke target basis data tersebut.

Efek samping umum beban kerja yang mencapai jumlah maksimum koneksi basis data yang diizinkan adalah peningkatan latensi kueri secara keseluruhan, disertai peningkatan metrik DatabaseConnectionsBorrowLatency. Anda dapat memantau koneksi basis data yang saat ini digunakan dan total koneksi basis data yang diizinkan dengan membandingkan metrik DatabaseConnections dan MaxDatabaseConnectionsAllowed.

Saat mengatur parameter ini, perhatikan praktik terbaik berikut:

  • Izinkan headroom koneksi yang cukup untuk perubahan pola beban kerja. Sebaiknya atur parameter ini setidaknya 30% di atas penggunaan maksimum yang dipantau baru-baru ini. Karena Proksi RDS mendistribusikan ulang kuota koneksi basis data di beberapa simpul, perubahan kapasitas internal mungkin memerlukan setidaknya 30% headroom untuk koneksi tambahan guna menghindari peningkatan latensi pinjaman.

  • Proksi RDS mencadangkan jumlah koneksi tertentu untuk pemantauan aktif guna mendukung failover cepat, perutean lalu lintas, dan operasi internal. Metrik MaxDatabaseConnectionsAllowed tidak mencakup koneksi yang dicadangkan ini. Metrik ini mewakili jumlah koneksi yang tersedia untuk melayani beban kerja, dan bisa lebih rendah dari nilai yang berasal dari pengaturan MaxConnectionsPercent.

    Nilai MaxConnectionsPercent minimum yang direkomendasikan adalah:

    • db.t3.small: 100

    • db.t3.medium: 55

    • db.t3.large: 35

    • db.r3.large atau lebih: 20

    Jika beberapa instans target didaftarkan di Proksi RDS seperti klaster Aurora dengan simpul pembaca, tetapkan nilai minimum berdasarkan instans terkecil yang terdaftar.

Untuk mempelajari cara mengubah nilai kolom Batas waktu maksimum kumpulan koneksi di konsol RDS, lihat AWS Management Console. Untuk mempelajari cara mengubah nilai MaxConnectionsPercent setelan, lihat perintah CLI modify-db-proxy-target-group atau operasi API Modify. DBProxy TargetGroup

penting

Jika klaster DB adalah bagian dari basis data global dengan penerusan tulis yang diaktifkan, kurangi nilai MaxConnectionsPercent proksi dengan kuota yang dialokasikan untuk penerusan tulis. Kuota penerusan tulis diatur dalam parameter klaster DB aurora_fwd_writer_max_connections_pct. Untuk informasi tentang penerusan tulis, lihat Menggunakan penerusan menulis dalam basis data global Amazon Aurora.

Untuk informasi tentang batas koneksi basis data, lihat Koneksi maksimum ke instans DB Aurora MySQL dan Koneksi maksimum ke instans DB Aurora PostgreSQL.

MaxIdleConnectionsPercent

Anda dapat mengontrol jumlah koneksi basis data idle yang dapat disimpan oleh Proksi RDS di kumpulan koneksi. Secara default, Proksi RDS menganggap koneksi basis data di kumpulannya menjadi idle jika tidak ada aktivitas pada koneksi selama lima menit.

MaxIdleConnectionsPercentNilai dinyatakan sebagai persentase dari max_connections pengaturan untuk kelompok target instans RDS DB. Nilai default-nya adalah 50 persen dari MaxConnectionsPercent, dan batas atasnya adalah nilai MaxConnectionsPercent. Misalnya, jikaMaxConnectionsPercent, adalah 80, maka nilai default MaxIdleConnectionsPercent adalah 40.

Dengan nilai tinggi, proksi membiarkan koneksi basis data idle dengan persentase yang tinggi tetap terbuka. Dengan nilai rendah, proksi menutup koneksi basis data idle dengan persentase yang tinggi. Jika beban kerja Anda tidak dapat diprediksi, pertimbangkan untuk mengatur nilai tinggi untuk MaxIdleConnectionsPercent. Jika Anda melakukannya, Proksi RDS dapat mengakomodasi lonjakan aktivitas tanpa membuka banyak koneksi basis data baru.

Pengaturan ini diwakili oleh MaxIdleConnectionsPercent pengaturan DBProxyTargetGroup di AWS CLI dan API. Untuk mempelajari cara mengubah nilai MaxIdleConnectionsPercent setelan, lihat perintah CLI modify-db-proxy-target-group atau operasi API Modify. DBProxy TargetGroup

Untuk informasi tentang batas koneksi basis data, lihat Koneksi maksimum ke instans DB Aurora MySQL dan Koneksi maksimum ke instans DB Aurora PostgreSQL.

ConnectionBorrowTimeout

Anda dapat memilih berapa lama Proksi RDS menunggu koneksi basis data dalam kumpulan koneksi menjadi tersedia untuk digunakan sebelum menampilkan eror batas waktu. Periode default-nya adalah 120 detik. Pengaturan ini berlaku saat jumlah koneksi mencapai titik maksimum, sehingga tidak ada koneksi yang tersedia dalam kumpulan koneksi. Pengaturan ini juga berlaku ketika tidak ada instans basis data yang tersedia untuk menangani permintaan, seperti saat operasi failover sedang berlangsung. Dengan pengaturan ini, Anda dapat mengatur periode tunggu terbaik untuk aplikasi Anda tanpa mengubah batas waktu kueri dalam kode aplikasi Anda.

Pengaturan ini diwakili oleh bidang batas waktu pinjam koneksi di konsol RDS atau ConnectionBorrowTimeout pengaturan DBProxyTargetGroup di API atau. AWS CLI Untuk mempelajari cara mengubah nilai kolom Batas waktu peminjaman koneksi di konsol RDS, lihat AWS Management Console. Untuk mempelajari cara mengubah nilai ConnectionBorrowTimeout setelan, lihat perintah CLI modify-db-proxy-target-group atau operasi API Modify. DBProxy TargetGroup

Koneksi klien dan basis data

Koneksi dari aplikasi Anda ke Proksi RDS dikenal sebagai koneksi klien. Koneksi dari proxy ke basis data adalah koneksi basis data. Saat menggunakan Proksi RDS, koneksi klien berakhir di proksi sementara koneksi basis data dikelola dalam Proksi RDS.

Pengumpulan koneksi sisi aplikasi dapat memberikan manfaat untuk mengurangi pembuatan koneksi berulang antara aplikasi Anda dan Proksi RDS.

Pertimbangkan aspek konfigurasi berikut sebelum menerapkan kumpulan koneksi sisi aplikasi:

  • Masa pakai maks koneksi klien: Proksi RDS menerapkan masa pakai maksimum koneksi klien selama 24 jam. Nilai ini tidak dapat dikonfigurasi. Konfigurasikan kumpulan Anda dengan masa pakai koneksi maksimum kurang dari 24 jam guna menghindari penurunan koneksi klien yang tidak terduga.

  • Batas waktu idle koneksi klien: Proksi RDS menerapkan waktu idle maksimum untuk koneksi klien. Konfigurasikan kumpulan Anda dengan batas waktu koneksi idle dengan nilai yang lebih rendah dari pengaturan batas waktu idle koneksi klien untuk Proksi RDS guna menghindari penurunan koneksi yang tidak terduga.

Jumlah maksimum koneksi klien yang dikonfigurasi dalam kumpulan koneksi sisi aplikasi Anda tidak harus dibatasi pada pengaturan max_connections untuk Proksi RDS.

Pengumpulan koneksi klien menghasilkan masa pakai koneksi klien yang lebih lama. Jika koneksi Anda mengalami penyematan, pengumpulan koneksi klien dapat mengurangi efisiensi multiplexing. Koneksi klien yang disematkan tetapi idle dalam kumpulan koneksi sisi aplikasi terus berpegang pada koneksi basis data dan mencegah koneksi basis data digunakan kembali oleh koneksi klien lainnya. Tinjau log proksi untuk memeriksa apakah koneksi Anda mengalami penyematan.

catatan

RDS Proxy menutup koneksi database beberapa saat setelah 24 jam ketika mereka tidak lagi digunakan. Proxy melakukan tindakan ini terlepas dari nilai pengaturan koneksi idle maksimum.