Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Bekerja dengan titik akhir Proksi Amazon RDS
Endpoint RDS Proxy menyediakan cara yang fleksibel dan efisien untuk mengelola koneksi database, yang meningkatkan skalabilitas, ketersediaan, dan keamanan. Dengan titik akhir proxy, Anda dapat:
-
Sederhanakan pemantauan dan pemecahan masalah — Gunakan beberapa titik akhir untuk melacak dan mengelola koneksi dari berbagai aplikasi secara independen.
-
Tingkatkan skalabilitas baca — Manfaatkan titik akhir pembaca dengan cluster Aurora DB untuk mendistribusikan lalu lintas baca secara efisien, yang mengoptimalkan kinerja untuk beban kerja yang berat kueri.
-
Aktifkan akses lintas-VPC — Hubungkan database di seluruh VPCs menggunakan titik akhir lintas-VPC, yang memungkinkan sumber daya seperti instans Amazon EC2 di satu VPC mengakses database di VPC lainnya.
Topik
Ikhtisar titik akhir proksi
Bekerja dengan titik akhir Proksi RDS melibatkan jenis prosedur yang sama seperti dengan klaster DB Aurora dan titik akhir pembaca. Jika Anda belum terbiasa dengan titik akhir Aurora, temukan informasi selengkapnya di Koneksi titik akhir Amazon Aurora.
Saat Anda menggunakan Proxy RDS dengan cluster Aurora, titik akhir default mendukung operasi baca dan tulis. Ini berarti ia merutekan semua permintaan ke instance penulis cluster, berkontribusi pada max_connections
batasnya. Untuk mendistribusikan lalu lintas dengan lebih baik, Anda dapat membuat endpoint baca/tulis atau read-only tambahan untuk proxy Anda, yang memungkinkan manajemen beban kerja yang lebih efisien dan peningkatan skalabilitas.
Gunakan endpoint read-only dengan proxy Anda untuk menangani kueri baca, seperti yang Anda lakukan dengan titik akhir pembaca untuk klaster yang disediakan Aurora. Pendekatan ini memaksimalkan skalabilitas baca Aurora dengan mendistribusikan kueri di satu atau lebih instance DB pembaca. Dengan menggunakan endpoint read-only dan menambahkan lebih banyak instance pembaca sesuai kebutuhan, Anda dapat meningkatkan jumlah kueri dan koneksi simultan yang dapat ditangani klaster Anda.
Tip
Saat Anda membuat proxy untuk cluster Aurora menggunakan AWS Management Console, Anda dapat meminta Proxy RDS secara otomatis membuat titik akhir pembaca. Untuk informasi tentang manfaat titik akhir pembaca, lihat Menggunakan titik akhir pembaca dengan klaster Aurora.
Saat Anda membuat titik akhir proxy, Anda dapat mengaitkannya dengan virtual private cloud (VPC) yang berbeda dari VPC proxy. Ini memungkinkan Anda untuk terhubung ke proxy dari VPC lain, seperti yang digunakan oleh aplikasi yang berbeda dalam organisasi Anda.
Untuk informasi tentang batas yang terkait dengan titik akhir proksi, lihat Batasan untuk titik akhir proksi.
RDS Proxy log awalan setiap entri dengan nama endpoint proxy terkait. Ini bisa berupa nama yang Anda tentukan untuk titik akhir yang ditentukan pengguna, atau nama khusus default
untuk titik akhir baca/tulis default proxy.
Setiap titik akhir proxy memiliki kumpulan CloudWatch metriknya sendiri. Pantau metrik untuk semua titik akhir proxy, titik akhir tertentu, atau semua titik akhir baca/tulis atau baca-saja dari proxy. Untuk informasi selengkapnya, lihat Memantau metrik Proxy RDS dengan Amazon CloudWatch.
Titik akhir proksi menggunakan mekanisme autentikasi yang sama seperti proksi yang terkait. Proksi RDS secara otomatis menyiapkan izin dan otorisasi untuk titik akhir yang ditentukan pengguna, yang konsisten dengan properti proksi 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
Titik akhir Proksi RDS memiliki batasan berikut:
-
Titik akhir default proxy RDS tidak dapat dimodifikasi.
-
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.
-
Jika Anda mengaitkan titik akhir tambahan dengan proksi, Proksi RDS secara otomatis menentukan instans DB dalam klaster Anda yang digunakan untuk setiap titik akhir. Anda tidak dapat memilih instans tertentu seperti yang Anda lakukan dengan titik akhir kustom Aurora.
Saat Anda membuat proxy, RDS secara otomatis membuat titik akhir VPC untuk komunikasi yang aman antara aplikasi dan database. Titik akhir VPC terlihat dan dapat diakses dari Konsol VPC Amazon.
Menambahkan titik akhir proxy baru menyediakan titik akhir AWS PrivateLink antarmuka. Jika Anda menambahkan satu atau beberapa titik akhir ke proxy Anda, Anda akan dikenakan biaya tambahan. Untuk informasi selengkapnya, lihat Harga Proxy RDS
Menggunakan titik akhir pembaca dengan klaster Aurora
Anda dapat membuat dan menyambung ke titik akhir hanya-baca yang disebut titik akhir pembaca jika Anda menggunakan Proksi RDS dengan klaster 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
Jika Anda menentukan bahwa titik akhir yang baru adalah titik akhir hanya-baca, Proksi RDS mengharuskan klaster Aurora memiliki satu atau beberapa instans 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 proksi adalah instans RDS, bukan klaster Aurora.
Jika klaster Aurora memiliki instans pembaca, tetapi instans tersebut tidak tersedia, Proksi RDS akan menunggu untuk mengirim permintaan, bukan serta-merta menampilkan 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. Proksi RDS hanya merutekan koneksi ke instans pembaca yang tersedia dalam klaster. Tidak ada penundaan dikarenakan caching DNS saat instans menjadi tidak tersedia.
Jika koneksi di-multipleks, Proksi RDS mengarahkan kueri berikutnya ke instans DB pembaca yang berbeda tanpa mengganggu aplikasi. Selama switchover otomatis ke instans pembaca baru, Proksi RDS memeriksa keterlambatan replikasi instans pembaca lama dan baru. Proksi RDS memastikan bahwa instans pembaca baru diperbarui dengan perubahan yang sama seperti instans pembaca sebelumnya. Dengan begitu, aplikasi Anda tidak pernah melihat data usang ketika Proksi RDS 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. Proksi RDS merutekan koneksi ke instans DB pembaca yang berbeda yang ada dalam status available
. Ketika Anda terhubung kembali secara manual, Proksi RDS tidak memeriksa keterlambatan replikasi antara instans pembaca lama dan baru.
Jika klaster Aurora Anda tidak memiliki instans pembaca yang tersedia, Proksi RDS akan memeriksa apakah kondisi ini 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, Proksi RDS segera menampilkan kesalahan jika Anda mencoba untuk 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 instans pembaca ke klaster Aurora, Proksi RDS dapat merutekan koneksi baru ke setiap titik akhir pembaca ke instans 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, Proksi RDS menggunakan instans DB pembaca yang sama untuk semua masalah kueri yang 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 di-multipleks, Proksi RDS merutekan setiap kueri berikutnya untuk instans DB pembaca yang berbeda tanpa campur tangan Anda. Jika sesi disematkan, aplikasi Anda mengalami kesalahan dan harus dihubungkan kembali. Anda dapat segera terhubung kembali ke titik akhir pembaca dan Proksi RDS 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 cara mengonfirmasi bahwa Anda terhubung ke klaster Aurora MySQL 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
. Proksi RDS beralih ke instans 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. Proksi RDS beralih otomatis 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 RDS di seluruh VPCs
Secara default, semua komponen tumpukan teknologi Aurora Anda berada dalam Amazon VPC yang sama. Misalnya, misalkan aplikasi yang berjalan pada EC2 instans Amazon terhubung ke instans DB Aurora DB Amazon DB. Dalam hal ini, server aplikasi dan basis data keduanya harus berada dalam VPC yang sama.
Dengan RDS Proxy, Anda dapat mengatur akses ke instans dalam satu VPC dari sumber daya di VPC lain, seperti instance. EC2 Misalnya, organisasi Anda mungkin memiliki beberapa aplikasi yang mengakses sumber daya basis data yang sama. Setiap aplikasi mungkin berada dalam VPC-nya sendiri.
Untuk mengaktifkan akses lintas-VPC, Anda membuat titik akhir baru untuk proksi tersebut. Proksi itu sendiri berada di VPC yang sama dengan klaster DB Aurora. Namun, titik akhir lintas-VPC berada di VPC lain, bersama dengan sumber daya lain seperti instance. EC2 Titik akhir lintas-VPC dikaitkan dengan subnet dan grup keamanan dari VPC yang sama dengan sumber daya dan sumber daya lainnya. EC2 Pengaitan ini memungkinkan Anda terhubung ke titik akhir dari aplikasi yang jika sebaliknya tidak dapat mengakses basis data dikarenakan pembatasan VPC.
Langkah-langkah berikut menjelaskan cara membuat dan mengakses titik akhir lintas-VPC melalui Proksi RDS:
-
Buat dua VPCs, atau pilih dua VPCs yang sudah Anda gunakan untuk pekerjaan Aurora . Setiap VPC harus memiliki sumber daya jaringan yang terkaitnya sendiri seperti gateway internet, tabel rute, subnet, dan grup keamanan. Jika Anda hanya memiliki satu VPC, Anda dapat melihat Memulai dengan Amazon Aurora untuk mengetahui langkah-langkah penyiapan VPC lain agar berhasil menggunakan Aurora. Anda juga dapat memeriksa VPC yang ada di EC2 konsol Amazon untuk melihat jenis sumber daya untuk dihubungkan bersama.
-
Buat proksi DB yang terkait dengan klaster DB Aurora yang ingin Anda hubungkan. Ikuti prosedur di Membuat proxy untuk .
-
Pada halaman Detail untuk proksi Anda di konsol RDS, di bagian Titik akhir proksi, pilih Buat titik akhir. Ikuti prosedur di Membuat titik akhir proksi.
-
Pilih apakah lintas-VPC endpoint akan bersifat baca/tulis atau hanya-baca.
-
Alih-alih menerima pengaturan default VPC yang sama dengan klaster DB Aurora, pilih VPC yang berbeda. VPC ini harus berada di AWS Wilayah yang sama dengan VPC tempat proxy berada.
-
Sekarang, alih-alih menerima pengaturan default untuk subnet dan grup keamanan dari VPC yang sama dengan klaster DB Aurora, buatlah pilihan baru. Buat pilihan ini berdasarkan subnet dan grup keamanan dari VPC yang Anda pilih.
-
Anda tidak perlu mengubah pengaturan apa pun untuk rahasia Secrets Manager. Kredensial yang sama dapat digunakan untuk semua titik akhir proksi Anda, terlepas dari VPC tempat 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 di VPC yang sama dengan titik akhir. Cara sederhana untuk menguji proses ini adalah dengan membuat EC2 instance baru di VPC ini. Kemudian, masuk ke EC2 instance dan jalankan
psql
perintahmysql
or untuk terhubung dengan menggunakan nilai endpoint dalam string koneksi Anda.