Menggunakan Amazon RDS Proxy - Layanan Basis Data Relasional Amazon

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

Menggunakan Amazon RDS Proxy

Dengan menggunakan Amazon RDS Proxy, Anda dapat mengizinkan aplikasi Anda untuk mengumpulkan dan berbagi koneksi database untuk meningkatkan kemampuan mereka dalam skala. RDSProxy membuat aplikasi lebih tahan terhadap kegagalan database dengan secara otomatis menghubungkan ke instans DB siaga sambil mempertahankan koneksi aplikasi. Dengan menggunakan RDS Proxy, Anda juga dapat menerapkan autentikasi AWS Identity and Access Management (IAM) untuk database, dan menyimpan kredensil dengan aman. AWS Secrets Manager

Menggunakan RDS Proxy, Anda dapat menangani lonjakan tak terduga dalam lalu lintas database. Jika tidak, lonjakan ini dapat menyebabkan masalah karena permintaan koneksi berlebihan atau koneksi baru yang dibuat sangatlah tinggi. RDSProxy membuat kumpulan koneksi database dan menggunakan kembali koneksi di pool ini. Pendekatan ini menghindari memori dan CPU overhead membuka koneksi database baru setiap kali. Untuk melindungi basis data dari permintaan berlebihan, Anda dapat mengontrol jumlah koneksi basis data yang dibuat.

RDSAntrian proxy atau membatasi koneksi aplikasi yang tidak dapat dilayani langsung dari kumpulan koneksi. Meskipun latensi dapat meningkat, aplikasi Anda dapat terus diskalakan tanpa kegagalan mendadak atau membanjiri basis data. Jika permintaan koneksi melebihi batas yang Anda tentukan, RDS Proxy menolak koneksi aplikasi (yaitu, itu melepaskan beban). Pada saat yang sama, ia mempertahankan kinerja yang dapat diprediksi untuk beban yang RDS dapat berfungsi dengan kapasitas yang tersedia.

Anda dapat mengurangi overhead untuk memproses kredensial dan membangun koneksi yang aman untuk setiap koneksi baru. RDSProxy dapat menangani beberapa pekerjaan itu atas nama database.

RDSProxy sepenuhnya kompatibel dengan versi mesin yang didukungnya. Anda dapat mengaktifkan RDS Proxy untuk sebagian besar aplikasi tanpa perubahan kode.

Wilayah dan ketersediaan versi

Ketersediaan dan dukungan fitur bervariasi di seluruh versi spesifik dari setiap mesin basis data, dan di seluruh Wilayah AWS. Untuk informasi selengkapnya tentang versi dan ketersediaan Wilayah Amazon RDS dengan RDS Proxy, lihatWilayah dan mesin DB yang Didukung untuk Amazon RDS Proxy.

Kuota dan batasan untuk Proxy RDS

Kuota dan batasan berikut berlaku untuk RDS Proxy:

  • Setiap Akun AWS ID dibatasi hingga 20 proxy. Jika aplikasi Anda memerlukan lebih banyak proxy, mintalah peningkatan melalui halaman Service Quotas di dalam. AWS Management Console Di halaman Service Quotas, pilih Amazon Relational Database Service (AmazonRDS) dan cari Proxy untuk meminta peningkatan kuota. AWS dapat secara otomatis meningkatkan kuota atau peninjauan permintaan Anda yang tertunda oleh AWS Support.

  • Setiap proksi dapat memiliki hingga 200 rahasia Secrets Manager terkait. Sehingga, setiap proksi dapat terhubung ke hingga 200 akun pengguna yang berbeda pada waktu tertentu.

  • Setiap proksi memiliki titik akhir default. Anda juga dapat menambahkan hingga 20 titik akhir proksi untuk setiap proksi. Anda dapat membuat, melihat, mengubah, dan menghapus titik akhir ini.

  • Untuk instans RDS DB dalam konfigurasi replikasi, Anda dapat mengaitkan proxy hanya dengan instans DB penulis, bukan replika baca.

  • RDSProxy Anda harus berada di cloud pribadi virtual (VPC) yang sama dengan database. Proksi tersebut tidak dapat diakses publik, meskipun basis datanya dapat diakses publik. Misalnya, jika membuat prototipe basis data di host lokal, Anda tidak dapat terhubung ke proksi kecuali Anda menyiapkan persyaratan jaringan yang diperlukan untuk mengizinkan koneksi ke proksi. Ini karena host lokal Anda berada di luar proxyVPC.

  • Anda tidak dapat menggunakan RDS Proxy dengan sewaan VPC yang disetel kededicated.

  • Jika Anda menggunakan RDS Proxy dengan instance RDS DB yang memiliki IAM otentikasi diaktifkan, periksa otentikasi pengguna. Pengguna yang terhubung melalui proksi harus melakukan autentikasi melalui kredensial masuk. Untuk detail tentang Secrets Manager dan IAM dukungan di RDS Proxy, lihat Menyiapkan kredensi database untuk Proxy AWS Secrets Manager RDS danMenyiapkan AWS Identity and Access Management (IAM) kebijakan untuk RDS Proxy.

  • Anda tidak dapat menggunakan RDS Proxy dengan kustom DNS saat menggunakan validasi SSL nama host.

  • Setiap proksi dapat dikaitkan dengan satu instans DB target. Namun, Anda dapat mengaitkan beberapa proksi dengan instans DB yang sama.

  • Pernyataan apa pun dengan teks berukuran lebih dari 16 KB menyebabkan proksi menyematkan sesi ke koneksi saat ini.

  • Wilayah tertentu memiliki batasan Zona Ketersediaan (AZ) untuk dipertimbangkan saat membuat proksi. Wilayah AS Timur (Virginia N.) tidak mendukung RDS Proxy di use1-az3 Availability Zone. Wilayah AS Barat (California Utara) tidak mendukung RDS Proxy di usw1-az2 Availability Zone. Saat memilih subnet sekaligus membuat proksi, pastikan Anda tidak memilih subnet di Zona Ketersediaan yang disebutkan di atas.

  • Saat ini, RDS Proxy tidak mendukung kunci konteks kondisi global apa pun.

    Untuk informasi selengkapnya tentang kunci konteks kondisi AWS global, lihat kunci konteks kondisi global di Panduan IAM Pengguna.

  • Anda tidak dapat menggunakan RDS Proxy dengan RDS Custom for SQL Server.

  • Untuk mencerminkan modifikasi grup parameter database apa pun ke proxy Anda, reboot instance diperlukan bahkan jika Anda memilih untuk segera menerapkan perubahan Anda. Untuk parameter tingkat cluster, diperlukan reboot seluruh cluster.

