RDSPertimbangan koneksi proxy - Amazon Aurora

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

RDSPertimbangan koneksi proxy

Mengonfigurasi pengaturan koneksi

Untuk menyesuaikan penyatuan koneksi RDS Proxy, 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 terhubung dengan proksi, maka naikkan batas waktu koneksi klien yang idle untuk menghemat biaya pembangunan koneksi.

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

MaxConnectionsPercent

Anda dapat membatasi jumlah koneksi yang dapat dibuat oleh RDS Proxy 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 RDS konsol dan MaxConnectionsPercent pengaturan di AWS CLI danAPI.

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

Misalnya, untuk target database terdaftar dengan max_connections set ke 1000, dan MaxConnectionsPercent disetel ke 95, RDS Proxy menetapkan 950 koneksi sebagai batas atas untuk koneksi bersamaan ke target database 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 RDS Proxy mendistribusikan ulang kuota koneksi database di beberapa node, perubahan kapasitas internal mungkin memerlukan setidaknya 30% ruang kepala untuk koneksi tambahan untuk menghindari peningkatan latensi pinjaman.

  • RDSProxy mencadangkan sejumlah koneksi untuk pemantauan aktif untuk 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 instance target terdaftar dengan RDS Proxy seperti cluster Aurora dengan node pembaca, tetapkan nilai minimum berdasarkan instance terdaftar terkecil.

Untuk mempelajari cara mengubah nilai bidang koneksi maksimum Connection pool di RDS konsol, lihatAWS Management Console. Untuk mempelajari cara mengubah nilai MaxConnectionsPercent pengaturan, lihat CLI perintah modify-db-proxy-target-group atau API operasi M odifyDBProxy 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 database, lihat Koneksi maksimum ke instans Aurora My SQL DB dan Koneksi maksimum ke instans Aurora Postgre DB. SQL

MaxIdleConnectionsPercent

Anda dapat mengontrol jumlah koneksi database idle yang dapat disimpan RDS Proxy di kumpulan koneksi. Secara default, RDS Proxy menganggap koneksi database di pool menjadi idle ketika 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. Melakukannya berarti RDS Proxy dapat mengakomodasi lonjakan aktivitas tanpa membuka banyak koneksi database baru.

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

Untuk informasi tentang batas koneksi database, lihat Koneksi maksimum ke instans Aurora My SQL DB dan Koneksi maksimum ke instans Aurora Postgre DB. SQL

ConnectionBorrowTimeout

Anda dapat memilih berapa lama RDS Proxy menunggu koneksi database di kumpulan koneksi tersedia untuk digunakan sebelum mengembalikan kesalahan 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 RDS konsol atau ConnectionBorrowTimeout pengaturan DBProxyTargetGroup di AWS CLI atau. API Untuk mempelajari cara mengubah nilai bidang batas waktu pinjam koneksi di RDS konsol, lihat. AWS Management Console Untuk mempelajari cara mengubah nilai ConnectionBorrowTimeout pengaturan, lihat CLI perintah modify-db-proxy-target-group atau API operasi M odifyDBProxy TargetGroup.

Koneksi klien dan basis data

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

Penggabungan koneksi sisi aplikasi dapat memberikan manfaat mengurangi pembentukan koneksi berulang antara aplikasi Anda dan Proxy. RDS

Pertimbangkan aspek konfigurasi berikut sebelum menerapkan kumpulan koneksi sisi aplikasi:

  • Koneksi klien umur maksimal: RDS Proxy memberlakukan masa pakai maksimum koneksi klien 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: RDS Proxy memberlakukan waktu idle maksimum untuk koneksi klien. Konfigurasikan kumpulan Anda dengan batas waktu koneksi idle dengan nilai lebih rendah dari pengaturan batas waktu idle koneksi klien Anda untuk RDS Proxy untuk 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 Proxy. 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

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