Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Bekerja dengan titik akhir Amazon RDS Proxy
Pelajari tentang titik akhir untuk RDS Proxy dan cara menggunakannya. Dengan titik akhir proksi, Anda dapat memanfaatkan kemampuan berikut:
-
Anda dapat menggunakan beberapa titik akhir dengan proksi untuk memantau dan memecahkan masalah koneksi dari aplikasi yang berbeda secara independen.
-
Anda dapat menggunakan titik akhir pembaca dengan klaster DB Aurora untuk meningkatkan skalabilitas baca dan ketersediaan tinggi untuk aplikasi Anda yang memiliki banyak kueri.
-
Anda dapat menggunakan VPC titik silang akhir untuk mengizinkan akses ke database di salah satu VPC sumber daya seperti EC2 instans Amazon di tempat lain. VPC
Topik
Ikhtisar titik akhir proksi
Bekerja dengan titik akhir RDS Proxy melibatkan jenis prosedur yang sama dengan cluster Aurora DB dan titik akhir instans titik pembaca. Jika Anda belum terbiasa dengan titik akhir Aurora, temukan informasi selengkapnya di Koneksi titik akhir Amazon Aurora.
Secara default, titik akhir yang Anda sambungkan saat Anda menggunakan RDS Proxy dengan cluster Aurora memiliki kemampuan baca/tulis. Akibatnya, titik akhir ini mengirimkan semua permintaan ke instans penulis klaster. Semua koneksi tersebut dihitung terhadap nilai max_connections
untuk instans penulis. Jika proksi Anda dikaitkan dengan klaster DB Aurora, Anda dapat membuat titik akhir baca/tulis atau titik akhir hanya-baca tambahan untuk proksi itu.
Anda dapat menggunakan titik akhir hanya baca dengan proksi Anda untuk kueri hanya baca. Anda dapat melakukannya seperti saat Anda menggunakan titik akhir pembaca untuk klaster yang disediakan Aurora. Tindakan ini membantu Anda untuk memanfaatkan skalabilitas baca klaster Aurora dengan satu atau beberapa instans DB pembaca. Anda dapat menjalankan lebih banyak kueri simultan dan membuat lebih banyak koneksi simultan dengan menggunakan titik akhir hanya-baca dan menambahkan lebih banyak instans DB pembaca untuk klaster Aurora Anda sesuai kebutuhan.
Tip
Saat Anda membuat proxy untuk cluster Aurora menggunakan AWS Management Console, Anda dapat meminta RDS Proxy secara otomatis membuat titik akhir pembaca. Untuk informasi tentang manfaat titik akhir pembaca, lihat Menggunakan titik akhir pembaca dengan klaster Aurora.
Untuk titik akhir proxy yang Anda buat, Anda juga dapat mengaitkan titik akhir dengan virtual private cloud (VPC) yang berbeda dari yang digunakan proxy itu sendiri. Dengan demikian, Anda dapat terhubung ke proxy dari yang berbedaVPC, misalnya yang VPC digunakan oleh aplikasi yang berbeda dalam organisasi Anda.
Untuk informasi tentang batas yang terkait dengan titik akhir proksi, lihat Batasan untuk titik akhir proksi.
Dalam log RDS Proxy, setiap entri diawali dengan nama titik akhir proxy terkait. Nama ini bisa berupa nama yang Anda tentukan untuk titik akhir yang ditentukan pengguna. Atau, bisa menjadi nama khusus default
untuk titik akhir default proxy yang melakukan permintaan baca/tulis.
Setiap titik akhir proxy memiliki kumpulan CloudWatch metriknya sendiri. Anda dapat memantau metrik untuk semua titik akhir proksi. Anda juga dapat memantau metrik untuk titik akhir tertentu, atau untuk semua titik akhir baca/tulis atau hanya-baca dari proksi. Untuk informasi selengkapnya, lihat Memantau metrik Proxy RDS dengan Amazon CloudWatch.
Titik akhir proksi menggunakan mekanisme autentikasi yang sama seperti proksi yang terkait. RDSProxy secara otomatis mengatur izin dan otorisasi untuk titik akhir yang ditentukan pengguna, konsisten dengan properti proxy terkait.
Untuk mempelajari cara kerja titik akhir proksi untuk klaster DB dalam Aurora global basis data, lihat Cara kerja titik akhir Proksi RDS dengan basis data global.
Batasan untuk titik akhir proksi
RDSEndpoint proxy memiliki batasan sebagai berikut:
-
Setiap proksi memiliki titik akhir default yang dapat dimodifikasi, tetapi tidak dapat dibuat atau dihapus.
-
Jumlah maksimum titik akhir yang ditentukan pengguna untuk proksi adalah 20. Dengan demikian, proksi dapat memiliki hingga 21 titik akhir: titik akhir default, ditambah 20 titik akhir yang Anda buat.
-
Saat Anda mengaitkan titik akhir tambahan dengan proxy, RDS Proxy secara otomatis menentukan instans DB mana di klaster Anda yang akan digunakan untuk setiap titik akhir. Anda tidak dapat memilih instans tertentu seperti yang Anda lakukan dengan titik akhir kustom Aurora.
Menggunakan titik akhir pembaca dengan klaster Aurora
Anda dapat membuat dan terhubung ke titik akhir hanya-baca yang disebut titik akhir pembaca saat Anda menggunakan Proxy RDS dengan cluster Aurora. Titik akhir pembaca ini membantu meningkatkan skalabilitas baca aplikasi padat kueri. Titik akhir pembaca juga membantu meningkatkan ketersediaan koneksi Anda jika instans DB pembaca di klaster Anda menjadi tidak tersedia.
catatan
Saat Anda menentukan bahwa titik akhir baru hanya baca, RDS Proxy mengharuskan klaster Aurora memiliki satu atau lebih instance DB pembaca. Dalam beberapa kasus, Anda mungkin mengubah target proxy ke cluster Aurora yang hanya berisi satu penulis. Jika Anda melakukannya, permintaan apa pun ke titik akhir pembaca akan gagal dengan kesalahan. Permintaan juga gagal jika target proxy adalah RDS instance, bukan cluster Aurora.
Jika klaster Aurora memiliki instance pembaca tetapi instance tersebut tidak tersedia, RDS Proxy menunggu untuk mengirim permintaan alih-alih segera mengembalikan kesalahan. Jika tidak ada instans pembaca yang tersedia dalam periode batas waktu peminjaman koneksi, permintaan gagal akan dengan kesalahan.
Cara titik akhir pembaca membantu ketersediaan aplikasi
Dalam beberapa kasus, satu atau beberapa instans pembaca dalam klaster Anda mungkin menjadi tidak tersedia. Jika demikian, koneksi yang menggunakan titik akhir pembaca proksi DB dapat pulih lebih cepat daripada koneksi yang menggunakan titik akhir pembaca Aurora. RDSProxy merutekan koneksi ke hanya instance pembaca yang tersedia di cluster. Tidak ada penundaan karena DNS caching ketika sebuah instance menjadi tidak tersedia.
Jika koneksi multipleks, RDS Proxy mengarahkan kueri berikutnya ke instans DB pembaca yang berbeda tanpa gangguan apa pun pada aplikasi Anda. Selama peralihan otomatis ke instance pembaca baru, RDS Proxy memeriksa lag replikasi instance pembaca lama dan baru. RDSProxy memastikan bahwa instance pembaca baru diperbarui dengan perubahan yang sama dengan instance pembaca sebelumnya. Dengan begitu, aplikasi Anda tidak pernah melihat data basi saat RDS Proxy beralih dari satu instans DB pembaca ke instans DB pembaca lainnya.
Jika koneksi disematkan, kueri berikutnya pada koneksi akan menampilkan kesalahan. Namun, aplikasi Anda dapat langsung terhubung kembali ke titik akhir yang sama. RDSProxy merutekan koneksi ke instans DB pembaca lain yang dalam available
status. Saat Anda menyambung kembali secara manual, RDS Proxy tidak memeriksa jeda replikasi antara instance pembaca lama dan baru.
Jika klaster Aurora Anda tidak memiliki instance pembaca yang tersedia, RDS Proxy memeriksa apakah kondisi ini bersifat sementara atau permanen. Perilaku dalam setiap kasusnya adalah sebagai berikut:
-
Misalkan klaster Anda memiliki satu atau beberapa instans DB pembaca, tetapi tidak satu pun berada dalam status
Available
. Sebagai contoh, semua instans pembaca mungkin di-boot ulang atau menghadapi masalah. Dalam hal ini, upaya untuk terhubung ke titik akhir pembaca menunggu instans pembaca menjadi tersedia. Jika tidak ada instans pembaca yang tersedia dalam periode batas waktu peminjaman koneksi, upaya koneksi akan gagal. Jika instans pembaca menjadi tersedia, upaya koneksi berhasil. -
Misalkan klaster Anda tidak memiliki instans DB pembaca. Dalam hal ini, RDS Proxy segera mengembalikan kesalahan jika Anda mencoba terhubung ke titik akhir pembaca. Untuk mengatasi masalah ini, tambahkan satu atau beberapa instans pembaca ke klaster Anda sebelum terhubung ke titik akhir pembaca.
Cara titik akhir pembaca membantu skalabilitas kueri
Titik akhir pembaca untuk proksi membantu skalabilitas kueri Aurora dengan cara berikut:
-
Saat Anda menambahkan instance pembaca ke cluster Aurora AndaRDS, Proxy dapat merutekan koneksi baru ke titik akhir pembaca mana pun ke instance pembaca yang berbeda. Dengan begitu, kueri yang dilakukan dengan menggunakan satu koneksi titik akhir pembaca tidak memperlambat kueri yang dilakukan menggunakan koneksi titik akhir pembaca lain. Kueri berjalan pada instans DB terpisah. Setiap instans DB memiliki sumber daya komputasinya sendiri, buffer cache, dan sebagainya.
-
Jika praktis, RDS Proxy menggunakan instans DB pembaca yang sama untuk semua masalah kueri menggunakan koneksi titik akhir pembaca tertentu. Dengan demikian, satu kumpulan kueri terkait pada tabel yang sama dapat memanfaatkan caching, optimasi rencana, dan sebagainya, pada instans DB tertentu.
-
Jika instans DB pembaca tidak tersedia, pengaruh pada aplikasi Anda bergantung pada apakah sesi di-multipleks atau disematkan. Jika sesi multipleks, RDS Proxy merutekan kueri berikutnya ke instans DB pembaca yang berbeda tanpa tindakan apa pun di pihak Anda. Jika sesi disematkan, aplikasi Anda mengalami kesalahan dan harus dihubungkan kembali. Anda dapat segera menyambung kembali ke titik akhir pembaca dan RDS Proxy merutekan koneksi ke instans DB pembaca yang tersedia. Untuk informasi selengkapnya tentang cara memultipleks dan menyematkan untuk sesi proksi, lihat Ikhtisar konsep RDS Proxy.
-
Semakin banyak instans DB pembaca yang Anda miliki dalam klaster, semakin banyak koneksi simultan yang dapat Anda buat menggunakan titik akhir pembaca. Misalnya, anggaplah bahwa klaster Anda memiliki empat instans DB pembaca, masing-masing dikonfigurasi untuk mendukung 200 koneksi simultan. Misalkan proksi Anda dikonfigurasi untuk menggunakan 50% dari koneksi maksimum. Di sini, jumlah maksimum koneksi yang dapat Anda buat melalui titik akhir pembaca di proksi ini adalah 100 (50% dari 200) untuk pembaca 1. Juga 100 koneksi untuk pembaca 2, dan seterusnya, dengan total 400. Jika Anda menggandakan jumlah instans DB pembaca klaster menjadi delapan, maka jumlah maksimum koneksi melalui titik akhir pembaca juga berlipat ganda, menjadi 800.
Contoh penggunaan titik akhir pembaca
Contoh Linux berikut menunjukkan bagaimana Anda dapat mengonfirmasi bahwa Anda terhubung ke SQL cluster Aurora My melalui titik akhir pembaca. Pengaturan konfigurasi innodb_read_only
diaktifkan. Upaya untuk melakukan operasi tulis seperti pernyataan CREATE DATABASE
gagal dengan kesalahan. Dan Anda dapat mengonfirmasi bahwa Anda terhubung ke instans DB pembaca dengan memeriksa nama instans DB menggunakan variabel aurora_server_id
.
Tip
Jangan hanya mengandalkan pemeriksaan nama instans DB untuk menentukan apakah koneksi itu baca/tulis atau hanya-baca. Ingat bahwa instans DB dalam klaster Aurora dapat mengubah peran antara penulis dan pembaca ketika failover terjadi.
$
mysql -h endpoint-demo-reader.endpoint.proxy-demo.us-east-1.rds.amazonaws.com -u admin -p...
mysql>
select @@innodb_read_only;+--------------------+ | @@innodb_read_only | +--------------------+ | 1 | +--------------------+
mysql>
create database shouldnt_work;ERROR 1290 (HY000): The MySQL server is running with the --read-only option so it cannot execute this statement
mysql>
select @@aurora_server_id;+---------------------------------------+ | @@aurora_server_id | +---------------------------------------+ | proxy-reader-endpoint-demo-instance-3 | +---------------------------------------+
Contoh berikut menunjukkan bagaimana koneksi Anda ke titik akhir pembaca proksi dapat tetap bekerja bahkan ketika instans DB pembaca dihapus. Dalam contoh ini, klaster Aurora memiliki dua instans pembaca, instance-5507
dan instance-7448
. Koneksi ke titik akhir pembaca mulai menggunakan salah satu instans pembaca. Dalam contoh, instans pembaca ini dihapus oleh perintah delete-db-instance
. RDSProxy beralih ke instance pembaca yang berbeda untuk kueri berikutnya.
$
mysql -h reader-demo.endpoint.proxy-demo.us-east-1.rds.amazonaws.com -umy_user
-p...
mysql>
select @@aurora_server_id;+--------------------+ | @@aurora_server_id | +--------------------+ | instance-5507 | +--------------------+
mysql>
select @@innodb_read_only;+--------------------+ | @@innodb_read_only | +--------------------+ | 1 | +--------------------+
mysql>
select count(*) from information_schema.tables;+----------+ | count(*) | +----------+ | 328 | +----------+
Ketika sesi mysql
masih berjalan, perintah berikut menghapus instans pembaca yang terhubung ke titik akhir pembaca.
aws rds delete-db-instance --db-instance-identifier instance-5507 --skip-final-snapshot
Kueri dalam sesi mysql
terus bekerja tanpa perlu menghubungkan kembali. RDSProxy secara otomatis beralih ke instans DB pembaca yang berbeda.
mysql>
select @@aurora_server_id;+--------------------+ | @@aurora_server_id | +--------------------+ | instance-7448 | +--------------------+
mysql>
select count(*) from information_schema.TABLES;+----------+ | count(*) | +----------+ | 328 | +----------+
Mengakses database Aurora di seluruh VPCs
Secara default, komponen tumpukan teknologi Aurora Anda semuanya berada di Amazon yang sama. VPC Misalnya, misalkan aplikasi yang berjalan pada EC2 instans Amazon terhubung ke instans Amazon DB cluster Aurora . Dalam hal ini, server aplikasi dan database keduanya harus berada dalam keadaan yang samaVPC.
Dengan RDS Proxy, Anda dapat mengatur akses ke instans Amazon DB cluster Aurora RDS DB . Misalnya, organisasi Anda mungkin memiliki beberapa aplikasi yang mengakses sumber daya basis data yang sama. Setiap aplikasi mungkin ada dalam miliknya sendiriVPC.
Untuk mengaktifkan VPC akses silang, Anda membuat titik akhir baru untuk proxy. Proxy itu sendiri berada sama VPC dengan instans DB Aurora DB cluster RDS DB. Namun, VPC titik lintas-akhir berada di yang lainVPC, bersama dengan sumber daya lain seperti instance. EC2 VPCTitik silang dikaitkan dengan subnet dan grup keamanan dari sumber daya yang VPC sama dengan sumber daya EC2 lainnya. Asosiasi ini memungkinkan Anda terhubung ke titik akhir dari aplikasi yang sebaliknya tidak dapat mengakses database karena VPC pembatasan.
Langkah-langkah berikut menjelaskan cara membuat dan mengakses VPC lintas-endpoint melalui RDS Proxy:
-
Buat duaVPCs, atau pilih dua VPCs yang sudah Anda gunakan untuk pekerjaan Aurora . Masing-masing VPC harus memiliki sumber daya jaringan terkait sendiri seperti gateway internet, tabel rute, subnet, dan kelompok keamanan. Jika Anda hanya memilikinyaVPC, Anda dapat berkonsultasi Memulai dengan Amazon Aurora untuk langkah-langkah untuk mengatur yang lain VPC agar berhasil menggunakan Aurora. Anda juga dapat memeriksa yang ada VPC di EC2 konsol Amazon untuk melihat jenis sumber daya untuk dihubungkan bersama.
-
Buat proxy DB yang terkait dengan yang ingin Anda sambungkan. Ikuti prosedur di Membuat proxy RDS.
-
Pada halaman Detail untuk proxy Anda di RDS konsol, di bawah bagian titik akhir Proxy, pilih Buat titik akhir. Ikuti prosedur di Membuat titik akhir proksi.
-
Pilih apakah akan membuat VPC titik silang membaca/menulis atau hanya baca.
-
Alih-alih menerima default yang VPC sama dengan instans DB Aurora DB cluster RDS , pilih yang berbeda. VPC Ini VPC harus berada di AWS Wilayah yang sama dengan VPC tempat proxy berada.
-
Sekarang alih-alih menerima default untuk subnet dan grup keamanan dari yang sama dengan instans DB Aurora DB cluster DB, buat pilihan baru. VPC Buat ini berdasarkan subnet dan grup keamanan dari VPC yang Anda pilih.
-
Anda tidak perlu mengubah pengaturan apa pun untuk rahasia Secrets Manager. Kredensi yang sama berfungsi untuk semua titik akhir untuk proxy Anda, terlepas dari mana VPC setiap titik akhir berada.
-
Tunggu sampai titik akhir baru untuk mencapai status Tersedia.
-
Buat catatan nama titik akhir lengkap. Ini adalah nilai yang berakhirkan
yang Anda berikan sebagai bagian dari string koneksi untuk aplikasi basis data Anda.Region_name
.rds.amazonaws.com -
Akses titik akhir baru dari sumber daya yang VPC sama dengan titik akhir. Cara sederhana untuk menguji proses ini adalah dengan membuat EC2 instance baru dalam hal iniVPC. Kemudian, masuk ke EC2 instance dan jalankan
psql
perintahmysql
or untuk terhubung dengan menggunakan nilai endpoint dalam string koneksi Anda.