Untuk batasan tambahan untuk setiap mesin DB, lihat bagian berikut:

Batasan tambahan RDS untuk MariaDB

Batasan tambahan berikut berlaku untuk RDS Proxy dengan database RDS MariaDB:

  • Saat ini, semua proksi mendengarkan di port 3306 untuk MariaDB. Proksi ini masih terhubung ke basis data Anda menggunakan port yang sudah ditentukan dalam pengaturan basis data.

  • Anda tidak dapat menggunakan RDS Proxy dengan database MariaDB yang dikelola sendiri di instans Amazon. EC2

  • Anda tidak dapat menggunakan RDS Proxy dengan instance RDS for MariaDB DB yang memiliki parameter dalam grup parameter DB-nya yang disetel read_only ke. 1

  • RDSProxy tidak mendukung mode terkompresi MariaDB. Misalnya, Proksi RDS tidak mendukung kompresi yang digunakan oleh opsi --compress atau -C perintah mysql.

  • Beberapa SQL pernyataan dan fungsi dapat mengubah status koneksi tanpa menyebabkan penyematan. Untuk perilaku penyematan terbaru, lihat Menghindari menyematkan Proxy RDS.

  • RDSProxy tidak mendukung plugin MariaDBauth_ed25519.

  • RDSProxy tidak mendukung Transport Layer Security (TLS) versi 1.3 untuk database MariaDB.

  • Koneksi database yang memproses GET DIAGNOSTIC perintah mungkin mengembalikan informasi yang tidak akurat ketika RDS Proxy menggunakan kembali koneksi database yang sama untuk menjalankan kueri lain. Hal ini dapat terjadi ketika RDS Proxy multipleks koneksi database. Untuk informasi selengkapnya, lihat Ikhtisar konsep RDS Proxy.

penting

Untuk proksi yang terkait dengan basis data MariaDB, jangan atur parameter konfigurasi sql_auto_is_null ke true atau nilai bukan nol dalam kueri inisialisasi. Tindakan ini bisa menyebabkan perilaku aplikasi yang salah.

Batasan tambahan RDS untuk Microsoft SQL Server

Batasan tambahan berikut berlaku untuk database RDS Proxy with RDS for Microsoft SQL Server:

  • Jumlah rahasia Secrets Manager yang perlu dibuat untuk proksi bergantung pada kolasi yang digunakan instans DB Anda. Sebagai contoh, misalkan instans DB Anda menggunakan kolasi peka huruf besar/kecil. Jika aplikasi Anda menerima “Admin” dan “admin,” berarti proksi Anda memerlukan dua rahasia terpisah. Untuk informasi selengkapnya tentang pemeriksaan di SQL Server, lihat dokumentasi Microsoft SQL Server.

  • RDSProxy tidak mendukung koneksi yang menggunakan Active Directory.

  • Anda tidak dapat menggunakan IAM otentikasi dengan klien yang tidak mendukung properti token. Untuk informasi selengkapnya, lihat Pertimbangan untuk terhubung ke proksi dengan Microsoft SQL Server.

  • Hasil dari @@IDENTITY, @@ROWCOUNT, dan SCOPE_IDENTITY tidak selalu akurat. Sebagai solusi, ambil nilainya dalam pernyataan sesi yang sama untuk memastikan bahwa hasilnya menampilkan informasi yang benar.

  • Jika koneksi menggunakan beberapa set hasil aktif (MARS), RDS Proxy tidak menjalankan kueri inisialisasi. Untuk selengkapnyaMARS, lihat dokumentasi Microsoft SQL Server.

  • Saat ini, RDS Proxy tidak mendukung RDS instans SQL Server DB yang berjalan pada versi utama SQLServer 2022.

  • RDSProxy tidak mendukung RDS instans SQL Server DB yang berjalan pada versi utama SQLServer 2014.

  • RDSProxy tidak mendukung aplikasi klien yang tidak dapat menangani beberapa pesan respons dalam satu TLS catatan.

Keterbatasan tambahan RDS untuk My SQL

Batasan tambahan berikut berlaku untuk RDS Proxy with RDS for My SQL database:

  • RDSProxy tidak mendukung plugin Saya SQL sha256_password dan caching_sha2_password otentikasi. Plugin ini menerapkan SHA -256 hashing untuk kata sandi akun pengguna.

  • Saat ini, semua proxy mendengarkan port 3306 untuk My. SQL Proksi ini masih terhubung ke basis data Anda menggunakan port yang sudah ditentukan dalam pengaturan basis data.

  • Anda tidak dapat menggunakan RDS Proxy dengan SQL database Saya yang dikelola sendiri dalam EC2 instance.

  • Anda tidak dapat menggunakan RDS Proxy dengan instans RDS for My SQL DB yang memiliki read_only parameter dalam grup parameter DB-nya yang disetel ke1.

  • RDSProxy tidak mendukung mode SQL terkompresi Saya. Misalnya, Proksi RDS tidak mendukung kompresi yang digunakan oleh opsi --compress atau -C perintah mysql.

  • Koneksi database yang memproses GET DIAGNOSTIC perintah mungkin mengembalikan informasi yang tidak akurat ketika RDS Proxy menggunakan kembali koneksi database yang sama untuk menjalankan kueri lain. Hal ini dapat terjadi ketika RDS Proxy multipleks koneksi database.

  • Beberapa SQL pernyataan dan fungsi seperti SET LOCAL dapat mengubah status koneksi tanpa menyebabkan penyematan. Untuk perilaku penyematan terbaru, lihat Menghindari menyematkan Proxy RDS.

  • Menggunakan ROW_COUNT() fungsi dalam kueri multi-pernyataan tidak didukung.

  • RDSProxy tidak mendukung aplikasi klien yang tidak dapat menangani beberapa pesan respons dalam satu TLS catatan.

penting

Untuk proxy yang terkait dengan SQL database Saya, jangan setel parameter konfigurasi sql_auto_is_null ke true atau nilai bukan nol dalam kueri inisialisasi. Tindakan ini bisa menyebabkan perilaku aplikasi yang salah.

Batasan tambahan RDS untuk Postgre SQL

Batasan tambahan berikut berlaku untuk RDS Proxy dengan database RDS PostgreSQL:

  • RDSProxy tidak mendukung filter penyematan sesi untuk SQL Postgre.

  • Saat ini, semua proxy mendengarkan port 5432 untuk Postgre. SQL

  • Untuk PostgreSQL, RDS Proxy saat ini tidak mendukung pembatalan kueri dari klien dengan mengeluarkan file. CancelRequest Misalnya, hal ini bisa terjadi ketika Anda membatalkan kueri yang berjalan lama dalam sesi psql interaktif dengan menggunakan Ctrl+C.

  • Hasil dari SQL fungsi Postgre lastval tidak selalu akurat. Sebagai solusi, gunakan INSERTpernyataan dengan klausa. RETURNING

  • RDSProxy saat ini tidak mendukung mode replikasi streaming.

  • Dengan RDS Postgre SQL 16, modifikasi scram_iterations nilai secara eksklusif memengaruhi proses otentikasi antara proxy dan database. Khususnya, jika Anda ClientPasswordAuthType mengonfigurasinyascram-sha-256, penyesuaian apa pun yang dilakukan pada scram_iterations nilai tidak memengaruhi otentikasi client-to-proxy kata sandi. Sebaliknya, nilai iterasi untuk otentikasi client-to-proxy kata sandi ditetapkan pada 4096.

penting

Untuk proxy yang ada dengan SQL database Postgre, jika Anda memodifikasi otentikasi database untuk digunakan SCRAM saja, proxy menjadi tidak tersedia hingga 60 detik. Untuk menghindari masalah ini, lakukan salah satu tindakan berikut:

  • Pastikan basis data mengizinkan autentikasi SCRAM dan MD5.

  • Untuk menggunakan autentikasi SCRAM saja, buat proksi baru, migrasi lalu lintas aplikasi ke proksi baru, lalu hapus proksi yang sebelumnya terkait dengan basis data.