

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

# Proksi Amazon RDS Aurora
<a name="rds-proxy"></a>

Dengan menggunakan Proksi Amazon RDS, Anda dapat mengizinkan berbagai aplikasi untuk berkumpul dan berbagi koneksi basis data untuk meningkatkan kemampuan penskalaannya. Proksi RDS membuat aplikasi lebih tangguh terhadap kegagalan basis data dengan secara otomatis menghubungkan ke sebuah instans DB siaga sekaligus menjaga koneksi aplikasi. Dengan menggunakan RDS Proxy, Anda dapat menerapkan autentikasi AWS Identity and Access Management (IAM) untuk klien yang terhubung ke proxy, dan proxy dapat terhubung ke database menggunakan otentikasi database IAM atau kredensyal yang disimpan di dalamnya. AWS Secrets Manager

![\[Gambaran umum tentang bagaimana aplikasi terhubung ke RDS Proxy\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/Proxy-Overview.png)


 Dengan Proksi RDS, Anda dapat menangani lonjakan yang tidak dapat diprediksi dalam lalu lintas basis data. Jika tidak, lonjakan ini dapat menyebabkan masalah karena permintaan koneksi berlebihan atau koneksi baru yang dibuat sangatlah tinggi. Proksi RDS membangun kumpulan koneksi basis data dan menggunakan ulang koneksi dalam kumpulan ini. Pendekatan ini menghindari overhead memori dan CPU dari membuka koneksi basis data baru. Untuk melindungi basis data dari permintaan berlebihan, Anda dapat mengontrol jumlah koneksi basis data yang dibuat. 

 Proksi RDS mengantrekan atau membatasi koneksi aplikasi yang tidak dapat dilayani segera 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, Proksi RDS akan menolak koneksi aplikasi (yakni menumpahkan beban). Selain itu, Proksi RDS akan mempertahankan performa yang dapat diprediksi untuk beban yang dapat dilayani RDS dengan kapasitas yang tersedia. 

![\[Tampilan rinci tentang bagaimana aplikasi terhubung ke RDS Proxy dan jenis koneksi yang terlibat.\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/Proxy-detail.png)


 Anda dapat mengurangi overhead untuk memproses kredensial dan membangun koneksi yang aman untuk setiap koneksi baru. Proksi RDS dapat menangani beberapa dari pekerjaan itu untuk mewakili basis data. 

 Proksi RDS sepenuhnya kompatibel dengan versi mesin yang didukungnya. Anda dapat mengaktifkan Proksi RDS pada sebagian besar aplikasi tanpa perubahan kode. 

**Topics**
+ [

## Ketersediaan wilayah dan versi
](#rds-proxy.RegionVersionAvailability)
+ [

## Kuota dan Pembatasan untuk Proksi RDS
](#rds-proxy.limitations)
+ [

# Merencanakan lokasi penggunaan Proksi RDS
](rds-proxy-planning.md)
+ [

# Konsep dan terminologi Proksi RDS
](rds-proxy.howitworks.md)
+ [

# Memulai dengan RDS Proxy
](rds-proxy-setup.md)
+ [

# Mengelola Proksi RDS
](rds-proxy-managing.md)
+ [

# Bekerja dengan titik akhir Proksi Amazon RDS
](rds-proxy-endpoints.md)
+ [

# Memantau metrik Proxy RDS dengan Amazon CloudWatch
](rds-proxy.monitoring.md)
+ [

# Bekerja dengan acara RDS Proxy
](rds-proxy.events.md)
+ [

# Pemecahan masalah untuk Proksi RDS
](rds-proxy.troubleshooting.md)
+ [

# Penggunaan Proksi RDS dengan AWS CloudFormation
](rds-proxy-cfn.md)

## Ketersediaan wilayah dan versi
<a name="rds-proxy.RegionVersionAvailability"></a>

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 Proksi RDS, lihat [Wilayah dan mesin DB yang Didukung untuk Amazon RDS Proxy](Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSProxy.md).

## Kuota dan Pembatasan untuk Proksi RDS
<a name="rds-proxy.limitations"></a>

 Kuota dan batasan berikut berlaku untuk Proksi RDS: 
+  Setiap Akun AWS ID dibatasi hingga 20 proxy. Jika aplikasi Anda memerlukan lebih banyak proxy, mintalah peningkatan melalui halaman **Service Quotas** di dalam. Konsol Manajemen AWS Di halaman **Service Quotas**, pilih **Amazon Relational Database Service (Amazon RDS)** dan cari **Proxy** untuk meminta peningkatan kuota. AWS dapat secara otomatis meningkatkan kuota atau peninjauan permintaan Anda yang tertunda oleh Dukungan.
+ Setiap proxy dapat memiliki hingga 200 rahasia Secrets Manager terkait, sehingga membatasi koneksi hingga 200 akun pengguna yang berbeda saat menggunakan rahasia. 
+  Setiap proxy memiliki titik akhir default yang disediakan hanya di dua Availability Zone yang dipilih dari subnet yang dikonfigurasi proxy. Jika subnet di lebih dari dua AZs dikonfigurasi, dua akan dipilih. 
+  Anda dapat menambahkan hingga 20 titik akhir proxy tambahan untuk setiap proxy. Titik akhir tambahan ini disediakan di semua Availability Zone yang ditentukan selama pembuatannya. Anda dapat membuat, melihat, mengubah, dan menghapus titik akhir ini. 
+ Untuk instans DB RDS dalam konfigurasi replikasi, Anda dapat mengaitkan proksi dengan instans DB penulis saja, bukan dengan replika baca.
+ Proksi RDS Anda harus berada dalam cloud privat virtual (VPC) yang sama seperti basis data. 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 VPC proksi. 
+  Anda tidak dapat menggunakan Proksi RDS dengan VPC yang penghuniannya diatur ke `dedicated`. 
+  Anda tidak dapat menggunakan RDS Proxy di VPC yang memiliki kontrol `Enforce Mode` enkripsi dengan diaktifkan. 
+ Untuk jenis jaringan IPv6 endpoint, konfigurasikan VPC dan subnet Anda hanya untuk mendukung. IPv6 Untuk keduanya IPv4 dan jenis jaringan koneksi IPv6 target, konfigurasikan VPC dan subnet Anda untuk mendukung mode dual-stack. 
+ Jika Anda menggunakan Proxy RDS dengan yang mengaktifkan autentikasi IAM, proxy dapat terhubung ke database menggunakan autentikasi IAM atau kredensyal yang disimpan di Secrets Manager. Klien yang terhubung ke proxy harus mengautentikasi menggunakan kredensyal IAM. Untuk petunjuk konfigurasi terperinci, lihat [Menyiapkan kredensil database untuk RDS Proxy](rds-proxy-secrets-arns.md) dan [Mengkonfigurasi otentikasi IAM untuk RDS Proxy](rds-proxy-iam-setup.md)
+  Anda tidak dapat menggunakan Proksi RDS dengan DNS kustom saat menggunakan validasi nama host SSL. 
+  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 Utara) tidak mendukung Proksi RDS di Zona Ketersediaan `use1-az3`. Wilayah AS Barat (California Utara) tidak mendukung Proksi RDS di Zona Ketersediaan `usw1-az2`. 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 global, lihat [Kunci konteks kondisi global AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) dalam *Panduan Pengguna IAM*.
+ Anda tidak dapat menggunakan RDS Proxy dengan RDS Custom untuk 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.
+ Proxy Anda secara otomatis membuat pengguna `rdsproxyadmin` DB saat Anda mendaftarkan target proxy. Ini adalah pengguna yang dilindungi yang penting untuk fungsionalitas proxy. Anda harus menghindari merusak `rdsproxyadmin` pengguna dalam kapasitas apa pun. Menghapus atau memodifikasi `rdsproxyadmin` pengguna atau izinnya dapat mengakibatkan tidak tersedianya proxy ke aplikasi Anda.

Untuk batasan tambahan untuk setiap mesin DB, lihat bagian berikut:
+ [Batasan tambahan untuk RDS for MariaDB](#rds-proxy.limitations-mdb)
+ [Batasan tambahan untuk RDS for Microsoft SQL Server](#rds-proxy.limitations-ms)
+ [Batasan tambahan untuk RDS for MySQL](#rds-proxy.limitations-my)
+ [Batasan tambahan untuk RDS for PostgreSQL](#rds-proxy.limitations-pg)

### Batasan tambahan untuk RDS for MariaDB
<a name="rds-proxy.limitations-mdb"></a>

 Batasan tambahan berikut berlaku untuk Proksi RDS dengan basis data RDS for 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 Proksi RDS dengan basis data MariaDB yang dikelola sendiri dalam instans Amazon EC2.
+ Anda tidak dapat menggunakan Proksi RDS dengan instans DB RDS for MariaDB dengan parameter `read_only` dalam grup parameter DB-nya diatur ke `1`.
+ Proksi RDS tidak mendukung mode terkompresi MariaDB. Misalnya, Proksi RDS tidak mendukung kompresi yang digunakan oleh opsi `--compress` atau `-C` perintah `mysql`.
+ Beberapa pernyataan dan fungsi SQL dapat mengubah status koneksi tanpa menyebabkan penyematan. Untuk perilaku penyematan terbaru, lihat [Menghindari menyematkan Proxy RDS](rds-proxy-pinning.md).
+ Proksi RDS tidak mendukung plugin `auth_ed25519` MariaDB.
+ Proksi RDS tidak mendukung Keamanan Lapisan Pengangkutan (TLS) versi 1.3 untuk basis data MariaDB.
+ Koneksi basis data yang memproses perintah `GET DIAGNOSTIC` mungkin menampilkan informasi yang tidak akurat saat Proksi RDS menggunakan kembali koneksi basis data yang sama untuk menjalankan kueri lain. Hal ini bisa terjadi ketika Proksi RDS me-multipleks koneksi basis data. Untuk informasi selengkapnya, lihat [Ikhtisar konsep Proksi RDS](rds-proxy.howitworks.md#rds-proxy-overview).
+ RDS Proxy saat ini tidak mendukung `caching_sha2_password` opsi `ClientPasswordAuthType` untuk MariaDB.

**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 untuk RDS for Microsoft SQL Server
<a name="rds-proxy.limitations-ms"></a>

 Batasan tambahan berikut berlaku untuk Proksi RDS dengan basis data 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 kolasi di SQL Server, lihat dokumentasi [Microsoft SQL Server](https://docs.microsoft.com/en-us/sql/relational-databases/collations/collation-and-unicode-support?view=sql-server-ver16).
+ Proksi RDS tidak mendukung koneksi yang menggunakan Active Directory.
+ Anda tidak dapat menggunakan autentikasi IAM dengan klien yang tidak mendukung properti token. Untuk informasi selengkapnya, lihat [Pertimbangan untuk menghubungkan ke Microsoft SQL Server](rds-proxy-connecting.md#rds-proxy-connecting-sqlserver).
+ 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 kumpulan hasil aktif (MARS), Proksi RDS tidak akan menjalankan kueri inisialisasi. Untuk informasi tentang MARS, lihat dokumentasi [ Microsoft SQL Server](https://docs.microsoft.com/en-us/sql/relational-databases/native-client/features/using-multiple-active-result-sets-mars?view=sql-server-ver16).
+ *Saat ini, RDS Proxy tidak mendukung RDS untuk instans SQL Server DB yang berjalan pada versi utama SQL Server 2022.*
+ *RDS Proxy tidak mendukung RDS untuk instans SQL Server DB yang berjalan pada versi utama SQL Server 2014.*
+ RDS Proxy tidak mendukung aplikasi klien yang tidak dapat menangani beberapa pesan respons dalam satu catatan TLS.
+ RDS Proxy tidak mendukung otentikasi end-to-end IAM untuk RDS untuk SQL Server.

### Batasan tambahan untuk RDS for MySQL
<a name="rds-proxy.limitations-my"></a>

 Batasan tambahan berikut berlaku untuk Proksi RDS dengan basis data RDS for MySQL:
+ Dukungan RDS Proxy untuk `caching_sha2_password` otentikasi memerlukan koneksi aman (TLS).
+ Dukungan Proxy RDS `caching_sha2_password` diketahui memiliki masalah kompatibilitas dengan versi driver go-sql tertentu.
+ Saat menggunakan driver MySQL 8.4 C, API mungkin membentuk paket `mysql_stmt_bind_named_param` yang salah bentuk jika jumlah parameter melebihi jumlah placeholder dalam pernyataan yang disiapkan. Ini menghasilkan tanggapan yang salah. Untuk informasi selengkapnya, lihat [laporan bug MySQL](https://bugs.mysql.com/bug.php?id=116860&thanks=4).
+ Saat ini, semua proksi mendengarkan di port 3306 untuk MySQL. Proksi ini masih terhubung ke basis data Anda menggunakan port yang sudah ditentukan dalam pengaturan basis data. 
+  Anda tidak dapat menggunakan Proksi RDS dengan basis data MySQL yang dikelola sendiri dalam instans EC2.
+  Anda tidak dapat menggunakan Proksi RDS dengan instans DB RDS for MySQL dengan parameter `read_only` dalam grup parameter DB-nya diatur ke `1`.
+ Proksi RDS tidak mendukung mode terkompresi MySQL. Misalnya, Proksi RDS tidak mendukung kompresi yang digunakan oleh opsi `--compress` atau `-C` perintah `mysql`.
+ Koneksi basis data yang memproses perintah `GET DIAGNOSTIC` mungkin menampilkan informasi yang tidak akurat saat Proksi RDS menggunakan kembali koneksi basis data yang sama untuk menjalankan kueri lain. Hal ini bisa terjadi ketika Proksi RDS me-multipleks koneksi basis data.
+ Beberapa pernyataan dan fungsi SQL seperti `SET LOCAL` dapat mengubah status koneksi tanpa menyebabkan penyematan. Untuk perilaku penyematan terbaru, lihat [Menghindari menyematkan Proxy RDS](rds-proxy-pinning.md).
+ Menggunakan `ROW_COUNT()` fungsi dalam kueri multi-pernyataan tidak didukung.
+ RDS Proxy tidak mendukung aplikasi klien yang tidak dapat menangani beberapa pesan respons dalam satu catatan TLS.
+ Proxy RDS tidak mendukung kata sandi ganda MySQL.
+ Proxy RDS mungkin tidak berfungsi seperti yang diharapkan saat Anda mengonfigurasi `init_connect` parameter dalam grup parameter RDS DB Anda untuk menyetel variabel status sesi. Sebagai gantinya, setel kueri inisialisasi untuk proxy Anda untuk menjalankan pernyataan inisialisasi sesi saat menggunakan proxy untuk terhubung ke database Anda.

**penting**  
 Untuk proksi yang terkait dengan basis data MySQL, 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 untuk RDS for PostgreSQL
<a name="rds-proxy.limitations-pg"></a>

 Batasan tambahan berikut berlaku untuk Proksi RDS dengan basis data RDS for PostgreSQL:
+ Proksi RDS tidak mendukung filter penyematan sesi untuk PostgreSQL.
+  Saat ini, semua proksi mendengarkan di port 5432 untuk PostgreSQL.
+ Untuk PostgreSQL, Proxy RDS saat ini tidak mendukung pembatalan kueri dari klien dengan mengeluarkan `CancelRequest`. Misalnya, hal ini bisa terjadi ketika Anda membatalkan kueri yang berjalan lama dalam sesi psql interaktif dengan menggunakan Ctrl\$1C. 
+  Hasil dari fungsi [lastval](https://www.postgresql.org/docs/current/functions-sequence.html) PostgreSQL tidak selalu akurat. Sebagai solusi, gunakan pernyataan [INSERT](https://www.postgresql.org/docs/current/sql-insert.html) dengan klausul `RETURNING`.
+ Proksi RDS saat ini tidak mendukung mode replikasi streaming.
+ Dengan RDS for PostgreSQL 16, modifikasi nilai `scram_iterations` secara khusus memengaruhi proses autentikasi antara proksi dan basis data. Khususnya, jika Anda `ClientPasswordAuthType` mengonfigurasinya`scram-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.
+ `postgres`Database default harus ada pada RDS untuk PostgreSQL misalnya agar Proxy RDS berfungsi. Jangan hapus database ini bahkan jika aplikasi Anda menggunakan database yang berbeda.
+ Jika Anda menggunakan `ALTER ROLE` untuk mengubah peran pengguna`SET ROLE`, koneksi berikutnya sebagai pengguna tersebut ke proxy mungkin tidak menggunakan setelan peran ini, jika koneksi tersebut mengalami penyematan. Untuk mencegah hal ini, saat menggunakan proxy, gunakan `SET ROLE` dalam kueri inisialisasi proxy. Untuk informasi selengkapnya, lihat **Kueri inisialisasi** di[Membuat proxy untuk Amazon RDS ](rds-proxy-creating.md).

**penting**  
Untuk proksi yang ada dengan basis data PostgreSQL, jika Anda mengubah autentikasi basis data untuk menggunakan `SCRAM` saja, proksi akan menjadi tidak tersedia selama maksimal 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.

# Merencanakan lokasi penggunaan Proksi RDS
<a name="rds-proxy-planning"></a>

 Anda dapat menentukan instans, klaster, dan aplikasi DB mana yang mungkin paling banyak mendapatkan manfaat dari penggunaan Proksi RDS. Untuk melakukannya, pertimbangkan faktor-faktor berikut: 
+  Instans DB apa pun yang mengalami kesalahan “terlalu banyak koneksi” adalah kandidat yang baik untuk dikaitkan dengan proksi. Ini sering ditandai dengan nilai `ConnectionAttempts` CloudWatch metrik yang tinggi. Proksi tersebut memungkinkan aplikasi untuk membuka banyak koneksi klien sekaligus mengelola koneksi jangka panjang dalam jumlah lebih kecil ke instans DB. 
+  Untuk instans DB yang menggunakan kelas AWS instans yang lebih kecil, seperti T2 atau T3, menggunakan proxy dapat membantu menghindari kondisi. out-of-memory Tindakan ini juga dapat membantu mengurangi overhead CPU untuk membangun koneksi. Kondisi ini dapat terjadi saat berurusan dengan koneksi dalam jumlah besar. 
+  Anda dapat memantau CloudWatch metrik Amazon tertentu untuk menentukan apakah instans DB mendekati jenis batas tertentu. Batasan ini ditujukan untuk jumlah koneksi dan memori terkait dengan pengelolaan koneksi. Anda juga dapat memantau CloudWatch metrik tertentu untuk menentukan apakah instans DB menangani banyak koneksi berumur pendek. Pembukaan dan penutupan koneksi tersebut dapat membebani overhead performa pada basis data Anda. Untuk informasi tentang metrik yang akan dipantau, lihat [Memantau metrik Proxy RDS dengan Amazon CloudWatchMemantau Proxy RDS dengan CloudWatch](rds-proxy.monitoring.md). 
+  AWS Lambda fungsi juga bisa menjadi kandidat yang baik untuk menggunakan proxy. Fungsi ini sering membuat koneksi basis data pendek yang mendapatkan manfaat dari kumpulan koneksi yang ditawarkan oleh Proksi RDS. Anda dapat memanfaatkan autentikasi IAM apa pun yang Anda miliki untuk fungsi Lambda, alih-alih mengelola kredensial basis data dalam kode aplikasi Lambda. 
+  Aplikasi yang biasanya membuka dan menutup koneksi basis data dalam jumlah besar dan tidak memiliki mekanisme pengumpulan koneksi default adalah kandidat yang tepat untuk menggunakan proksi. 
+  Aplikasi yang dapat mempertahankan koneksi terbuka dalam jumlah besar selama jangka waktu yang lama biasanya merupakan kandidat yang tepat untuk penggunaan proksi. Aplikasi dalam industri seperti Perangkat Lunak sebagai Layanan (SaaS) atau e-niaga sering kali meminimalkan latensi untuk permintaan basis data dengan membiarkan koneksi terbuka. Dengan Proksi RDS, aplikasi dapat mempertahankan lebih banyak koneksi tetap terbuka daripada saat terhubung langsung ke instans DB. 
+   Proksi dapat menerapkan kebijakan autentikasi koneksi klien untuk aplikasi tertentu. Anda dapat memanfaatkan autentikasi IAM apa pun yang Anda miliki untuk fungsi Lambda, alih-alih mengelola kredensial basis data dalam kode aplikasi Lambda. 
+  Proksi RDS dapat membantu membuat aplikasi lebih tangguh dan transparan terhadap kegagalan basis data. Proksi RDS melewati cache Sistem Nama Domain (DNS) untuk mengurangi waktu failover hingga 66% untuk instans DB Amazon RDS Multi-AZ. Proksi RDS juga secara otomatis merutekan lalu lintas ke instans basis data baru sekaligus mempertahankan koneksi aplikasi. Hal ini membuat failover lebih transparan untuk aplikasi.

# Konsep dan terminologi Proksi RDS
<a name="rds-proxy.howitworks"></a>

 Anda dapat menyederhanakan manajemen koneksi untuk instans DB Amazon RDS dengan menggunakan Proksi RDS. 

 Proksi RDS menangani lalu lintas jaringan antara aplikasi klien dan basis data. Tindakan ini dilakukan secara aktif terlebih dahulu dengan memahami protokol basis data. Lalu perilakunya disesuaikan berdasarkan operasi SQL dari aplikasi Anda dan serangkaian hasil dari basis data. 

 Proksi RDS mengurangi overhead memori dan CPU untuk manajemen koneksi pada basis data Anda. Basis data membutuhkan lebih sedikit sumber daya memori dan CPU saat aplikasi membuka banyak koneksi secara bersamaan. Logika juga tidak dibutuhkan dalam aplikasi Anda untuk menutup dan membuka kembali koneksi yang idle dalam waktu yang lama. Demikian pula, logika aplikasi yang dibutuhkan untuk membangun kembali koneksi juga lebih sedikit jika terjadi masalah pada basis data. 

 Infrastruktur untuk RDS Proxy sangat tersedia dan digunakan di beberapa Availability Zones ()AZs. Komputasi, memori, dan penyimpanan untuk Proksi RDS tidak bergantung pada instans DB RDS. Independensi ini membantu menurunkan overhead pada server basis data Anda, sehingga dapat mencurahkan sumber dayanya untuk melayani beban kerja basis data. Sumber daya komputasi Proksi RDS bersifat nirserver, yang diskalakan secara otomatis berdasarkan beban kerja basis data Anda. 

**Topics**
+ [

## Ikhtisar konsep Proksi RDS
](#rds-proxy-overview)
+ [

## Pengumpulan koneksi
](#rds-proxy-connection-pooling)
+ [

## Keamanan Proksi RDS
](#rds-proxy-security)
+ [

## Failover
](#rds-proxy-failover)
+ [

## Transaksi
](#rds-proxy-transactions)

## Ikhtisar konsep Proksi RDS
<a name="rds-proxy-overview"></a>

 Proksi RDS menangani infrastruktur untuk melakukan pengumpulan koneksi dan fitur lain yang dijelaskan di bagian berikutnya. Anda melihat proksi ditampilkan dalam konsol RDS pada halaman **Proksi**. 

Setiap proksi menangani koneksi ke instans DB RDS tunggal. Proksi tersebut secara otomatis menentukan instans penulis saat ini untuk instans atau klaster DB RDS Multi-AZ.

 Koneksi yang dibiarkan terbuka dan disediakan oleh proksi untuk digunakan oleh aplikasi basis data Anda akan membentuk *kumpulan koneksi*. 

 Secara default, Proksi RDS dapat menggunakan ulang koneksi setelah setiap transaksi dalam sesi Anda. Penggunaan kembali tingkat transaksi ini disebut *multiplexing*. Jika Proksi RDS secara temporer menghapus satu koneksi dari kumpulan koneksi untuk menggunakannya kembali, operasi tersebut disebut *borrowing* koneksi. Jika aman dilakukan, Proksi RDS akan mengembalikan koneksi tersebut ke kumpulan koneksi. 

 Dalam beberapa kasus, Proksi RDS tidak dapat memastikan keamanan penggunaan ulang sebuah koneksi basis data di luar sesi saat ini. Untuk kasus seperti ini, Proksi RDS akan tetap mempertahankan sesi pada koneksi yang sama hingga sesi berakhir. Perilaku fallback ini disebut *pinning*. 

Proksi memiliki titik akhir default. Anda terhubung ke titik akhir ini saat menggunakan instans DB Amazon RDS. Anda melakukannya alih-alih menghubungkan ke read/write titik akhir yang terhubung langsung ke instance. Untuk cluster RDS DB, Anda juga dapat membuat endpoint tambahan dan read-only. read/write Untuk informasi selengkapnya, lihat [Ikhtisar titik akhir proksi](rds-proxy-endpoints.md#rds-proxy-endpoints-overview). 

 Misalnya, Anda masih dapat terhubung ke titik akhir cluster untuk read/write koneksi tanpa penyatuan koneksi. Anda masih dapat terhubung ke titik akhir pembaca untuk koneksi keseimbangan beban hanya-baca. Anda masih dapat terhubung ke titik akhir instans untuk melakukan diagnosis dan memecahkan masalah instans DB tertentu dengan klaster. Jika Anda menggunakan AWS layanan lain seperti AWS Lambda untuk terhubung ke database RDS, ubah pengaturan koneksi mereka untuk menggunakan titik akhir proxy. Misalnya, tentukan titik akhir proksi untuk mengizinkan fungsi Lambda mengakses basis data Anda sekaligus memanfaatkan fungsionalitas Proksi RDS. 

 Setiap proksi berisi sebuah grup target. *Grup target* ini berisi instans DB RDS yang menjadi tujuan koneksi proksi. Instans DB RDS yang terkait dengan proksi disebut sebagai *target* proksi tersebut. Untuk kemudahan, saat Anda membuat proksi melalui konsol, Proksi RDS juga membuat grup target yang sesuai dan mendaftarkan target terkait ini secara otomatis. 

 *Keluarga mesin* adalah serangkaian mesin basis data terkait yang menggunakan protokol DB yang sama. Anda dapat memilih keluarga mesin untuk setiap proksi yang Anda buat. 

## Pengumpulan koneksi
<a name="rds-proxy-connection-pooling"></a>

 *Pengumpulan koneksi* adalah pengoptimalan yang menurunkan overhead yang terkait dengan pembukaan dan penutupan koneksi dan dengan menjaga banyak koneksi terbuka secara bersamaan. Overhead ini mencakup memori yang diperlukan untuk menangani setiap koneksi baru. Ini juga melibatkan overhead CPU untuk menutup setiap koneksi dan membuka koneksi yang baru. Contohnya termasuk jabat tangan Transport Layer Security/Secure Sockets Layer (TLS/SSL), otentikasi, kemampuan negosiasi, dan sebagainya. Pengumpulan koneksi menyederhanakan logika aplikasi Anda. Anda tidak perlu menulis kode aplikasi untuk meminimalkan jumlah koneksi terbuka secara bersamaan. 

 Setiap proksi juga melakukan multipleks koneksi, yang juga dikenal sebagai penggunaan ulang koneksi. Dengan *multiplexing*, Proksi RDS melakukan semua operasi untuk transaksi menggunakan satu koneksi basis data acuan. RDS kemudian dapat menggunakan koneksi yang berbeda untuk transaksi berikutnya. Anda dapat membuka banyak koneksi ke proksi secara bersamaan, dan proksi akan mempertahankan koneksi terbuka dalam jumlah yang lebih kecil ke instans atau klaster DB. Tindakan ini akan lebih meminimalkan overhead memori untuk koneksi di server basis data. Teknik ini juga mengurangi kemungkinan kesalahan "terlalu banyak koneksi". 

## Keamanan Proksi RDS
<a name="rds-proxy-security"></a>

 RDS Proxy menggunakan mekanisme keamanan RDS yang ada seperti TLS/SSL dan AWS Identity and Access Management (IAM). Untuk informasi umum tentang fitur keamanan tersebut, lihat [Keamanan di Amazon RDS Aurora](UsingWithRDS.md). Selain itu, pastikan Anda benar-benar mengetahui bagaimana cara kerja RDS dengan autentikasi, otorisasi, dan bidang keamanan lainnya. 

 Proksi RDS dapat bertindak sebagai lapisan keamanan tambahan antara aplikasi klien dan basis data acuan. Misalnya, Anda dapat terhubung ke proxy menggunakan TLS 1.3, meskipun instans DB yang mendasarinya mendukung versi TLS yang lebih lama. Anda dapat terhubung ke proxy menggunakan peran IAM bahkan jika proxy terhubung ke database menggunakan pengguna database dan metode otentikasi kata sandi. Dengan menggunakan teknik ini, Anda dapat menerapkan persyaratan autentikasi yang kuat untuk aplikasi basis data tanpa sebuah upaya migrasi yang mahal untuk instans DB itu sendiri. 

Anda dapat menggunakan metode otentikasi berikut dengan RDS Proxy:
+ **Kredensyal basis data**
+ **Otentikasi IAM standar**
+ **End-to-end Autentikasi IAM**

### Menggunakan IAM dengan RDS Proxy
<a name="rds-proxy-security.IAM"></a>

RDS Proxy menawarkan dua metode otentikasi IAM:
+ **Otentikasi IAM standar**: Menerapkan autentikasi IAM untuk koneksi ke proxy Anda saat proxy terhubung ke database menggunakan kredensyal yang disimpan di Secrets Manager. Ini memberlakukan otentikasi IAM untuk akses database bahkan jika database menggunakan otentikasi kata sandi asli. Proxy mengambil kredensi database dari Secrets Manager dan menangani otentikasi ke database atas nama aplikasi Anda.
+ **End-to-end Autentikasi IAM**: Menerapkan otentikasi IAM untuk koneksi langsung dari aplikasi Anda ke database Anda melalui proxy. End-to-end Autentikasi IAM menyederhanakan konfigurasi keamanan Anda dan menghindari manajemen kredensi database di Secrets Manager. Lapisan keamanan tambahan ini memberlakukan kontrol akses berbasis IAM dari aplikasi klien ke database.

Untuk menggunakan otentikasi IAM standar, konfigurasikan proxy Anda untuk menggunakan rahasia Secrets Manager untuk otentikasi dan aktifkan autentikasi IAM untuk koneksi klien. Aplikasi Anda mengautentikasi ke proxy menggunakan IAM, sedangkan proxy mengautentikasi ke database menggunakan kredensyal yang diambil dari Secrets Manager.

Untuk menggunakan autentikasi end-to-end IAM, konfigurasikan proxy Anda untuk menggunakan otentikasi IAM saat mengatur skema otentikasi default saat membuat atau memodifikasi proxy Anda.

Untuk autentikasi end-to-end IAM, Anda harus memperbarui peran IAM yang terkait dengan proxy untuk memberikan izin. `rds-db:connect` Dengan otentikasi end-to-end IAM, ini menghilangkan kebutuhan untuk mendaftarkan pengguna database individu dengan proxy melalui rahasia Secrets Manager.

### Menggunakan TLS/SSL dengan RDS Proxy
<a name="rds-proxy-security.tls"></a>

 Anda dapat terhubung ke RDS Proxy menggunakan TLS/SSL protokol. 

**catatan**  
 Proxy RDS menggunakan sertifikat dari AWS Certificate Manager (ACM). Jika Anda menggunakan Proksi RDS, Anda tidak perlu mengunduh sertifikat Amazon RDS atau memperbarui aplikasi yang menggunakan koneksi Proksi RDS.

Untuk menerapkan TLS untuk semua koneksi antara proksi dan basis data, Anda dapat menentukan pengaturan **Wajibkan Keamanan Lapisan Pengangkutan** saat membuat atau mengubah sebuah Konsol Manajemen AWS. 

Proxy RDS juga dapat memastikan bahwa sesi Anda menggunakan TLS/SSL antara klien Anda dan titik akhir RDS Proxy. Untuk membuat Proksi RDS melakukannya, tentukan persyaratan pada sisi klien. Variabel sesi SSL tidak diatur untuk koneksi SSL ke basis data menggunakan Proksi RDS. 
+  Untuk RDS for MySQL, tentukan persyaratan pada sisi klien dengan parameter `--ssl-mode` saat Anda menjalankan perintah `mysql`. 
+  Untuk Amazon RDS PostgreSQL, tentukan `sslmode=require` sebagai bagian dari string `conninfo` saat Anda menjalankan perintah `psql`. 

RDS Proxy mendukung protokol TLS versi 1.0, 1.1, 1.2, dan 1.3. Anda dapat terhubung ke proksi menggunakan versi TLS yang lebih tinggi daripada yang digunakan dalam basis data acuan. 

Secara default, program klien membangun koneksi terenkripsi dengan Proksi RDS, dengan ketersediaan kontrol lebih lanjut melalui opsi `--ssl-mode`. Dari sisi klien, Proksi RDS mendukung semua mode SSL. 

 Untuk klien, mode SSL adalah sebagai berikut: 

**PREFERRED**  
 SSL adalah pilihan pertama, tetapi tidak diharuskan. 

**DISABLED**  
 Tidak ada SSL yang diperbolehkan. 

**REQUIRED**  
 Menerapkan SSL. 

**VERIFY\$1CA**  
 Menerapkan SSL dan memverifikasi otoritas sertifikat (CA). 

**VERIFY\$1IDENTITY**  
 Menerapkan SSL dan memverifikasi CA dan nama host CA. 

 Saat menggunakan sebuah klien dengan `--ssl-mode` `VERIFY_CA` atau `VERIFY_IDENTITY`, tentukan opsi `--ssl-ca` yang menunjuk ke CA dalam format `.pem`. Untuk `.pem` file yang akan digunakan, unduh semua root CA PEMs dari [Amazon Trust Services](https://www.amazontrust.com/repository/) dan tempatkan ke dalam satu `.pem` file.

 Proksi RDS menggunakan sertifikat wildcard, yang berlaku untuk domain dan subdomainnya. Jika Anda menggunakan klien `mysql` untuk terhubung dengan mode SSL `VERIFY_IDENTITY`, Anda kini harus menggunakan perintah `mysql` yang kompatibel dengan MySQL 8.0. 

## Failover
<a name="rds-proxy-failover"></a>

 *Failover* adalah fitur ketersediaan tinggi yang menggantikan instans basis data dengan yang lain saat instans asli tidak tersedia. Failover dapat terjadi karena sebuah masalah pada instans basis data. Bisa juga bagian dari prosedur pemeliharaan normal, seperti saat peningkatan basis data. Failover berlaku untuk instans DB RDS dengan konfigurasi Multi-AZ.

 Terhubung melalui proksi membuat aplikasi Anda lebih tangguh menghadapi failover basis data. Saat instans DB asli tidak tersedia, Proksi RDS akan terhubung ke basis data siaga tanpa kehilangan koneksi aplikasi yang idle. Hal ini dapat membantu mempercepat dan menyederhanakan proses failover. Dampaknya terhadap aplikasi juga lebih kecil dibandingkan masalah boot ulang atau basis data pada umumnya. 

 Tanpa Proksi RDS, failover dapat menyebabkan pemadaman singkat. Selama pemadaman, Anda tidak dapat melakukan operasi tulis pada basis data dengan failover. Koneksi semua basis data yang ada akan terganggu, dan aplikasi Anda harus membuka ulang koneksi tersebut. Basis data akan tersedia untuk koneksi dan operasi tulis baru saat instans DB hanya-baca dipromosikan menggantikan yang tidak tersedia. 

 Selama failover DB, Proksi RDS terus menerima koneksi di alamat IP yang sama dan secara otomatis mengarahkan koneksi ke instans DB primer baru. Klien yang terhubung melalui Proksi RDS tidak rentan terhadap hal berikut: 
+  Penundaan propagasi Sistem Nama Domain (DNS) saat failover. 
+  Caching DNS lokal. 
+  Waktu koneksi habis. 
+  Ketidakpastian tentang instans DB mana yang merupakan instans penulis saat ini. 
+  Menunggu respons kueri dari penulis sebelumnya yang menjadi tidak tersedia tanpa menutup koneksi. 

 Untuk aplikasi yang mempertahankan kumpulan koneksinya sendiri, melewati Proksi RDS berarti sebagian besar koneksi tetap aktif selama failover atau gangguan lainnya. Hanya koneksi yang berada di tengah transaksi atau pernyataan SQL yang dibatalkan. Proksi RDS segera menerima koneksi baru. Saat penulis basis data tidak tersedia, Proksi RDS akan mengantrekan permintaan masuk. 

 Untuk aplikasi yang tidak mempertahankan kumpulan koneksinya sendiri, Proksi RDS menawarkan tingkat koneksi yang lebih cepat dan lebih banyak koneksi terbuka. Hal ini menyebabkan overhead yang mahal dikarenakan seringnya koneksi ulang dari basis data. Hal ini dilakukan dengan menggunakan kembali koneksi basis data yang dipertahankan dalam kumpulan koneksi Proksi RDS. Pendekatan ini sangatlah penting untuk koneksi TLS, yang memerlukan biaya penyiapan yang sangat besar. 

## Transaksi
<a name="rds-proxy-transactions"></a>

 Semua pernyataan dalam satu transaksi selalu menggunakan koneksi basis data acuan yang sama. Koneksi akan dapat digunakan oleh sesi yang berbeda saat transaksi berakhir. Penggunaan transaksi sebagai unit granularitas memiliki konsekuensi sebagai berikut: 
+  Penggunaan ulang koneksi bisa terjadi setelah setiap pernyataan jika pengaturan `autocommit` RDS for MySQL diaktifkan. 
+  Sebaliknya, jika pengaturan `autocommit` dinonaktifkan, pernyataan pertama yang Anda terbitkan dalam sesi akan memulai transaksi baru. Misalnya, Anda memasukkan urutan pernyataan `SELECT`, `INSERT`, `UPDATE`, dan bahasa manipulasi data (DML) lainnya. Dalam hal ini, penggunaan kembali koneksi tidak terjadi hingga Anda mengeluarkan `COMMIT`, `ROLLBACK`, atau mengakhiri transaksi. 
+  Memasukkan pernyataan bahasa definisi data (DDL) akan menyebabkan transaksi berakhir setelah pernyataan tersebut selesai. 

 Proksi RDS mendeteksi waktu saat transaksi berakhir melalui protokol jaringan yang digunakan oleh aplikasi klien basis data. Deteksi transaksi tidak bergantung pada kata kunci seperti `COMMIT` atau `ROLLBACK` yang muncul dalam teks pernyataan SQL. 

 Dalam beberapa kasus, Proksi RDS dapat mendeteksi permintaan basis data yang membuatnya tidak praktis untuk memindahkan sesi Anda ke koneksi yang berbeda. Dalam kasus ini, multiplexing dinonaktifkan untuk koneksi tersebut hingga sesi Anda berakhir. Aturan serupa berlaku jika Proksi RDS tidak dapat memastikan apakah multiplexing praktis untuk sesi ini. Operasi ini disebut *pinning*. Untuk mendeteksi dan meminimalkan pinning, lihat [Menghindari menyematkan Proxy RDS](rds-proxy-pinning.md). 

# Memulai dengan RDS Proxy
<a name="rds-proxy-setup"></a>

Gunakan informasi di halaman berikut untuk mengatur [Proksi Amazon RDS Aurora](rds-proxy.md) dan mengelola serta mengatur opsi keamanan terkait. Opsi keamanan mengontrol siapa yang dapat mengakses setiap proxy dan bagaimana setiap proxy terhubung ke instans DB.

Jika Anda baru mengenal RDS Proxy, sebaiknya ikuti halaman sesuai urutan yang kami sajikan. 

**Topics**
+ [

# Menyiapkan prasyarat jaringan untuk RDS Proxy
](rds-proxy-network-prereqs.md)
+ [

# Menyiapkan kredensil database untuk RDS Proxy
](rds-proxy-secrets-arns.md)
+ [

# Mengkonfigurasi otentikasi IAM untuk RDS Proxy
](rds-proxy-iam-setup.md)
+ [

# Membuat proxy untuk Amazon RDS
](rds-proxy-creating.md)
+ [

# Melihat proxy
](rds-proxy-viewing.md)
+ [

# Terhubung ke basis data melalui Proksi RDS
](rds-proxy-connecting.md)

# Menyiapkan prasyarat jaringan untuk RDS Proxy
<a name="rds-proxy-network-prereqs"></a>

 Menggunakan Proksi RDS mengharuskan Anda memiliki cloud privat virtual (VPC) umum antara instans DB RDS dan Proksi RDS. VPC ini harus memiliki minimal dua subnet yang berada di Zona Ketersediaan yang berbeda. Akun Anda dapat memiliki subnet ini atau membagikannya dengan akun lain. Untuk informasi tentang berbagi VPC, lihat [Bekerja dengan](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-sharing.html) berbagi. VPCs 

Untuk IPv6 dukungan, konfigurasi jaringan tambahan diperlukan:
+ **IPv6 Jenis jaringan endpoint** — VPC dan subnet Anda harus dikonfigurasi untuk mendukung. IPv6 Ini termasuk memiliki blok IPv6 CIDR yang ditetapkan ke VPC dan subnet Anda.
+ **Tipe jaringan endpoint dual-stack** — VPC dan subnet Anda harus mendukung keduanya dan pengalamatan. IPv4 IPv6 
+ **IPv6 jenis jaringan koneksi target** — Database Anda harus dikonfigurasi untuk mode dual-stack untuk mendukung IPv6 koneksi dari proxy.

Sumber daya aplikasi klien seperti Amazon EC2, Lambda, atau Amazon ECS bisa berada di VPC yang sama dengan proksi. Atau sumber daya ini bisa berada di VPC terpisah dari proksi. Jika Anda berhasil terhubung ke instans DB RDS apa pun, berarti Anda sudah memiliki sumber daya jaringan yang diperlukan. 

**Topics**
+ [

## Mendapatkan informasi tentang subnet Anda
](#rds-proxy-network-prereqs.subnet-info)
+ [

## Perencanaan untuk kapasitas alamat IP
](#rds-proxy-network-prereqs.plan-ip-address)

## Mendapatkan informasi tentang subnet Anda
<a name="rds-proxy-network-prereqs.subnet-info"></a>

Untuk membuat proxy, Anda harus menyediakan subnet dan VPC tempat proxy beroperasi di dalamnya. Contoh Linux berikut menunjukkan AWS CLI perintah yang memeriksa VPCs dan subnet yang dimiliki oleh Anda Akun AWS. Secara khusus, Anda meneruskan subnet IDs sebagai parameter saat Anda membuat proxy menggunakan CLI. 

```
aws ec2 describe-vpcs
aws ec2 describe-internet-gateways
aws ec2 describe-subnets --query '*[].[VpcId,SubnetId]' --output text | sort
```

Contoh Linux berikut menunjukkan AWS CLI perintah untuk menentukan subnet yang IDs sesuai dengan instance RDS DB tertentu DB cluster. Temukan ID VPC untuk instance DB. Periksa VPC untuk menemukan subnetnya. Contoh Linux berikut menunjukkan caranya.

```
$ #From the DB instance, trace through the DBSubnetGroup and Subnets to find the subnet IDs.
$ aws rds describe-db-instances --db-instance-identifier my_instance_id --query '*[].[DBSubnetGroup]|[0]|[0]|[Subnets]|[0]|[*].SubnetIdentifier' --output text
```

```
subnet_id_1
subnet_id_2
subnet_id_3
...
```

```
$ #From the DB instance, find the VPC.
$ aws rds describe-db-instances --db-instance-identifier my_instance_id --query '*[].[DBSubnetGroup]|[0]|[0].VpcId' --output text
```

```
my_vpc_id
```

```
$ aws ec2 describe-subnets --filters Name=vpc-id,Values=my_vpc_id --query '*[].[SubnetId]' --output text
```

```
subnet_id_1
subnet_id_2
subnet_id_3
subnet_id_4
subnet_id_5
subnet_id_6
```

## Perencanaan untuk kapasitas alamat IP
<a name="rds-proxy-network-prereqs.plan-ip-address"></a>

Proksi RDS secara otomatis menyesuaikan kapasitasnya sesuai kebutuhan berdasarkan ukuran dan jumlah instans DB yang didaftarkan di proksi. Operasi tertentu mungkin juga memerlukan kapasitas proksi tambahan seperti menambah ukuran basis data yang terdaftar atau operasi pemeliharaan Proksi RDS internal. Selama operasi ini, proksi Anda mungkin memerlukan lebih banyak alamat IP untuk menyediakan kapasitas tambahan. Alamat tambahan ini memungkinkan proksi Anda diskalakan tanpa memengaruhi beban kerja Anda. Kurangnya alamat IP kosong di subnet Anda mencegah kenaikan skala proksi. Hal ini dapat menyebabkan latensi kueri yang lebih tinggi atau kegagalan koneksi klien. RDS memberi tahu Anda melalui peristiwa `RDS-EVENT-0243` ketika tidak ada cukup alamat IP kosong di subnet Anda. Untuk informasi tentang peristiwa ini, lihat [Bekerja dengan acara RDS ProxyBekerja dengan acara RDS Proxy](rds-proxy.events.md).

**catatan**  
RDS Proxy tidak menggunakan lebih dari 215 alamat IP untuk setiap proxy dalam VPC.

Cadangan jumlah minimum alamat IP gratis berikut di subnet Anda untuk proxy Anda, berdasarkan ukuran kelas instans DB.


|  Kelas instans DB  |  Alamat IP kosong minimum  | 
| --- | --- | 
|  db.\$1.xlarge atau lebih kecil   |  10  | 
|  db.\$1.2xlarge   |  15  | 
|  db.\$1.4xlarge   |  25  | 
|  db.\$1.8xlarge   |  45  | 
|  db.\$1.12xlarge   |  60  | 
|  db.\$1.16xlarge   |  75  | 
|  db.\$1.24xlarge   |  110  | 

Jumlah alamat IP yang direkomendasikan ini adalah perkiraan untuk proksi dengan titik akhir default saja. Proksi dengan titik akhir tambahan atau replika baca mungkin memerlukan lebih banyak alamat IP kosong. Untuk setiap titik akhir tambahan, sebaiknya Anda mencadangkan tiga alamat IP lagi. Untuk setiap replika baca, sebaiknya Anda mencadangkan alamat IP tambahan seperti yang ditentukan dalam tabel berdasarkan ukuran replika baca tersebut.

# Menyiapkan kredensil database untuk RDS Proxy
<a name="rds-proxy-secrets-arns"></a>

RDS Proxy di Amazon RDS digunakan AWS Secrets Manager untuk menyimpan dan mengelola kredenal database dengan aman. Alih-alih menyematkan kredensi dalam aplikasi Anda, Anda mengaitkan proxy dengan rahasia Secrets Manager yang berisi detail otentikasi yang diperlukan. Anda dapat membuat rahasia Secrets Manager terpisah untuk setiap akun pengguna basis data yang terhubung ke instans DB RDS.

Atau, Anda dapat mengonfigurasi RDS Proxy untuk menggunakan otentikasi end-to-end IAM, yang menghilangkan kebutuhan untuk menyimpan kredensil database di Secrets Manager. RDS Proxy menggunakan otentikasi IAM untuk keduanya client-to-proxy dan koneksi. proxy-to-database Ini menyediakan solusi otentikasi berbasis IAM terintegrasi penuh yang tidak memerlukan pengelolaan rahasia atau kata sandi. Untuk informasi tentang menambahkan pengguna IAM DB baru, lihat[Membuat akun basis data menggunakan autentikasi IAM](UsingWithRDS.IAMDBAuth.DBAccounts.md).

**Topics**
+ [

## Membuat rahasia untuk digunakan dengan RDS Proxy
](#rds-proxy-secrets-create)

## Membuat rahasia untuk digunakan dengan RDS Proxy
<a name="rds-proxy-secrets-create"></a>

Sebelum Anda membuat proxy, Anda harus terlebih dahulu membuat setidaknya satu rahasia yang menyimpan kredensi database Anda.

### Konsol
<a name="rds-proxy-secrets-create-console"></a>

**Untuk membuat rahasia**

1. Buka konsol Secrets Manager di [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Pilih **Simpan rahasia baru**.

1. Pilih **Kredensial untuk database Amazon RDS**.

1. Masukkan nama pengguna dan kata sandi. Kredensial yang Anda masukkan harus cocok dengan kredensi pengguna database yang ada di database RDS terkait. RDS Proxy menggunakan kredensil ini untuk mengautentikasi dan membangun koneksi ke database atas nama aplikasi.

   Jika ada ketidakcocokan, Anda dapat memperbarui rahasia agar sesuai dengan kata sandi database. Sampai Anda memperbarui rahasia, upaya untuk terhubung melalui proxy menggunakan rahasia itu gagal, tetapi koneksi menggunakan rahasia valid lainnya masih berfungsi.
**catatan**  
Untuk RDS untuk SQL Server, RDS Proxy memerlukan rahasia case-sensitive di Secrets Manager, terlepas dari pengaturan pengumpulan instans DB. Jika aplikasi Anda mengizinkan nama pengguna dengan kapitalisasi yang berbeda, seperti “Admin” dan “admin,” Anda harus membuat rahasia terpisah untuk masing-masing. RDS Proxy tidak mendukung otentikasi nama pengguna yang tidak peka huruf besar/kecil antara klien dan proxy.  
Untuk informasi selengkapnya tentang kolasi di SQL Server, lihat dokumentasi [Microsoft SQL Server](https://docs.microsoft.com/en-us/sql/relational-databases/collations/collation-and-unicode-support?view=sql-server-ver16).

1. Untuk **Database**, pilih database Amazon RDS yang akan diakses rahasia.

1. Isi pengaturan lain untuk rahasia, lalu pilih **Store**. Untuk petunjuk komprehensif, lihat [Membuat AWS Secrets Manager rahasia](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html) di *Panduan AWS Secrets Manager Pengguna*. 

### AWS CLI
<a name="rds-proxy-secrets-create-cli"></a>

Saat Anda membuat proxy melalui AWS CLI, Anda menentukan Amazon Resource Names (ARNs) dari rahasia terkait. Anda melakukannya untuk semua akun pengguna DB yang dapat diakses proksi. Dalam Konsol Manajemen AWS, Anda memilih rahasia dengan nama deskriptif mereka.
+ Untuk membuat rahasia Secrets Manager untuk digunakan dengan RDS Proxy, gunakan perintah [create-secret](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/create-secret.html):

  ```
  aws secretsmanager create-secret \
    --name "secret_name" \
    --description "secret_description" \
    --region region_name \
    --secret-string '{"username":"db_user","password":"db_user_password"}'
  ```
+ Anda juga dapat membuat kunci khusus untuk mengenkripsi rahasia Secrets Manager Anda. Perintah berikut menciptakan kunci contoh.

  ```
  aws kms create-key --description "test-key" --policy '{
    "Id":"kms-policy",
    "Version": "2012-10-17",		 	 	 
    "Statement":
      [
        {
          "Sid":"Enable IAM User Permissions",
          "Effect":"Allow",
          "Principal":{"AWS":"arn:aws:iam::account_id:root"},
          "Action":"kms:*","Resource":"*"
        },
        {
          "Sid":"Allow access for Key Administrators",
          "Effect":"Allow",
          "Principal":
            {
              "AWS":
                ["$USER_ARN","arn:aws:iam:account_id::role/Admin"]
            },
          "Action":
            [
              "kms:Create*",
              "kms:Describe*",
              "kms:Enable*",
              "kms:List*",
              "kms:Put*",
              "kms:Update*",
              "kms:Revoke*",
              "kms:Disable*",
              "kms:Get*",
              "kms:Delete*",
              "kms:TagResource",
              "kms:UntagResource",
              "kms:ScheduleKeyDeletion",
              "kms:CancelKeyDeletion"
            ],
          "Resource":"*"
        },
        {
          "Sid":"Allow use of the key",
          "Effect":"Allow",
          "Principal":{"AWS":"$ROLE_ARN"},
          "Action":["kms:Decrypt","kms:DescribeKey"],
          "Resource":"*"
        }
      ]
  }'
  ```

 Misalnya, perintah berikut membuat rahasia Secrets Manager untuk dua pengguna database: 

```
aws secretsmanager create-secret \
  --name secret_name_1 --description "db admin user" \
  --secret-string '{"username":"admin","password":"choose_your_own_password"}'

aws secretsmanager create-secret \
  --name secret_name_2 --description "application user" \
  --secret-string '{"username":"app-user","password":"choose_your_own_password"}'
```

Untuk membuat rahasia ini dienkripsi dengan AWS KMS kunci kustom Anda, gunakan perintah berikut:

```
aws secretsmanager create-secret \
  --name secret_name_1 --description "db admin user" \
  --secret-string '{"username":"admin","password":"choose_your_own_password"}' \
  --kms-key-id arn:aws:kms:us-east-2:account_id:key/key_id

aws secretsmanager create-secret \
  --name secret_name_2 --description "application user" \
  --secret-string '{"username":"app-user","password":"choose_your_own_password"}' \
  --kms-key-id arn:aws:kms:us-east-2:account_id:key/key_id
```

Untuk melihat rahasia yang dimiliki oleh AWS akun Anda, gunakan perintah [daftar-rahasia](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/list-secrets.html):

```
aws secretsmanager list-secrets
```

Saat Anda membuat proxy menggunakan CLI, Anda meneruskan Amazon Resource Names (ARNs) dari satu atau beberapa rahasia ke parameter. `--auth` Contoh berikut menunjukkan cara menyiapkan laporan hanya dengan nama dan ARN dari setiap rahasia yang dimiliki oleh akun Anda AWS . Contoh ini menggunakan `--output table` parameter yang tersedia di AWS CLI versi 2. Jika Anda menggunakan AWS CLI versi 1, gunakan `--output text` sebagai gantinya. 

```
aws secretsmanager list-secrets --query '*[].[Name,ARN]' --output table
```

Untuk mengonfirmasi bahwa rahasia berisi kredensil yang benar dalam format yang tepat, gunakan perintah. [get-secret-value](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/get-secret-value.html) Ganti `your_secret_name` dengan nama pendek rahasia atau ARN.

```
aws secretsmanager get-secret-value --secret-id your_secret_name
```

Outputnya berisi garis dengan nilai yang dikodekan JSON mirip dengan yang berikut ini:

```
...
"SecretString": "{\"username\":\"your_username\",\"password\":\"your_password\"}",
...
```

# Mengkonfigurasi otentikasi IAM untuk RDS Proxy
<a name="rds-proxy-iam-setup"></a>

Untuk menyiapkan autentikasi AWS Identity and Access Management (IAM) untuk Proxy RDS di Amazon RDS, buat dan konfigurasikan kebijakan IAM yang memberikan izin yang diperlukan. 

Topik ini menyediakan langkah-langkah untuk mengonfigurasi autentikasi IAM untuk RDS Proxy, termasuk membuat kebijakan IAM yang diperlukan dan melampirkannya ke peran IAM. 

**Tip**  
Prosedur ini hanya diperlukan jika Anda ingin membuat peran IAM Anda sendiri. Jika tidak, RDS dapat secara otomatis membuat peran yang diperlukan saat Anda mengatur proxy, sehingga Anda dapat melewati langkah-langkah ini.

## Prasyarat
<a name="rds-proxy-iam-setup-prereqs"></a>

Sebelum Anda mengatur autentikasi IAM untuk RDS Proxy, pastikan Anda memiliki yang berikut:
+ **AWS Secrets Manager**— Setidaknya satu rahasia tersimpan yang berisi kredensi database. Untuk instruksi untuk membuat rahasia, lihat[Menyiapkan kredensil database untuk RDS Proxy](rds-proxy-secrets-arns.md).

  Ini tidak diperlukan jika Anda menggunakan otentikasi end-to-end IAM.
+ **Izin IAM — Peran** IAM atau pengguna dengan izin untuk membuat dan mengelola kebijakan, peran, dan rahasia IAM. AWS Secrets Manager

## Membuat kebijakan IAM untuk autentikasi end-to-end IAM
<a name="rds-proxy-iam-setup-e2e-steps"></a>

Saat menggunakan autentikasi end-to-end IAM, RDS Proxy terhubung ke database Anda menggunakan autentikasi IAM alih-alih mengambil kredensi dari Secrets Manager. Ini memerlukan konfigurasi peran IAM Anda dengan `rds-db:connect` izin untuk akun database yang ingin Anda gunakan dengan proxy.

Untuk mengautentikasi Proxy RDS Anda ke database menggunakan IAM, buat peran IAM dengan kebijakan yang memberikan izin koneksi database yang diperlukan.

### Konsol
<a name="rds-proxy-iam-e2e-console"></a>

**Untuk membuat peran untuk otentikasi end-to-end IAM dengan proxy Anda**

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Buat kebijakan izin untuk peran tersebut. Untuk langkah umum, lihat [Membuat kebijakan IAM (konsol)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html).

   Tempelkan kebijakan ini ke editor JSON dan buat perubahan berikut:
   + Ganti ID akun Anda sendiri.
   + Gantikan `us-east-2` dengan tempat proxy harus berada.
   + Gantikan sumber daya database IDs dan nama pengguna dengan yang ingin Anda gunakan. Format ID sumber daya berbeda antara instance RDS dan. Aurora clusters

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "rds-db:connect",
               "Resource": [
                   "arn:aws:rds-db:us-east-2:account_id:dbuser:db_instance_resource_id/db_user_name_1",
                   "arn:aws:rds-db:us-east-2:account_id:dbuser:db_instance_resource_id/db_user_name_2"
               ]
           }
       ]
   }
   ```

1. Buat peran dan lampirkan kebijakan izin padanya. Untuk langkah umum, lihat [Membuat peran untuk mendelegasikan izin ke layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html). AWS 

   Untuk **jenis entitas Tepercaya**, pilih **AWS layanan**. Di bawah **Kasus penggunaan**, pilih **RDS** dan pilih **RDS - Tambahkan Peran ke Database** untuk kasus penggunaan.

1. Untuk **kebijakan Izin**, pilih kebijakan yang Anda buat.

1. Untuk **Pilih entitas tepercaya**, masukkan kebijakan kepercayaan berikut untuk peran tersebut:

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "",
         "Effect": "Allow",
         "Principal": {
           "Service": "rds.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

### AWS CLI
<a name="rds-proxy-iam-e2e-cli"></a>

Untuk membuat peran menggunakan AWS CLI, kirim permintaan berikut:

```
aws iam create-role \
  --role-name my_e2e_iam_role_name \

  --assume-role-policy-document '{"Version":"2012-10-17",		 	 	 "Statement":[{"Effect":"Allow","Principal":{"Service":["rds.amazonaws.com"]},"Action":"sts:AssumeRole"}]}'
```

Kemudian, lampirkan kebijakan ke peran:

```
aws iam put-role-policy \
  --role-name my_e2e_iam_role_name \
  --policy-name e2e_iam_db_connect_policy \
  --policy-document '{

    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "rds-db:connect",
            "Resource": [
                "arn:aws:rds-db:us-east-2:account_id:dbuser:db_instance_resource_id/db_user_name_1",
                "arn:aws:rds-db:us-east-2:account_id:dbuser:db_instance_resource_id/db_user_name_2"
            ]
        }
    ]
}'
```

Dengan peran IAM dan izin yang dikonfigurasi untuk autentikasi end-to-end IAM, Anda sekarang dapat membuat proxy dengan set to. `DefaultAuthScheme` `IAM_AUTH` Proxy ini langsung mengautentikasi ke database menggunakan IAM tanpa memerlukan rahasia Secrets Manager. Untuk petunjuk, lihat [Membuat proxy untuk Amazon RDS ](rds-proxy-creating.md).

Saat menggunakan autentikasi end-to-end IAM, pastikan bahwa pengguna database Anda dikonfigurasi untuk autentikasi IAM seperti yang dijelaskan dalam. [Membuat akun basis data menggunakan autentikasi IAM](UsingWithRDS.IAMDBAuth.DBAccounts.md)

## Membuat kebijakan IAM untuk akses Secrets Manager
<a name="rds-proxy-iam-setup-steps"></a>

Untuk mengizinkan RDS Proxy mengambil kredenal database dari Secrets Manager, buat peran IAM dengan kebijakan yang memberikan izin yang diperlukan.

## Konsol
<a name="rds-proxy-iam-console"></a>

**Untuk membuat peran untuk mengakses rahasia Anda untuk digunakan dengan proxy Anda**

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Buat kebijakan izin untuk peran tersebut. Untuk langkah umum, lihat [Membuat kebijakan IAM (konsol)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html).

   Tempelkan kebijakan ini ke editor JSON dan buat perubahan berikut:
   + Ganti ID akun Anda sendiri.
   + Gantikan `us-east-2` dengan Wilayah tempat proxy akan berada.
   + Ganti nama rahasia dengan yang Anda buat. Untuk informasi selengkapnya, lihat [Menentukan kunci KMS dalam pernyataan kebijakan IAM](https://docs.aws.amazon.com/kms/latest/developerguide/cmks-in-iam-policies.html).
   + Ganti ID kunci KMS dengan yang Anda gunakan untuk mengenkripsi rahasia Secrets Manager, baik kunci default atau kunci Anda sendiri.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "secretsmanager:GetSecretValue",
               "Resource": [
                   "arn:aws:secretsmanager:us-east-2:111122223333:secret:secret_name_1",
                   "arn:aws:secretsmanager:us-east-2:111122223333:secret:secret_name_2"
               ]
           },
           {
               "Effect": "Allow",
               "Action": "kms:Decrypt",
               "Resource": "arn:aws:kms:us-east-2:111122223333:key/key_id",
               "Condition": {
                   "StringEquals": {
                       "kms:ViaService": "secretsmanager.us-east-2.amazonaws.com"
                   }
               }
           }
       ]
   }
   ```

------

1. Buat peran dan lampirkan kebijakan izin padanya. Untuk langkah umum, lihat [Membuat peran untuk mendelegasikan izin ke layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html). AWS 

   Untuk **jenis entitas Tepercaya**, pilih **AWS layanan**. Di bawah **Kasus penggunaan**, pilih **RDS** dan pilih **RDS - Tambahkan Peran ke Database** untuk kasus penggunaan.

1. Untuk **kebijakan Izin**, pilih kebijakan yang Anda buat.

1. Untuk **Pilih entitas tepercaya**, masukkan kebijakan kepercayaan berikut untuk peran tersebut:

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "",
         "Effect": "Allow",
         "Principal": {
           "Service": "rds.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

## AWS CLI
<a name="rds-proxy-iam-cli"></a>

Untuk membuat peran menggunakan AWS CLI, kirim permintaan berikut:

```
aws iam create-role \
  --role-name my_role_name \
  --assume-role-policy-document '{"Version": "2012-10-17",		 	 	 "Statement":[{"Effect":"Allow","Principal":{"Service":["rds.amazonaws.com"]},"Action":"sts:AssumeRole"}]}'
```

Kemudian, lampirkan kebijakan ke peran:

```
aws iam put-role-policy \
  --role-name my_role_name \
  --policy-name secret_reader_policy \
  --policy-document '{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "secretsmanager:GetSecretValue",
            "Resource": [
                "arn:aws:secretsmanager:us-east-2:account_id:secret:secret_name_1",
                "arn:aws:secretsmanager:us-east-2:account_id:secret:secret_name_2"
            ]
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "kms:Decrypt",
            "Resource": "arn:aws:kms:us-east-2:account_id:key/key_id",
            "Condition": {
                "StringEquals": {
                    "kms:ViaService": "secretsmanager.us-east-2.amazonaws.com"
                }
            }
        }
    ]
}'
```

Dengan peran dan izin IAM yang dikonfigurasi, Anda sekarang dapat membuat proxy dan mengaitkannya dengan peran ini. Hal ini memungkinkan proxy untuk mengambil kredensi database dengan aman dari AWS Secrets Manager dan mengaktifkan autentikasi IAM untuk aplikasi Anda. Untuk petunjuk, lihat [Membuat proxy untuk Amazon RDS ](rds-proxy-creating.md).

# Membuat proxy untuk Amazon RDS
<a name="rds-proxy-creating"></a>

Anda dapat mengaitkan proksi dengan instans DB RDS for MariaDB, RDS for Microsoft SQL Server, RDS for MySQL, atau RDS for PostgreSQL. 

## Konsol
<a name="rds-proxy-creating.console"></a>

**Untuk membuat proksi**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Proksi**. 

1. Pilih **Buat proksi**. 

1. Konfigurasikan pengaturan berikut untuk proxy Anda.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/rds-proxy-creating.html)

1.  Pilih **Buat proksi**. 

## AWS CLI
<a name="rds-proxy-creating.CLI"></a>

 Untuk membuat proxy dengan menggunakan AWS CLI, panggil [create-db-proxy](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-proxy.html)perintah dengan parameter yang diperlukan berikut: 
+ `--db-proxy-name`
+ `--engine-family`
+ `--role-arn`
+ `--vpc-subnet-ids`

Nilai `--engine-family` ini bersifat peka huruf besar-kecil.

**Example**  
Untuk Linux, macOS, atau Unix:  

```
aws rds create-db-proxy \
    --db-proxy-name proxy_name \
    --engine-family { MYSQL | POSTGRESQL | SQLSERVER } \
    --role-arn iam_role \
    --vpc-subnet-ids space_separated_list \
    [--default-auth-scheme { NONE | IAM_AUTH }] \
    [--auth ProxyAuthenticationConfig_JSON_string] \
    [--vpc-security-group-ids space_separated_list] \
    [--require-tls | --no-require-tls] \
    [--idle-client-timeout value] \
    [--debug-logging | --no-debug-logging] \
    [--endpoint-network-type { IPV4 | IPV6 | DUAL }] \
    [--target-connection-network-type { IPV4 | IPV6 }] \
    [--tags comma_separated_list]
```
Untuk Windows:  

```
aws rds create-db-proxy ^
    --db-proxy-name proxy_name ^
    --engine-family { MYSQL | POSTGRESQL | SQLSERVER } ^
    --role-arn iam_role ^
    --vpc-subnet-ids space_separated_list ^
    [--default-auth-scheme { NONE | IAM_AUTH }] ^
    [--auth ProxyAuthenticationConfig_JSON_string] ^
    [--vpc-security-group-ids space_separated_list] ^
    [--require-tls | --no-require-tls] ^
    [--idle-client-timeout value] ^
    [--debug-logging | --no-debug-logging] ^
    [--endpoint-network-type { IPV4 | IPV6 | DUAL }] ^
    [--target-connection-network-type { IPV4 | IPV6 }] ^
    [--tags comma_separated_list]
```

Berikut ini adalah contoh nilai JSON untuk opsi `--auth`. Contoh ini menerapkan jenis otentikasi klien yang berbeda untuk setiap rahasia.

```
[
  {
    "Description": "proxy description 1",
    "AuthScheme": "SECRETS",
    "SecretArn": "arn:aws:secretsmanager:us-west-2:123456789123:secret/1234abcd-12ab-34cd-56ef-1234567890ab",
    "IAMAuth": "DISABLED",
    "ClientPasswordAuthType": "POSTGRES_SCRAM_SHA_256"
  },
  
  {
    "Description": "proxy description 2",
    "AuthScheme": "SECRETS",
    "SecretArn": "arn:aws:secretsmanager:us-west-2:111122223333:secret/1234abcd-12ab-34cd-56ef-1234567890cd",
    "IAMAuth": "DISABLED",
    "ClientPasswordAuthType": "POSTGRES_MD5"
    
  },
  
  {
    "Description": "proxy description 3",
    "AuthScheme": "SECRETS",
    "SecretArn": "arn:aws:secretsmanager:us-west-2:111122221111:secret/1234abcd-12ab-34cd-56ef-1234567890ef",
    "IAMAuth": "REQUIRED"
  }
  
]
```

`--endpoint-network-type`Parameter menentukan versi IP untuk titik akhir proxy yang digunakan klien untuk terhubung ke proxy. Nilai yang valid adalah:
+ `IPV4`— Titik akhir proxy hanya menggunakan IPv4 alamat (default).
+ `IPV6`— Titik akhir proxy hanya menggunakan IPv6 alamat.
+ `DUAL`— Titik akhir proxy mendukung keduanya IPv4 dan IPv6 alamat.

`--target-connection-network-type`Parameter menentukan versi IP yang digunakan proxy untuk terhubung ke database target. Nilai yang valid adalah:
+ `IPV4`— Proxy terhubung ke database menggunakan IPv4 alamat (default).
+ `IPV6`— Proxy terhubung ke database menggunakan IPv6 alamat.

Untuk menggunakan IPv6 atau dual-stack tipe jaringan endpoint, VPC dan subnet Anda harus dikonfigurasi untuk mendukung jenis jaringan yang dipilih. Untuk menggunakan jenis jaringan koneksi IPv6 target, database Anda harus mendukung mode dual-stack.

**Tip**  
 Jika Anda belum mengetahui subnet yang akan digunakan IDs untuk `--vpc-subnet-ids` parameter, lihat [Menyiapkan prasyarat jaringan untuk RDS Proxy](rds-proxy-network-prereqs.md) contoh cara menemukannya. 

**catatan**  
Grup keamanan ini harus mengizinkan akses ke basis data yang terhubung ke proksi. Grup keamanan yang sama digunakan sebagai jalur masuk dari aplikasi ke proksi, dan jalur keluar dari proksi ke basis data. Misalnya, anggap saja Anda menggunakan grup keamanan yang sama untuk basis data dan proksi Anda. Dalam kasus ini, pastikan sumber daya dalam grup keamanan tersebut dapat berkomunikasi dengan sumber daya lain dalam grup keamanan yang sama.  
Saat menggunakan VPC bersama, Anda tidak dapat menggunakan grup keamanan default untuk VPC, atau grup keamanan milik akun lain. Pilih grup keamanan milik akun Anda. Jika belum ada, buat. Untuk informasi selengkapnya tentang batasan ini, lihat [Bekerja dengan berbagi VPCs](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-sharing.html#vpc-share-limitations). 

 Untuk membuat asosiasi yang tepat untuk proxy, Anda juga menggunakan [register-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/register-db-proxy-targets.html)perintah. Tentukan nama grup target `default`. Proksi RDS secara otomatis membuat grup target dengan nama ini saat Anda membuat setiap proksi. 

```
aws rds register-db-proxy-targets
    --db-proxy-name value
    [--target-group-name target_group_name]
    [--db-instance-identifiers space_separated_list]  # rds db instances, or
    [--db-cluster-identifiers cluster_id]        # rds db cluster (all instances)
```

## API RDS
<a name="rds-proxy-creating.API"></a>

 [Untuk membuat proxy RDS, panggil Create operasi Amazon RDS API. DBProxy](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBProxy.html) Anda melewati parameter dengan struktur [AuthConfig](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_AuthConfig.html)data. 

 Proksi RDS secara otomatis membuat grup target bernama `default` saat Anda membuat setiap proksi. Anda mengaitkan instance RDS DB cluster dengan grup target dengan memanggil [fungsi DBProxy](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RegisterDBProxyTargets.html) Register Targets. 

**penting**  
Bila Anda memilih **autentikasi IAM untuk skema otentikasi** default:  
Anda harus mengaktifkan autentikasi database IAM pada instance atau cluster database target Anda sebelum proxy berhasil tersambung.
Jika Anda memilih **Buat peran IAM**, **akun Database untuk bidang autentikasi IAM** diperlukan.
Jika Anda memilih peran IAM yang ada, konsol tidak secara otomatis memperbarui peran dengan izin koneksi database. Periksa apakah peran tersebut memiliki `rds-db:connect` izin yang diperlukan.

# Melihat proxy
<a name="rds-proxy-viewing"></a>

 Setelah Anda membuat satu atau beberapa proxy RDS, Anda dapat melihat dan mengelolanya di Konsol Manajemen AWS, API AWS CLI, atau RDS. Anda dapat meninjau detail konfigurasi mereka, memantau kinerja, dan menentukan proxy mana yang akan dimodifikasi atau dihapus sesuai kebutuhan.

Untuk mengaktifkan aplikasi database untuk merutekan lalu lintas melalui proxy, Anda harus menentukan titik akhir proxy dalam string koneksi.

## Konsol
<a name="rds-proxy-viewing.console"></a>

**Untuk melihat proxy di konsol**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Proksi**. 

1. Pilih nama proxy untuk melihat detailnya. 

1. Pada halaman detail, bagian **Grup target** menunjukkan bagaimana proxy ditautkan ke cluster DB instans RDS DB tertentu. Anda dapat menavigasi ke halaman grup target default untuk tampilan yang lebih dalam dari asosiasi ini, termasuk pengaturan konfigurasi yang ditentukan selama pembuatan proxy. Pengaturan ini mencakup persentase koneksi maksimum, batas waktu pinjam koneksi, keluarga mesin, dan filter penyematan sesi.

## CLI
<a name="rds-proxy-viewing.cli"></a>

 Untuk melihat proxy Anda menggunakan CLI, gunakan perintah. [describe-db-proxies](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxies.html) Secara default, permintaan mengembalikan semua proxy yang dimiliki oleh akun Anda AWS . Untuk melihat detail dari satu proksi, masukkan namanya dengan parameter `--db-proxy-name`. 

```
aws rds describe-db-proxies [--db-proxy-name proxy_name]
```

 Untuk melihat informasi lain yang terkait dengan proxy, gunakan perintah berikut. 

```
aws rds describe-db-proxy-target-groups  --db-proxy-name proxy_name

aws rds describe-db-proxy-targets --db-proxy-name proxy_name
```

 Gunakan urutan perintah berikut untuk melihat detail selengkapnya tentang hal-hal yang terkait dengan proksi: 

1.  Untuk mendapatkan daftar proxy, jalankan. [describe-db-proxies](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxies.html) 

1.  Untuk menampilkan parameter koneksi seperti persentase maksimum koneksi yang dapat digunakan proxy, jalankan [describe-db-proxy-target-groups](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxy-target-groups.html)`--db-proxy-name`. Gunakan nama proksi sebagai nilai parameter. 

1.  Untuk melihat detail cluster yang terkait dengan grup target yang dikembalikan, jalankan. [describe-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxy-targets.html) 

## API RDS
<a name="rds-proxy-viewing.api"></a>

 [Untuk melihat proxy Anda menggunakan RDS API, gunakan operasi Deskripsikan. DBProxies](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBProxies.html) Operasi ini akan menampilkan nilai dari jenis data [DBProxy](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DBProxy.html). 

 Untuk melihat detail pengaturan koneksi untuk proxy, gunakan pengidentifikasi proxy dari nilai pengembalian ini dengan DBProxy TargetGroups operasi [Deskripsikan](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBProxyTargetGroups.html). Operasi ini akan menampilkan nilai dari jenis data [DBProxyTargetGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DBProxyTargetGroup.html). 

 Untuk melihat instans RDS atau cluster Aurora DB yang terkait dengan proxy, gunakan operasi [DBProxyDeskripsikan Target](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBProxyTargets.html). Ia mengembalikan nilai-nilai tipe data [DBProxyTarget](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DBProxyTarget.html). 

# Terhubung ke basis data melalui Proksi RDS
<a name="rds-proxy-connecting"></a>

Cara terhubung ke instans DB RDS melalui proksi atau dengan menghubungkan ke basis data umumnya sama. Untuk informasi selengkapnya, lihat [Ikhtisar titik akhir proksi](rds-proxy-endpoints.md#rds-proxy-endpoints-overview). 

**Topics**
+ [

## Menghubungkan ke database menggunakan kredensi database
](#rds-proxy-connecting-native)
+ [

## Menghubungkan ke database menggunakan otentikasi IAM
](#rds-proxy-connecting-iam)
+ [

## Pertimbangan untuk menghubungkan ke Microsoft SQL Server
](#rds-proxy-connecting-sqlserver)
+ [

## Pertimbangan untuk menghubungkan ke PostgreSQL
](#rds-proxy-connecting-postgresql)

## Menghubungkan ke database menggunakan kredensi database
<a name="rds-proxy-connecting-native"></a>

 Gunakan langkah-langkah berikut untuk menyambung ke proxy menggunakan kredensil database: 

1.  Temukan titik akhir proksi. Di Konsol Manajemen AWS, Anda dapat menemukan titik akhir pada halaman detail untuk proxy yang sesuai. Dengan itu AWS CLI, Anda dapat menggunakan [describe-db-proxies](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxies.html)perintah. Contoh berikut menunjukkan caranya. 

   ```
   # Add --output text to get output as a simple tab-separated list.
   $ aws rds describe-db-proxies --query '*[*].{DBProxyName:DBProxyName,Endpoint:Endpoint}'
   [
       [
           {
               "Endpoint": "the-proxy.proxy-demo.us-east-1.rds.amazonaws.com",
               "DBProxyName": "the-proxy"
           },
           {
               "Endpoint": "the-proxy-other-secret.proxy-demo.us-east-1.rds.amazonaws.com",
               "DBProxyName": "the-proxy-other-secret"
           },
           {
               "Endpoint": "the-proxy-rds-secret.proxy-demo.us-east-1.rds.amazonaws.com",
               "DBProxyName": "the-proxy-rds-secret"
           },
           {
               "Endpoint": "the-proxy-t3.proxy-demo.us-east-1.rds.amazonaws.com",
               "DBProxyName": "the-proxy-t3"
           }
       ]
   ]
   ```

1.  Tentukan titik akhir sebagai parameter host dalam string koneksi untuk aplikasi klien Anda. Misalnya, tentukan titik akhir proksi sebagai nilai untuk opsi `mysql -h` atau opsi `psql -h`. 

1.  Masukkan nama dan kata sandi pengguna basis data yang sama seperti biasanya. 

## Menghubungkan ke database menggunakan otentikasi IAM
<a name="rds-proxy-connecting-iam"></a>

 Ketika Anda menggunakan otentikasi IAM dengan RDS Proxy, Anda memiliki dua opsi untuk otentikasi antara klien dan proxy Anda:
+ Siapkan pengguna database Anda untuk mengautentikasi dengan nama pengguna dan kata sandi biasa. RDS Proxy mengambil nama pengguna dan kredensi kata sandi dari Secrets Manager. Koneksi dari Proksi RDS ke basis data acuan tidak melewati IAM.
+ Anda juga dapat menggunakan autentikasi end-to-end IAM, yang menghubungkan ke database Anda melalui proxy menggunakan IAM tanpa memerlukan kredensi database.

 Untuk terhubung ke Proksi RDS menggunakan autentikasi IAM, gunakan prosedur koneksi umum yang sama seperti autentikasi IAM dengan instans DB RDS. Untuk informasi umum tentang cara menggunakan IAM, lihat [Keamanan di Amazon RDS Aurora](UsingWithRDS.md). Jika Anda menggunakan otentikasi end-to-end IAM, berikan plugin otentikasi IAM kepada pengguna DB Anda. Lihat [Membuat akun basis data menggunakan autentikasi IAM](UsingWithRDS.IAMDBAuth.DBAccounts.md).

 Perbedaan utama dalam penggunaan IAM untuk Proksi RDS meliputi: 
+ Dengan otentikasi IAM standar, pengguna database memiliki kredensi reguler dalam database. Anda dapat menyiapkan rahasia Secrets Manager yang berisi nama dan kata sandi pengguna ini, dan mengotorisasi Proksi RDS untuk mengambil kredensial dari Secrets Manager. Autentikasi IAM berlaku untuk koneksi antara program klien Anda dan proksi. Proksi kemudian melakukan autentikasi ke basis data menggunakan kredensial nama dan kata sandi pengguna yang diambil dari Secrets Manager.
+ Dengan autentikasi end-to-end IAM, Anda tidak perlu mengonfigurasi rahasia Secrets Manager untuk kredensi database. Autentikasi IAM berlaku untuk koneksi antara klien ke proxy dan proxy ke database.
+ Anda menentukan titik akhir proksi, bukan instans, klaster, atau titik akhir pembaca. Untuk detail tentang titik akhir proksi, lihat [Menghubungkan ke instans DB menggunakan autentikasi IAM](UsingWithRDS.IAMDBAuth.Connecting.md).
+ Pastikan Anda menggunakan Keamanan Lapisan Pengangkutan (TLS)/Lapisan Soket Aman (SSL) saat terhubung ke sebuah proksi menggunakan autentikasi IAM.

Anda dapat memberi pengguna tertentu akses ke proksi dengan mengubah kebijakan IAM. Berikut contohnya.

```
"Resource": "arn:aws:rds-db:us-east-2:1234567890:dbuser:prx-ABCDEFGHIJKL01234/db_user"
```

**Tip**  
Saat mengonfigurasi autentikasi IAM untuk koneksi Proxy RDS, ikuti panduan penting ini untuk menghindari masalah koneksi:  
Jangan berikan `rds_iam` peran sambil mempertahankan otentikasi kata sandi umum untuk pengguna atau peran database yang sama.
Ingat bahwa sementara klien terhubung ke RDS Proxy menggunakan autentikasi IAM, RDS Proxy selalu terhubung ke database menggunakan otentikasi kata sandi melalui Secrets Manager.
Jika Anda sering mengalami penghentian koneksi dan koneksi ulang, hapus semua `rds_iam` hibah yang ada dari pengguna atau peran dan gunakan hanya otentikasi kata sandi.
Pastikan kebijakan kata sandi Anda memenuhi persyaratan karakter aman SCRAM-SHA-256.
Mencampur IAM dan metode otentikasi kata sandi untuk pengguna database yang sama dapat menyebabkan ketidakstabilan koneksi.

## Pertimbangan untuk menghubungkan ke Microsoft SQL Server
<a name="rds-proxy-connecting-sqlserver"></a>

Untuk terhubung ke proksi menggunakan autentikasi IAM, Anda tidak menggunakan kolom kata sandi. Sebagai gantinya, Anda memasukkan properti token yang sesuai untuk setiap jenis driver basis data di kolom token. Misalnya, gunakan properti `accessToken` untuk JDBC, atau properti `sql_copt_ss_access_token` untuk ODBC. Atau gunakan `AccessToken` properti untuk SqlClient driver.NET. Anda tidak dapat menggunakan autentikasi IAM dengan klien yang tidak mendukung properti token.

Dalam beberapa kondisi, proksi tidak dapat berbagi koneksi basis data dan sebagai gantinya menyematkan koneksi dari aplikasi klien Anda ke proksi ke koneksi basis data khusus. Untuk informasi selengkapnya tentang cara kondisi ini, lihat [Menghindari menyematkan Proxy RDS](rds-proxy-pinning.md).

## Pertimbangan untuk menghubungkan ke PostgreSQL
<a name="rds-proxy-connecting-postgresql"></a>

Jika Anda membuat pengguna database PostgreSQL baru untuk menghubungkan ke RDS Proxy, pastikan bahwa Anda memberikan hak istimewa pengguna pada database. `CONNECT` Tanpa ini, pengguna tidak dapat membuat koneksi. Untuk informasi selengkapnya, lihat [Menambahkan pengguna database baru ke database PostgreSQL saat menggunakan RDS Proxy](rds-proxy-new-db-user.md#rds-proxy-new-db-user-pg).

Ketika klien memulai koneksi ke database PostgreSQL, ia mengirimkan pesan startup. Pesan ini berisi pasangan nama parameter dan string nilai. Untuk detailnya, lihat `StartupMessage` dalam [PostgreSQL message formats](https://www.postgresql.org/docs/current/protocol-message-formats.html) dalam dokumentasi PostgreSQL. 

Saat Anda terhubung melalui proxy RDS, pesan startup dapat menyertakan parameter berikut yang saat ini dikenali: 
+  `user` 
+  `database`

 Pesan startup juga bisa menyertakan parameter runtime tambahan berikut: 
+ `[application\$1name](https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-APPLICATION-NAME) `
+ `[client\$1encoding](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-CLIENT-ENCODING) `
+ `[DateStyle](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-DATESTYLE) `
+ `[TimeZone](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-TIMEZONE) `
+  `[extra\$1float\$1digits](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-EXTRA-FLOAT-DIGITS) `
+  `[ search\$1path ](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-SEARCH-PATH)` 

 Untuk informasi selengkapnya tentang pesan PostgreSQL, lihat [Frontend/Backend protocol](https://www.postgresql.org/docs/current/protocol.html) dalam dokumentasi PostgreSQL.

 Untuk PostgreSQL, jika Anda menggunakan JDBC, sebaiknya lakukan tindakan berikut untuk menghindari penyematan:
+ Atur parameter koneksi JDBC `assumeMinServerVersion` ke setidaknya `9.0` untuk menghindari penyematan. Tindakan ini dapat mencegah driver JDBC melakukan perjalanan roundtrip ekstra selama startup koneksi saat menjalankan `SET extra_float_digits = 3`. 
+ Atur parameter koneksi JDBC `ApplicationName` ke `any/your-application-name` untuk menghindari penyematan. Tindakan ini dapat mencegah driver JDBC melakukan roundtrip ekstra selama startup koneksi saat menjalankan `SET application_name = "PostgreSQL JDBC Driver"`. Perhatikan bahwa parameter JDBC adalah `ApplicationName`, tetapi parameter PostgreSQL `StartupMessage` adalah `application_name`.

Untuk informasi selengkapnya, lihat [Menghindari menyematkan Proxy RDS](rds-proxy-pinning.md). Untuk informasi selengkapnya tentang cara terhubung menggunakan JDBC, lihat [Connecting to the database](https://jdbc.postgresql.org/documentation/setup/) dalam dokumentasi PostgreSQL.

# Mengelola Proksi RDS
<a name="rds-proxy-managing"></a>

 Bagian ini berisi informasi tentang cara mengelola operasi dan konfigurasi Proksi RDS. Prosedur ini membantu aplikasi Anda memaksimalkan koneksi basis data dan mencapai penggunaan ulang koneksi maksimum. Semakin banyak yang dapat Anda manfaatkan dari penggunaan ulang koneksi, semakin banyak overhead CPU dan memori yang bisa dihemat. Pada akhirnya, tindakan ini dapat mengurangi latensi untuk aplikasi Anda dan memungkinkan basis data untuk mendedikasikan lebih banyak sumber dayanya untuk memproses permintaan aplikasi. 

**Topics**
+ [

# Mengubah Proksi RDS
](rds-proxy-modifying-proxy.md)
+ [

# Menambahkan pengguna database baru saat menggunakan RDS Proxy
](rds-proxy-new-db-user.md)
+ [

# Pindah dari otentikasi IAM standar ke otentikasi end-to-end IAM untuk RDS Proxy
](rds-proxy-iam-migration.md)
+ [

# Pertimbangan koneksi RDS Proxy
](rds-proxy-connections.md)
+ [

# Menghindari menyematkan Proxy RDS
](rds-proxy-pinning.md)
+ [

# Menghapus Proxy RDS
](rds-proxy-deleting.md)

# Mengubah Proksi RDS
<a name="rds-proxy-modifying-proxy"></a>

 Anda dapat mengubah pengaturan spesifik yang terkait dengan proksi setelah Anda membuat proksi. Caranya adalah dengan mengubah proksi itu sendiri, grup target terkaitnya, atau keduanya. Setiap proksi memiliki satu grup target terkait. 

## Konsol Manajemen AWS
<a name="rds-proxy-modifying-proxy.console"></a>

**penting**  
Nilai dalam kolom **Jenis autentikasi klien** dan **Autentikasi IAM** berlaku untuk semua rahasia Secrets Manager yang terkait dengan proksi ini. Untuk menentukan nilai yang berbeda untuk setiap rahasia, ubah proxy Anda dengan menggunakan AWS CLI atau API sebagai gantinya.

**Untuk mengubah pengaturan proksi**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1.  Di panel navigasi, pilih **Proksi**. 

1.  Dalam daftar proksi, pilih proksi yang pengaturannya ingin diubah atau kunjungi halaman detailnya. 

1.  Untuk **Tindakan**, pilih **Ubah**. 

1.  Masukkan atau pilih properti yang akan diubah. Anda dapat mengubah opsi berikut: 
   +  **ID proksi** – Mengganti nama proksi dengan memasukkan ID baru. 
   +  **Batas waktu koneksi klien idle** – Masukkan periode waktu untuk batas waktu koneksi klien idle. 
   +  **Peran IAM** – Mengubah peran IAM yang digunakan untuk mengambil rahasia dari Secrets Manager. 
**catatan**  
Anda tidak dapat membuat peran IAM baru jika Anda menyetel **skema otentikasi default ke autentikasi** **IAM**.
   +  **Rahasia Secrets Manager** – Menambahkan atau membuang rahasia Secrets Manager. Rahasia ini sesuai dengan nama dan kata sandi pengguna basis data. 
   +  **Jenis otentikasi klien** — Ubah jenis otentikasi untuk koneksi klien ke proxy. 
   +  **Autentikasi IAM** – Mewajibkan atau melarang autentikasi IAM untuk koneksi ke proksi. 
   +  **Skema otentikasi** default — Ubah skema otentikasi default yang digunakan proxy untuk koneksi klien ke proxy dan koneksi dari proxy ke database yang mendasarinya. 
   +  **Wajibkan Keamanan Lapisan Pengangkutan** – Mengaktifkan atau menonaktifkan persyaratan untuk Keamanan Lapisan Pengangkutan (TLS). 
   +  **Grup keamanan VPC** – Menambahkan atau menghapus grup keamanan VPC yang akan digunakan proksi. 
   +  **Aktifkan pencatatan log yang disempurnakan** – Mengaktifkan atau menonaktifkan pencatatan log yang disempurnakan. 

1.  Pilih **Ubah**. 

Jika pengaturan yang ingin diubah tidak tercantum, gunakan prosedur berikut untuk memperbarui grup target untuk proksi. *Grup target* yang terkait dengan proksi mengontrol pengaturan yang terkait dengan koneksi basis data fisik. Setiap proksi memiliki satu grup target terkait bernama `default`, yang dibuat secara otomatis dengan proksi. Anda tidak dapat mengganti nama grup target default.

 Anda hanya dapat mengubah grup target dari halaman detail proksi, bukan dari daftar pada halaman **Proksi**. 

**Untuk mengubah pengaturan grup target proksi**

1.  Pada halaman **Proksi**, buka halaman detail proksi. 

1.  Untuk **Grup target**, pilih tautan `default`. Saat ini, semua proksi memiliki satu grup target bernama `default`. 

1.  Pada halaman detail grup target **default**, pilih **Ubah**. 

1.  Pilih pengaturan baru untuk properti yang dapat diubah: 
   +  **Basis data** — Pilih instans atau klaster DB RDS. 
   +  **Koneksi maksimum kumpulan koneksi** – Sesuaikan persentase maksimum koneksi yang tersedia yang dapat digunakan proksi. 
   +  **Filter penyematan sesi** – (Opsional) Pilih filter penyematan sesi. Tindakan ini menghindari langkah-langkah keamanan default untuk me-multipleks koneksi basis data di seluruh koneksi klien. Saat ini, pengaturan tidak didukung untuk PostgreSQL. Satu-satunya pilihan adalah `EXCLUDE_VARIABLE_SETS`. 

     Mengaktifkan pengaturan ini dapat menyebabkan variabel sesi dari satu koneksi memengaruhi koneksi lain. Hal ini dapat menyebabkan kesalahan atau masalah ketepatan jika kueri Anda bergantung pada nilai variabel sesi yang ditetapkan di luar transaksi saat ini. Pertimbangkan untuk menggunakan opsi ini setelah memastikan bahwa aplikasi Anda sudah bisa berbagi koneksi basis data dengan aman di seluruh koneksi klien.

     Pola berikut bisa dianggap aman:
     + Pernyataan `SET` di mana tidak ada perubahan pada nilai variabel sesi efektif, yaitu tidak ada perubahan pada variabel sesi.
     + Anda mengubah nilai variabel sesi dan mengeksekusi pernyataan dalam transaksi yang sama.

     Untuk informasi selengkapnya, lihat [Menghindari menyematkan Proxy RDS](rds-proxy-pinning.md). 
   +  **Batas waktu peminjaman koneksi** – Sesuaikan interval batas waktu peminjaman koneksi. Pengaturan ini berlaku saat jumlah maksimum koneksi sudah digunakan semua untuk proksi. Pengaturan ini menentukan seberapa lama proksi harus menunggu koneksi menjadi tersedia sebelum menampilkan sebuah kesalahan batas waktu. 
   + **Kueri inisialisasi**. (Opsional) Tambahkan kueri inisialisasi, atau ubah yang sekarang. Anda dapat menentukan satu atau beberapa pernyataan SQL untuk proksi yang akan dijalankan saat membuka setiap koneksi basis data baru. Pengaturan ini biasanya digunakan dengan `SET` pernyataan untuk memastikan bahwa setiap koneksi memiliki pengaturan yang identik. Pastikan kueri yang Anda tambahkan valid. Untuk memasukkan beberapa variabel dalam satu `SET` pernyataan, gunakan pemisah koma. Contoh:

     ```
     SET variable1=value1, variable2=value2
     ```

     Untuk beberapa pernyataan, gunakan titik koma sebagai pemisah.

    Anda tidak dapat mengubah properti tertentu, seperti ID grup target dan mesin basis data. 

1.  Pilih **Ubah grup target**. 

## AWS CLI
<a name="rds-proxy-modifying-proxy.cli"></a>

 Untuk memodifikasi proxy menggunakan AWS CLI, gunakan perintah [modify-db-proxy](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy.html), [modify-db-proxy-target-group [deregister-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/deregister-db-proxy-targets.html)](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy-target-group.html), dan [register-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/register-db-proxy-targets.html). 

 Dengan perintah `modify-db-proxy`, Anda dapat mengubah properti seperti berikut: 
+  Kumpulan rahasia Secrets Manager yang digunakan proksi. 
+  Apakah TLS diperlukan. 
+  Batas waktu klien idle. 
+  Apakah harus mencatat informasi tambahan dari pernyataan SQL untuk debugging. 
+  Peran IAM yang digunakan untuk mengambil rahasia Secrets Manager. 
+  Grup keamanan yang digunakan proksi. 
+ Skema otentikasi default yang terkait dengan proxy.

 Contoh berikut menunjukkan cara mengganti nama proksi yang sudah ada. 

```
aws rds modify-db-proxy --db-proxy-name the-proxy --new-db-proxy-name the_new_name
```

Untuk mengubah pengaturan terkait koneksi atau mengganti nama grup target, gunakan perintah `modify-db-proxy-target-group`. Saat ini, semua proksi memiliki satu grup target bernama `default`. Saat Anda bekerja dengan grup target ini, Anda menentukan nama proxy dan `default` untuk nama grup target. Anda tidak dapat mengganti nama grup target default.

 Contoh berikut ini menunjukkan cara memeriksa pengaturan `MaxIdleConnectionsPercent` untuk proksi terlebih dahulu dan kemudian mengubahnya menggunakan grup target. 

```
aws rds describe-db-proxy-target-groups --db-proxy-name the-proxy

{
    "TargetGroups": [
        {
            "Status": "available",
            "UpdatedDate": "2019-11-30T16:49:30.342Z",
            "ConnectionPoolConfig": {
                "MaxIdleConnectionsPercent": 50,
                "ConnectionBorrowTimeout": 120,
                "MaxConnectionsPercent": 100,
                "SessionPinningFilters": []
            },
            "TargetGroupName": "default",
            "CreatedDate": "2019-11-30T16:49:27.940Z",
            "DBProxyName": "the-proxy",
            "IsDefault": true
        }
    ]
}

aws rds modify-db-proxy-target-group --db-proxy-name the-proxy --target-group-name default --connection-pool-config '
{ "MaxIdleConnectionsPercent": 75 }'

{
    "DBProxyTargetGroup": {
        "Status": "available",
        "UpdatedDate": "2019-12-02T04:09:50.420Z",
        "ConnectionPoolConfig": {
            "MaxIdleConnectionsPercent": 75,
            "ConnectionBorrowTimeout": 120,
            "MaxConnectionsPercent": 100,
            "SessionPinningFilters": []
        },
        "TargetGroupName": "default",
        "CreatedDate": "2019-11-30T16:49:27.940Z",
        "DBProxyName": "the-proxy",
        "IsDefault": true
    }
}
```

 Dengan perintah `deregister-db-proxy-targets` dan `register-db-proxy-targets`, Anda dapat mengubah instans DB RDS mana yang dikaitkan dengan proksi melalui grup targetnya. Saat ini, setiap proksi dapat terhubung ke satu instans DB RDS. Grup target melacak detail koneksi untuk semua instans DB RDS dalam sebuah konfigurasi Multi-AZ.

 Contoh berikut dimulai dengan proksi yang dikaitkan dengan klaster Aurora MySQL bernama `cluster-56-2020-02-25-1399`. Contoh ini menunjukkan cara mengubah proksi sehingga dapat terhubung ke klaster lainnya yang bernama `provisioned-cluster`. 

 Saat menggunakan instans DB RDS, Anda dapat menentukan opsi `--db-instance-identifier`. 

 Contoh berikut mengubah proksi Aurora MySQL. Proksi Aurora PostgreSQL memiliki port 5432. 

```
aws rds describe-db-proxy-targets --db-proxy-name the-proxy

{
    "Targets": [
        {
            "Endpoint": "instance-9814.demo.us-east-1.rds.amazonaws.com",
            "Type": "RDS_INSTANCE",
            "Port": 3306,
            "RdsResourceId": "instance-9814"
        },
        {
            "Endpoint": "instance-8898.demo.us-east-1.rds.amazonaws.com",
            "Type": "RDS_INSTANCE",
            "Port": 3306,
            "RdsResourceId": "instance-8898"
        },
        {
            "Endpoint": "instance-1018.demo.us-east-1.rds.amazonaws.com",
            "Type": "RDS_INSTANCE",
            "Port": 3306,
            "RdsResourceId": "instance-1018"
        },
        {
            "Type": "TRACKED_CLUSTER",
            "Port": 0,
            "RdsResourceId": "cluster-56-2020-02-25-1399"
        },
        {
            "Endpoint": "instance-4330.demo.us-east-1.rds.amazonaws.com",
            "Type": "RDS_INSTANCE",
            "Port": 3306,
            "RdsResourceId": "instance-4330"
        }
    ]
}

aws rds deregister-db-proxy-targets --db-proxy-name the-proxy --db-cluster-identifier cluster-56-2020-02-25-1399

aws rds describe-db-proxy-targets --db-proxy-name the-proxy

{
    "Targets": []
}

aws rds register-db-proxy-targets --db-proxy-name the-proxy --db-cluster-identifier provisioned-cluster

{
    "DBProxyTargets": [
        {
            "Type": "TRACKED_CLUSTER",
            "Port": 0,
            "RdsResourceId": "provisioned-cluster"
        },
        {
            "Endpoint": "gkldje.demo.us-east-1.rds.amazonaws.com",
            "Type": "RDS_INSTANCE",
            "Port": 3306,
            "RdsResourceId": "gkldje"
        },
        {
            "Endpoint": "provisioned-1.demo.us-east-1.rds.amazonaws.com",
            "Type": "RDS_INSTANCE",
            "Port": 3306,
            "RdsResourceId": "provisioned-1"
        }
    ]
}
```

## API RDS
<a name="rds-proxy-modifying-proxy.api"></a>

 [Untuk memodifikasi proxy menggunakan RDS API, Anda menggunakan operasi [Modify, [Modify DBProxy](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxyTargetGroup.html)](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxy.html), [Deregister DBProxy Targets DBProxyTargetGroup, dan Register Targets](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeregisterDBProxyTargets.html) operations. DBProxy](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RegisterDBProxyTargets.html) 

 Dengan `ModifyDBProxy`, Anda dapat mengubah properti seperti berikut: 
+  Kumpulan rahasia Secrets Manager yang digunakan proksi. 
+  Apakah TLS diperlukan. 
+  Batas waktu klien idle. 
+  Apakah harus mencatat informasi tambahan dari pernyataan SQL untuk debugging. 
+  Peran IAM yang digunakan untuk mengambil rahasia Secrets Manager. 
+  Grup keamanan yang digunakan proksi. 

Dengan`ModifyDBProxyTargetGroup`, Anda dapat memodifikasi pengaturan terkait koneksi. Saat ini, semua proksi memiliki satu grup target bernama `default`. Saat Anda bekerja dengan grup target ini, Anda menentukan nama proxy dan `default` untuk nama grup target. Anda tidak dapat mengganti nama grup target default.

 Dengan `DeregisterDBProxyTargets` dan `RegisterDBProxyTargets`, Anda dapat mengubah instans DB RDS mana yang dikaitkan dengan proksi melalui grup targetnya. Saat ini, setiap proksi dapat terhubung ke satu instans DB RDS . Grup target melacak detail koneksi untuk instans DB RDS dalam konfigurasi Multi-AZ . 

# Menambahkan pengguna database baru saat menggunakan RDS Proxy
<a name="rds-proxy-new-db-user"></a>

Dalam beberapa kasus, Anda dapat menambahkan pengguna basis data baru ke instans atau klaster DB RDS yang terkait dengan proksi. Lanjutkan tergantung pada apakah Anda menggunakan otentikasi standar dengan rahasia Secrets Manager atau autentikasi end-to-end IAM.

Jika Anda menggunakan otentikasi IAM standar, ikuti petunjuk ini:

1. Buat rahasia Secrets Manager yang baru, dengan menggunakan prosedur yang dijelaskan dalam [Menyiapkan kredensil database untuk RDS Proxy](rds-proxy-secrets-arns.md). 

1. Perbarui peran IAM untuk memberi Proksi RDS akses ke rahasia Secrets Manager baru. Untuk melakukannya, perbarui bagian sumber daya dari kebijakan peran IAM. 

1. Ubah Proksi RDS untuk menambahkan rahasia Secrets Manager baru di bagian **Rahasia Secrets Manager**.

1.  Jika pengguna baru menggantikan yang sudah ada, perbarui kredensial yang tersimpan dalam rahasia Secrets Manager proksi untuk pengguna yang sudah ada. 

Jika Anda menggunakan autentikasi end-to-end IAM, Anda perlu membuat pengguna database dan mengonfigurasi izin IAM. Untuk melakukan ini, jalankan langkah-langkah berikut:

1. Buat pengguna database baru di database Anda yang cocok dengan pengguna IAM atau nama peran yang ingin Anda gunakan untuk otentikasi.

1. Pastikan pengguna database dikonfigurasi dengan plugin otentikasi IAM di database. Lihat [Membuat akun basis data menggunakan autentikasi IAM](UsingWithRDS.IAMDBAuth.DBAccounts.md).

1. Perbarui kebijakan IAM untuk memberikan `rds-db:connect` izin kepada pengguna atau peran IAM, seperti yang dijelaskan dalam. [Membuat kebijakan IAM untuk autentikasi end-to-end IAM](rds-proxy-iam-setup.md#rds-proxy-iam-setup-e2e-steps)

1. Pastikan proxy Anda dikonfigurasi untuk menggunakan autentikasi IAM sebagai skema otentikasi default.

Dengan autentikasi end-to-end IAM, Anda tidak perlu mengelola kredensi database dalam rahasia Secrets Manager, karena kredensil IAM digunakan untuk otentikasi dari klien ke proxy dan dari proxy ke database. 

## Menambahkan pengguna database baru ke database PostgreSQL saat menggunakan RDS Proxy
<a name="rds-proxy-new-db-user-pg"></a>

Saat menambahkan pengguna baru ke database PostgreSQL Anda, jika Anda telah menjalankan perintah berikut:

```
REVOKE CONNECT ON DATABASE postgres FROM PUBLIC;
```

Berikan hak istimewa `CONNECT` kepada pengguna `rdsproxyadmin` sehingga pengguna dapat memantau koneksi pada basis data target. 

```
GRANT CONNECT ON DATABASE postgres TO rdsproxyadmin;
```

Anda juga dapat mengizinkan pengguna basis data target lainnya untuk melakukan pemeriksaan kondisi dengan mengubah `rdsproxyadmin` ke pengguna basis data dalam perintah di atas.

## Mengubah kata sandi untuk pengguna database saat menggunakan RDS Proxy
<a name="rds-proxy-changing-db-user-password"></a>

Dalam beberapa kasus, Anda dapat mengubah kata sandi untuk pengguna basis data dalam klaster Aurora yang terkait dengan proksi. Jika demikian, perbarui rahasia Secrets Manager yang sesuai dengan kata sandi baru.

Jika Anda menggunakan autentikasi end-to-end IAM, Anda tidak perlu memperbarui kata sandi apa pun di rahasia Secrets Manager.

# Pindah dari otentikasi IAM standar ke otentikasi end-to-end IAM untuk RDS Proxy
<a name="rds-proxy-iam-migration"></a>

 Jika saat ini Anda menggunakan otentikasi IAM standar untuk RDS Proxy, di mana klien mengautentikasi ke proxy menggunakan IAM tetapi proxy terhubung ke database menggunakan rahasia, Anda dapat bermigrasi ke otentikasi IAM di mana keduanya dan koneksi menggunakan otentikasi end-to-end IAM. client-to-proxy proxy-to-database 

**Untuk pindah ke otentikasi end-to-end IAM**

1. **Perbarui izin peran IAM Proxy RDS**

   Buat kebijakan izin proxy yang diperbarui yang mencakup Secrets Manager dan `rds:db-connect` izin:

   ```
   # Create updated proxy permission policy
   cat > updated-proxy-policy.json ≪ EOF
   ```

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "GetSecretsValue",
         "Action": [
           "secretsmanager:GetSecretValue"
         ],
         "Effect": "Allow",
         "Resource": [
           "arn:aws:secretsmanager:us-east-1:123456789012:secret:secretName-1234f"
         ]
       },
       {
         "Sid": "RdsDBConnect",
         "Action": [
           "rds-db:connect"
         ],
         "Effect": "Allow",
         "Resource": [
           "arn:aws:rds-db:us-east-1:123456789012:dbuser:cluster-ABCDEFGHIJKL01234/jane_doe"
         ]
       }
     ]
   }
   ```

   Perbarui proxy kebijakan peran Anda:

   ```
   aws iam put-role-policy \
               --role-name RDSProxyRole \
               --policy-name UpdatedProxyPermissions \
               --policy-document file://updated-proxy-policy.json
   ```

1. Ubah Proxy RDS Anda untuk mengaktifkan otentikasi end-to-end IAM

   ```
   aws rds modify-db-proxy \
     --db-proxy-name my-database-proxy \
     --default-auth-scheme IAM_AUTH \
     --region us-east-1
   ```

   Verifikasi bahwa status Proxy RDS **Tersedia** dan `DefaultAuthScheme` `IAM_AUTH` sebelum melanjutkan untuk memastikan nol downtime selama migrasi.

   ```
   aws rds describe-db-proxies --db-proxy-name my-database-proxy --region us-east-1
   ```

   Keluaran yang diharapkan

   ```
   {
     "DBProxies": [
       {
         "DBProxyName": "my-database-proxy",
         "DBProxyArn": "arn:aws:rds:us-east-1:123456789012:db-proxy:prx-0123456789abcdef",
         "Status": "available",
         ...
         "DefaultAuthScheme": "IAM_AUTH"
       }
     ]
   }
   ```

1. Aktifkan autentikasi IAM pada database

   ```
   aws rds modify-db-cluster \
     --db-cluster-identifier my-database-cluster \
     --enable-iam-database-authentication \
     --region us-east-1
   ```

1. Konfigurasikan pengguna basis data untuk otentikasi IAM

   Untuk RDS untuk PostgreSQL:

   ```
   GRANT rds_iam TO jane_doe;
   ```

   Untuk RDS untuk MySQL dan RDS untuk MariaDB:

   ```
   ALTER USER 'jane_doe' IDENTIFIED WITH AWSAuthenticationPlugin AS 'RDS';
   ALTER USER 'jane_doe'@'%' REQUIRE SSL;
   ```

1. Kode aplikasi klien Anda tidak perlu diubah. Proses koneksi tetap sama:

   Untuk RDS untuk PostgreSQL:

   ```
   # Generate authentication token
   export PGPASSWORD=$(aws rds generate-db-auth-token \
     --hostname my-database-proxy.proxy-ABCDEFGHIJKL01234.us-east-1.rds.amazonaws.com \
     --port 5432 \
     --username jane_doe \
     --region us-east-1)
   
   # Connect to database through proxy
   psql "host=my-database-proxy.proxy-ABCDEFGHIJKL01234.us-east-1.rds.amazonaws.com port=5432 user=jane_doe dbname=postgres password=$PGPASSWORD sslmode=require sslrootcert=us-east-1-bundle.pem"
   ```

   Untuk RDS untuk MySQL dan RDS untuk MariaDB:

   ```
   # Generate authentication token
   export MYSQL_PWD=$(aws rds generate-db-auth-token \
     --hostname my-database-proxy.proxy-ABCDEFGHIJKL01234.us-east-1.rds.amazonaws.com \
     --port 3306 \
     --username jane_doe \
     --region us-east-1)
   
   # Connect to database through proxy
   mysql -h my-database-proxy.proxy-ABCDEFGHIJKL01234.us-east-1.rds.amazonaws.com \
     -P 3306 \
     -u jane_doe \
     --ssl-ca=us-east-1-bundle.pem \
     --enable-cleartext-plugin
   ```

# Pertimbangan koneksi RDS Proxy
<a name="rds-proxy-connections"></a>

## Mengonfigurasi pengaturan koneksi
<a name="rds-proxy-connection-pooling-tuning"></a>

Untuk menyesuaikan pengumpulan koneksi Proksi RDS, Anda dapat mengubah pengaturan berikut:
+ [IdleClientTimeout](#rds-proxy-connection-pooling-tuning.idleclienttimeout)
+ [MaxConnectionsPercent](#rds-proxy-connection-pooling-tuning.maxconnectionspercent)
+ [MaxIdleConnectionsPercent](#rds-proxy-connection-pooling-tuning.maxidleconnectionspercent)
+ [ConnectionBorrowTimeout](#rds-proxy-connection-pooling-tuning.connectionborrowtimeout)

### IdleClientTimeout
<a name="rds-proxy-connection-pooling-tuning.idleclienttimeout"></a>

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 [Konsol Manajemen AWS](rds-proxy-modifying-proxy.md#rds-proxy-modifying-proxy.console). [Untuk mempelajari cara mengubah nilai `IdleClientTimeout` setelan, lihat perintah CLI [modify-db-proxy](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy.html)atau operasi API Modify. DBProxy](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxy.html)

### MaxConnectionsPercent
<a name="rds-proxy-connection-pooling-tuning.maxconnectionspercent"></a>

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 instans DB RDS 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
  + db.t3.small: 30
  + db.t3.medium atau lebih: 20

Untuk mempelajari cara mengubah nilai kolom **Batas waktu maksimum kumpulan koneksi** di konsol RDS, lihat [Konsol Manajemen AWS](rds-proxy-modifying-proxy.md#rds-proxy-modifying-proxy.console). [Untuk mempelajari cara mengubah nilai `MaxConnectionsPercent` setelan, lihat perintah CLI [modify-db-proxy-target-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy-target-group.html) atau operasi API Modify. DBProxy TargetGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxyTargetGroup.html)

 Untuk informasi tentang batas koneksi basis data, lihat [Jumlah maksimum koneksi basis data](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.MaxConnections). 

### MaxIdleConnectionsPercent
<a name="rds-proxy-connection-pooling-tuning.maxidleconnectionspercent"></a>

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. 

`MaxIdleConnectionsPercent`Nilai 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, jika`MaxConnectionsPercent`, adalah 80, maka nilai default `MaxIdleConnectionsPercent` adalah 40. Jika nilai `MaxConnectionsPercent` tidak ditentukan, maka untuk RDS untuk SQL Server, `MaxIdleConnectionsPercent` adalah 5, dan untuk semua mesin lainnya, defaultnya adalah 50.

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](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy-target-group.html) atau operasi API Modify. DBProxy TargetGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxyTargetGroup.html)

 Untuk informasi tentang batas koneksi basis data, lihat [Jumlah maksimum koneksi basis data](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.MaxConnections). 

### ConnectionBorrowTimeout
<a name="rds-proxy-connection-pooling-tuning.connectionborrowtimeout"></a>

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 [Konsol Manajemen AWS](rds-proxy-modifying-proxy.md#rds-proxy-modifying-proxy.console). [Untuk mempelajari cara mengubah nilai `ConnectionBorrowTimeout` setelan, lihat perintah CLI [modify-db-proxy-target-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy-target-group.html) atau operasi API Modify. DBProxy TargetGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxyTargetGroup.html)

## Koneksi klien dan basis data
<a name="rds-proxy-connection-life"></a>

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\$1connections** 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.

# Menghindari menyematkan Proxy RDS
<a name="rds-proxy-pinning"></a>

 Multiplexing akan lebih efisien saat permintaan basis data tidak bergantung pada informasi status dari permintaan sebelumnya. Dalam kasus ini, Proksi RDS dapat menggunakan kembali koneksi saat setiap transaksi selesai. Contoh informasi status tersebut mencakup sebagian besar variabel dan parameter konfigurasi yang dapat diubah melalui pernyataan `SET` atau `SELECT`. Secara default, transaksi SQL pada koneksi klien dapat bermultipleks antar-koneksi basis data acuan. 

 Koneksi ke proksi dapat memasukkan status yang disebut sebagai *penyematan*. Saat koneksi disematkan, setiap transaksi berikutnya akan menggunakan koneksi basis data acuan yang sama hingga sesi berakhir. Koneksi klien lainnya juga tidak dapat menggunakan kembali koneksi basis data tersebut hingga sesi berakhir. Sesi berakhir saat koneksi klien terputus. 

 Proksi RDS secara otomatis menyematkan koneksi klien ke koneksi DB tertentu saat mendeteksi perubahan sebuah status sesi yang tidak sesuai untuk sesi lainnya. Penyematan mengurangi efektivitas penggunaan kembali koneksi. Jika semua atau hampir semua koneksi Anda mengalami penyematan, pertimbangkan untuk mengubah kode aplikasi atau beban kerja untuk mengurangi kondisi yang menyebabkan penyematan. 

Misalnya, aplikasi Anda mengubah variabel sesi atau parameter konfigurasi. Dalam hal ini, pernyataan selanjutnya dapat mengandalkan variabel atau parameter baru yang berlaku. Oleh karena itu, saat Proksi RDS memproses permintaan untuk mengubah variabel sesi atau pengaturan konfigurasi, sesi ini akan disematkan ke koneksi DB. Dengan demikian, tahap sesi tetap berfungsi untuk semua transaksi berikutnya dalam sesi yang sama. 

 Untuk beberapa mesin basis data, aturan ini tidak berlaku untuk semua parameter yang dapat Anda atur. Proksi RDS melacak pernyataan dan variabel tertentu. Oleh karena itu, Proksi RDS tidak menyematkan sesi saat Anda mengubahnya. Dalam kasus ini, Proksi RDS hanya menggunakan kembali koneksi untuk sesi lain yang memiliki nilai yang sama untuk pengaturan tersebut. Untuk detail tentang apa yang dilacak Proksi RDS untuk mesin basis data, lihat berikut ini: 
+ [Apa yang Dilacak Proksi RDS untuk basis data RDS for SQL Server](#rds-proxy-pinning.sql-server-tracked-vars)
+ [Apa yang dilacak Proksi RDS untuk basis data RDS for MariaDB dan RDS for MySQL](#rds-proxy-pinning.mysql-tracked-vars)

## Apa yang Dilacak Proksi RDS untuk basis data RDS for SQL Server
<a name="rds-proxy-pinning.sql-server-tracked-vars"></a>

RDS Proxy melacak pernyataan SQL Server berikut:
+ `USE`
+ `SET ANSI_NULLS`
+ `SET ANSI_PADDING`
+ `SET ANSI_WARNINGS`
+ `SET ARITHABORT`
+ `SET CONCAT_NULL_YIELDS_NULL`
+ `SET CURSOR_CLOSE_ON_COMMIT`
+ `SET DATEFIRST`
+ `SET DATEFORMAT`
+ `SET LANGUAGE`
+ `SET LOCK_TIMEOUT`
+ `SET NUMERIC_ROUNDABORT`
+ `SET QUOTED_IDENTIFIER`
+ `SET TEXTSIZE`
+ `SET TRANSACTION ISOLATION LEVEL`

## Apa yang dilacak Proksi RDS untuk basis data RDS for MariaDB dan RDS for MySQL
<a name="rds-proxy-pinning.mysql-tracked-vars"></a>

RDS Proxy melacak pernyataan MariaDB dan MySQL berikut:
+ DROP DATABASE
+ DROP SCHEMA
+ USE

RDS Proxy melacak variabel MySQL dan MariaDB berikut:
+ `AUTOCOMMIT`
+ `AUTO_INCREMENT_INCREMENT`
+ `CHARACTER SET (or CHAR SET)`
+ `CHARACTER_SET_CLIENT`
+ `CHARACTER_SET_DATABASE`
+ `CHARACTER_SET_FILESYSTEM`
+ `CHARACTER_SET_CONNECTION`
+ `CHARACTER_SET_RESULTS`
+ `CHARACTER_SET_SERVER`
+ `COLLATION_CONNECTION`
+ `COLLATION_DATABASE`
+ `COLLATION_SERVER`
+ `INTERACTIVE_TIMEOUT`
+ `NAMES`
+ `NET_WRITE_TIMEOUT`
+ `QUERY_CACHE_TYPE`
+ `SESSION_TRACK_SCHEMA`
+ `SQL_MODE`
+ `TIME_ZONE`
+ `TRANSACTION_ISOLATION (or TX_ISOLATION)`
+ `TRANSACTION_READ_ONLY (or TX_READ_ONLY)`
+ `WAIT_TIMEOUT`

**catatan**  
RDS Proxy melacak perubahan pada `TRANSACTION_READ_ONLY` variabel `TRANSACTION_ISOLATION` dan saat Anda mengaturnya di lingkup sesi. Namun, jika Anda mengaturnya pada cakupan transaksi berikutnya, RDS Proxy pin koneksi. Perilaku ini berlaku apakah Anda menggunakan `SET` pernyataan atau `SET TRANSACTION` pernyataan untuk mengonfigurasi nilai-nilai ini.

## Meminimalkan penyematan
<a name="rds-proxy-pinning.minimizing"></a>

 Penyetelan performa untuk Proksi RDS meliputi upaya memaksimalkan penggunaan kembali koneksi tingkat transaksi (multiplexing) dengan meminimalkan penyematan. 

Anda dapat meminimalkan penyematan dengan melakukan hal berikut: 
+  Hindari permintaan basis data yang tidak perlu yang dapat menyebabkan penyematan. 
+  Atur variabel dan pengaturan konfigurasi secara konsisten di semua koneksi. Dengan demikian, sesi berikutnya cenderung menggunakan kembali koneksi yang memiliki pengaturan tertentu tersebut. 

   Akan tetapi, untuk pengaturan PostgreSQL, sebuah variabel bisa menimbulkan penyematan sesi. 
+  Untuk basis data keluarga MySQL, terapkan sebuah filter penyematan sesi ke proksi. Anda dapat mengecualikan jenis operasi tertentu dari penyematan sesi jika Anda mengetahui bahwa tindakan ini tidak memengaruhi operasi yang benar aplikasi Anda. 
+  Lihat seberapa sering penyematan terjadi dengan memantau CloudWatch metrik `DatabaseConnectionsCurrentlySessionPinned` Amazon. Untuk informasi tentang ini dan CloudWatch metrik lainnya, lihat[Memantau metrik Proxy RDS dengan Amazon CloudWatchMemantau Proxy RDS dengan CloudWatch](rds-proxy.monitoring.md). 
+  Jika menggunakan pernyataan `SET` untuk melakukan inisialisasi yang identik untuk setiap koneksi klien, Anda dapat melakukannya sekaligus mempertahankan multiplexing tingkat transaksi. Dalam kasus ini, Anda memindahkan pernyataan yang menyiapkan status sesi awal ke dalam kueri inisialisasi yang digunakan oleh proksi. Properti ini adalah string yang berisi satu atau beberapa pernyataan SQL, yang dipisahkan oleh titik koma. 

   Misalnya, Anda dapat menentukan kueri inisialisasi untuk proksi yang menetapkan parameter konfigurasi tertentu. Kemudian, Proksi RDS menerapkan pengaturan tersebut setiap kali koneksi baru untuk proksi itu disiapkan. Anda dapat menghapus pernyataan `SET` yang sesuai dari kode aplikasi, sehingga tidak mengganggu multiplexing tingkat transaksi. 

   Untuk metrik tentang seberapa sering penyematan terjadi pada proksi, lihat [Memantau metrik Proxy RDS dengan Amazon CloudWatchMemantau Proxy RDS dengan CloudWatch](rds-proxy.monitoring.md). 

## Kondisi yang menyebabkan penyematan untuk semua keluarga mesin
<a name="rds-proxy-pinning.all"></a>

 Proksi menyematkan sesi ke koneksi saat ini dalam situasi berikut ketika multiplexing dapat menyebabkan perilaku yang tidak terduga: 
+ Pernyataan apa pun dengan ukuran teks lebih dari 16 KB bisa menyebabkan proksi menyematkan sesi.

## Kondisi yang menyebabkan penyematan untuk RDS for Microsoft SQL Server
<a name="rds-proxy-pinning.sqlserver"></a>

 Untuk RDS for SQL Server, interaksi berikut dapat menyebabkan penyematan: 
+ Menggunakan beberapa kumpulan hasil yang aktif (MARS). Untuk informasi tentang MARS, lihat dokumentasi [SQL Server](https://docs.microsoft.com/en-us/sql/relational-databases/native-client/features/using-multiple-active-result-sets-mars?view=sql-server-ver16).
+ Menggunakan komunikasi koordinator transaksi terdistribusi (DTC).
+ Membuat tabel sementara, transaksi, kursor, atau pernyataan yang disiapkan.
+ Menggunakan pernyataan `SET` berikut:
  + `SET ANSI_DEFAULTS`
  + `SET ANSI_NULL_DFLT`
  + `SET ARITHIGNORE`
  + `SET DEADLOCK_PRIORITY`
  + `SET FIPS_FLAGGER`
  + `SET FMTONLY`
  + `SET FORCEPLAN`
  + `SET IDENTITY_INSERT`
  + `SET NOCOUNT`
  + `SET NOEXEC`
  + `SET OFFSETS`
  + `SET PARSEONLY`
  + `SET QUERY_GOVERNOR_COST_LIMIT`
  + `SET REMOTE_PROC_TRANSACTIONS`
  + `SET ROWCOUNT`
  + `SET SHOWPLAN_ALL`, `SHOWPLAN_TEXT`, dan `SHOWPLAN_XML`
  + `SET STATISTICS`
  + `SET XACT_ABORT`

## Kondisi yang menyebabkan penyematan untuk RDS for MariaDB dan RDS for MySQL
<a name="rds-proxy-pinning.mysql"></a>

 Untuk MariaDB dan MySQL, interaksi berikut juga dapat menyebabkan penyematan: 
+ Pernyataan kunci tabel eksplisit `LOCK TABLE`, `LOCK TABLES`, atau `FLUSH TABLES WITH READ LOCK` menyebabkan proksi menyematkan sesi. 
+ Membuat kunci bernama dengan menggunakan `GET_LOCK` menyebabkan proksi menyematkan sesi. 
+ Menyetel variabel pengguna atau sistem (dengan beberapa pengecualian) menyematkan sesi ke proxy. Jika ini secara signifikan membatasi penggunaan kembali koneksi, Anda dapat mengonfigurasi `SET` operasi untuk menghindari penyematan. Untuk melakukan ini, sesuaikan properti filter penyematan sesi. Untuk informasi selengkapnya, lihat [Membuat proxy untuk Amazon RDS ](rds-proxy-creating.md) dan [Mengubah Proksi RDS](rds-proxy-modifying-proxy.md).
+ Membuat tabel sementara menyebabkan proksi menyematkan sesi. Dengan begitu, konten tabel sementara dipertahankan sepanjang sesi, terlepas dari batasan transaksi. 
+ Memanggil `ROW_COUNT` dan `FOUND_ROWS` fungsi terkadang menyebabkan penyematan. 
+ Pernyataan yang disiapkan menyebabkan proksi menyematkan sesi. Aturan ini berlaku terlepas dari apakah pernyataan yang disiapkan menggunakan teks SQL maupun protokol biner. 
+ Proksi RDS tidak menyematkan koneksi saat Anda menggunakan SET LOCAL.
+ Memanggil prosedur tersimpan dan fungsi tersimpan tidak menyebabkan pinning. Proksi RDS tidak mendeteksi perubahan status sesi apa pun yang terjadi akibat perintah tersebut. Pastikan aplikasi Anda tidak mengubah status sesi di dalam rutinitas tersimpan jika Anda mengandalkan status sesi tersebut untuk bertahan di seluruh transaksi. Misalnya, Proxy RDS saat ini tidak kompatibel dengan prosedur tersimpan yang membuat tabel sementara yang bertahan di semua transaksi. 
+ Kueri dengan komentar yang dapat dieksekusi untuk MySQL (sintaks /\$1\$1 ... \$1/) atau MariaDB (sintaks /\$1M\$1 ... \$1/) menyebabkan penyematan. RDS Proxy tidak dapat mengurai SQL yang disematkan dalam komentar ini untuk melacak perubahan status sesi.

 Jika memiliki pengetahuan mendalam tentang perilaku aplikasi, Anda dapat menangani perilaku penyematan untuk pernyataan aplikasi tertentu. Untuk melakukannya, pilih opsi **Filter penyematan sesi** saat membuat proksi. Saat ini, Anda dapat memilih untuk tidak menggunakan penyematan sesi untuk pengaturan variabel sesi dan pengaturan konfigurasi. 

## Kondisi yang menyebabkan penyematan untuk RDS for PostgreSQL
<a name="rds-proxy-pinning.postgres"></a>

 Untuk PostgreSQL, interaksi berikut juga menyebabkan penyematan: 
+  Menggunakan `SET` perintah.
+  Menggunakan`PREPARE`,`DISCARD`,`DEALLOCATE`, atau `EXECUTE` perintah untuk mengelola pernyataan yang disiapkan.
+  Membuat urutan sementara, tabel, atau tampilan.
+  Mendeklarasikan kursor.
+  Membuang status sesi.
+  Mendengarkan di saluran notifikasi.
+  Memuat modul perpustakaan seperti`auto_explain`.
+  Memanipulasi urutan menggunakan fungsi seperti `nextval` dan. `setval`
+  Berinteraksi dengan kunci menggunakan fungsi seperti `pg_advisory_lock` dan`pg_try_advisory_lock`. 
**catatan**  
RDS Proxy tidak menyematkan kunci penasihat tingkat transaksi, khususnya,`pg_advisory_xact_lock`, `pg_advisory_xact_lock_shared``pg_try_advisory_xact_lock`, dan. `pg_try_advisory_xact_lock_shared`
+ Mengatur parameter, atau mengatur ulang parameter ke defaultnya. Secara khusus, menggunakan `SET` dan `set_config` perintah untuk menetapkan nilai default ke variabel sesi.
+ Memanggil prosedur tersimpan dan fungsi tersimpan tidak menyebabkan pinning. Proksi RDS tidak mendeteksi perubahan status sesi apa pun yang terjadi akibat perintah tersebut. Pastikan aplikasi Anda tidak mengubah status sesi di dalam rutinitas tersimpan jika Anda mengandalkan status sesi tersebut untuk bertahan di seluruh transaksi. Misalnya, Proxy RDS saat ini tidak kompatibel dengan prosedur tersimpan yang membuat tabel sementara yang bertahan di semua transaksi. 
+ Membuang status sesi. Jika Anda menggunakan pustaka penyatuan koneksi dengan `DISCARD ALL` kueri yang dikonfigurasi sebagai kueri reset, Proxy RDS menyematkan koneksi klien Anda saat rilis. Ini mengurangi efisiensi multiplexing proxy dan dapat menyebabkan hasil yang tidak terduga karena `DISCARD ALL` perintah dapat mengganggu manajemen status sesi.

# Menghapus Proxy RDS
<a name="rds-proxy-deleting"></a>

 Anda dapat menghapus proksi saat tidak lagi membutuhkannya. Atau Anda dapat menghapus proksi jika Anda merasa instans atau klaster DB yang terkait dengannya sedang dalam perbaikan. 

## Konsol Manajemen AWS
<a name="rds-proxy-deleting.console"></a>

**Untuk menghapus proksi**

1. Masuk ke Konsol Manajemen AWS dan buka RDS konsol Amazon di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1.  Di panel navigasi, pilih **Proksi**. 

1.  Pilih proksi yang akan dihapus dari daftar. 

1.  Pilih **Hapus Proksi**. 

## AWS CLI
<a name="rds-proxy-deleting.CLI"></a>

 Untuk menghapus proxy DB, gunakan AWS CLI perintah [delete-db-proxy](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-db-proxy.html). Untuk menghapus asosiasi terkait, gunakan juga [deregister-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/deregister-db-proxy-targets.html)perintah. 

```
aws rds delete-db-proxy --name proxy_name
```

```
aws rds deregister-db-proxy-targets
    --db-proxy-name proxy_name
    [--target-group-name target_group_name]
    [--target-ids comma_separated_list]       # or
    [--db-instance-identifiers instance_id]       # or
    [--db-cluster-identifiers cluster_id]
```

## RDS API
<a name="rds-proxy-deleting.API"></a>

 Untuk menghapus proxy DB, panggil RDS API fungsi Amazon [D eleteDBProxy](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBProxy.html). Untuk menghapus item dan asosiasi terkait, Anda juga memanggil fungsi [D eleteDBProxy TargetGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBProxyTargetGroup.html) dan [D eregisterDBProxy Target](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeregisterDBProxyTargets.html). 

# Bekerja dengan titik akhir Proksi Amazon RDS
<a name="rds-proxy-endpoints"></a>

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.

**Topics**
+ [

## Ikhtisar titik akhir proksi
](#rds-proxy-endpoints-overview)
+ [

## Batasan untuk titik akhir proksi
](#rds-proxy-endpoints-limits)
+ [

## Titik akhir proxy untuk cluster DB multi-AZ
](#rds-proxy-endpoints-overview-maz)
+ [

## Mengakses database RDS di seluruh VPCs
](#rds-proxy-cross-vpc)
+ [

# Membuat titik akhir proksi
](rds-proxy-endpoints.CreatingEndpoint.md)
+ [

# Melihat titik akhir proksi
](rds-proxy-endpoints.DescribingEndpoint.md)
+ [

# Mengubah titik akhir proksi
](rds-proxy-endpoints.ModifyingEndpoint.md)
+ [

# Menghapus titik akhir proksi
](rds-proxy-endpoints.DeletingEndpoint.md)

## Ikhtisar titik akhir proksi
<a name="rds-proxy-endpoints-overview"></a>

Bekerja dengan titik akhir Proksi RDS melibatkan jenis prosedur yang sama seperti dengan titik akhir instans RDS. Jika Anda belum terbiasa dengan titik akhir RDS, temukan informasi selengkapnya di [Menghubungkan ke instans DB yang menjalankan mesin basis data MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToInstance.html) dan [Menghubungkan ke instans DB yang menjalankan mesin basis data PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToPostgreSQLInstance.html). 

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-endpoints-limits). 

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 default proxy. read/write 

Setiap titik akhir proxy memiliki kumpulan CloudWatch metriknya sendiri. Pantau metrik untuk semua titik akhir proxy, titik akhir tertentu, atau semua read/write atau titik akhir proxy hanya-baca. Untuk informasi selengkapnya, lihat [Memantau metrik Proxy RDS dengan Amazon CloudWatchMemantau Proxy RDS dengan CloudWatch](rds-proxy.monitoring.md). 

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. 

## Batasan untuk titik akhir proksi
<a name="rds-proxy-endpoints-limits"></a>

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. 
+  Untuk jenis jaringan endpoint IPv6 atau dual-stack, VPC dan subnet Anda harus dikonfigurasi untuk mendukung jenis jaringan yang dipilih. 

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](https://aws.amazon.com/rds/proxy/pricing/).

## Titik akhir proxy untuk cluster DB multi-AZ
<a name="rds-proxy-endpoints-overview-maz"></a>

Secara default, titik akhir yang Anda sambungkan saat Anda menggunakan Proxy RDS dengan cluster DB multi-AZ memiliki kemampuan. read/write Akibatnya, titik akhir ini mengirimkan semua permintaan ke instans penulis klaster. Semua koneksi tersebut dihitung terhadap nilai `max_connections` untuk instans penulis. Jika proxy Anda dikaitkan dengan cluster DB multi-AZ, maka Anda dapat membuat endpoint tambahan read/write atau read-only untuk proxy tersebut.

Anda dapat menggunakan titik akhir hanya baca dengan proksi Anda untuk kueri hanya baca. Anda dapat melakukannya dengan cara yang sama seperti Anda menggunakan titik akhir pembaca untuk klaster DB multi-AZ. Tindakan ini membantu Anda memanfaatkan skalabilitas baca klaster Multi-AZ 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 DB Multi-AZ Anda sesuai kebutuhan. 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. 

### Titik akhir pembaca untuk klaster DB Multi-AZ
<a name="rds-proxy-endpoints-reader-stub"></a>

 Dengan Proksi RDS, Anda dapat membuat dan menggunakan titik akhir pembaca. Namun, titik akhir ini hanya berfungsi untuk proksi yang terkait dengan klaster DB Multi-AZ. Jika menggunakan RDS CLI atau API, Anda dapat melihat atribut `TargetRole` dengan nilai `READ_ONLY`. Anda dapat memanfaatkan proksi tersebut dengan mengubah target proksi dari instans DB RDS untuk klaster DB Multi-AZ.

 Anda dapat membuat dan terhubung ke titik akhir hanya-baca yang disebut *titik akhir pembaca* jika Anda menggunakan Proksi RDS dengan klaster DB Multi-AZ.

#### Cara titik akhir pembaca membantu ketersediaan aplikasi
<a name="rds-proxy-endpoints-reader-hapa"></a>

 Dalam beberapa kasus, instans pembaca di klaster Anda mungkin menjadi tidak tersedia. Jika itu terjadi, koneksi yang menggunakan titik akhir pembaca proksi DB dapat pulih lebih cepat daripada koneksi yang menggunakan titik akhir pembaca klaster Multi-AZ. Proksi RDS merutekan koneksi hanya 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 pembaca yang berbeda tanpa mengganggu aplikasi. Jika instans pembaca dalam status tidak tersedia, semua koneksi klien ke titik akhir instans tersebut ditutup. 

 Jika koneksi disematkan, kueri berikutnya pada koneksi akan menampilkan kesalahan. Namun, aplikasi Anda dapat langsung terhubung kembali ke titik akhir proksi yang sama. Proksi RDS merutekan koneksi ke instans DB pembaca yang berbeda yang ada dalam status `available`. Ketika menghubungkan kembali secara manual, Proksi RDS tidak memeriksa keterlambatan replikasi antara instans pembaca lama dan baru. 

 Jika klaster DB Multi-AZ Anda tidak memiliki instans pembaca yang tersedia, Proksi RDS akan mencoba terhubung ke titik akhir pembaca jika 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. 

#### Cara titik akhir pembaca membantu skalabilitas kueri
<a name="rds-proxy-endpoints-reader-scalability"></a>

 Titik akhir pembaca untuk proksi membantu skalabilitas kueri klaster DB Multi-AZ dengan cara berikut: 
+  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 Proksi RDS](rds-proxy.howitworks.md#rds-proxy-overview). 

## Mengakses database RDS di seluruh VPCs
<a name="rds-proxy-cross-vpc"></a>

 Secara default, semua komponen tumpukan teknologi RDS Anda berada dalam Amazon VPC yang sama. Misalnya, anggaplah bahwa aplikasi yang berjalan di instans Amazon EC2 terhubung ke instans DB Amazon RDS. Dalam hal ini, server aplikasi dan basis data keduanya harus berada dalam VPC yang sama. 

 Dengan Proksi RDS, Anda dapat menyiapkan akses ke instans DB Amazon RDS di satu VPC dari sumber daya di VPC lain, seperti instans 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 instans DB Amazon RDS. Namun, titik akhir lintas-VPC berada di VPC lain, bersama dengan sumber daya lain seperti instans EC2. Titik akhir lintas-VPC dikaitkan dengan subnet dan grup keamanan dari VPC yang sama sebagai EC2 dan sumber daya lainnya. 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: 

1.  Buat dua VPCs, atau pilih dua VPCs yang sudah Anda gunakan untuk pekerjaan . 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 [Mulai menggunakan Amazon RDS](CHAP_GettingStarted.md) untuk mengetahui langkah-langkah penyiapan VPC lain agar berhasil menggunakan RDS. Anda juga dapat memeriksa VPC yang ada di konsol Amazon EC2 untuk melihat jenis sumber daya yang dapat dihubungkan bersama. 

1.  Buat proksi DB yang terkait dengan instans Amazon RDS yang ingin Anda hubungkan. Ikuti prosedur di [Membuat proxy untuk Amazon RDS ](rds-proxy-creating.md). 

1.  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](rds-proxy-endpoints.CreatingEndpoint.md). 

1.  Pilih apakah akan membuat titik akhir read/write lintas-VPC atau hanya-baca. 

1.  Alih-alih menerima pengaturan default VPC yang sama dengan instans DB Amazon RDS, pilih VPC yang berbeda. VPC ini harus berada di AWS Wilayah yang sama dengan VPC tempat proxy berada. 

1.  Sekarang, alih-alih menerima pengaturan default untuk subnet dan grup keamanan dari VPC yang sama dengan instans DB Amazon RDS, buatlah pilihan baru. Buat pilihan ini berdasarkan subnet dan grup keamanan dari VPC yang Anda pilih. 

1. 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. Demikian pula, saat menggunakan otentikasi IAM, konfigurasi dan izin IAM Anda bekerja secara konsisten di semua titik akhir proxy, bahkan ketika titik akhir berbeda. VPCs Tidak diperlukan konfigurasi IAM tambahan per titik akhir.

1.  Tunggu sampai titik akhir baru untuk mencapai status **Tersedia**. 

1.  Buat catatan nama titik akhir lengkap. Ini adalah nilai yang berakhirkan `Region_name.rds.amazonaws.com` yang Anda berikan sebagai bagian dari string koneksi untuk aplikasi basis data Anda. 

1.  Akses titik akhir baru dari sumber daya di VPC yang sama dengan titik akhir. Cara mudah untuk menguji proses ini adalah membuat instans EC2 baru di VPC ini. Kemudian, masuk ke instans EC2 dan jalankan perintah `mysql` atau `psql` untuk terhubung dengan menggunakan nilai titik akhir dalam string koneksi Anda. 

# Membuat titik akhir proksi
<a name="rds-proxy-endpoints.CreatingEndpoint"></a>

Untuk membuat titik akhir proxy, ikuti petunjuk berikut:

## Konsol
<a name="rds-proxy-endpoints.CreatingEndpoint.CON"></a>

**Untuk membuat titik akhir proksi**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1.  Di panel navigasi, pilih **Proksi**. 

1.  Klik nama proksi yang titik akhir barunya ingin dibuat. 

    Halaman detail untuk proksi tersebut muncul. 

1.  Di bagian **Titik akhir proksi**, pilih **Buat titik akhir proksi**. 

    Jendela **Buat titik akhir proksi** akan muncul. 

1.  Untuk **Nama titik akhir proksi**, masukkan nama deskriptif pilihan Anda. 

1.  Untuk **peran Target**, pilih apakah akan membuat titik akhir read/write atau hanya-baca. 

    Koneksi yang menggunakan read/write titik akhir dapat melakukan segala jenis operasi, seperti pernyataan bahasa definisi data (DDL), pernyataan bahasa manipulasi data (DHTML), dan kueri. Titik akhir ini terhubung ke instans primer  klaster DB RDS. Anda dapat menggunakan read/write endpoint untuk operasi database umum ketika Anda hanya menggunakan satu titik akhir dalam aplikasi Anda. Anda juga dapat menggunakan read/write endpoint untuk operasi administratif, aplikasi pemrosesan transaksi online (OLTP), dan extract-transform-load (ETL) pekerjaan. 

    Koneksi yang menggunakan titik akhir hanya-baca hanya dapat melakukan kueri. Proksi RDS dapat menggunakan salah satu instans pembaca untuk setiap koneksi ke titik akhir. Dengan begitu, aplikasi intensif kueri dapat memanfaatkan kemampuan pengklasteran klaster DB Multi-AZ. Koneksi hanya-baca ini tidak membebankan overhead apa pun pada instans primer klaster. Dengan begitu, kueri pelaporan dan analisis Anda tidak akan memperlambat operasi menulis aplikasi OLTP Anda. 

1.  Untuk **Virtual Private Cloud (VPC)**, pilih default untuk mengakses titik akhir dari EC2 instance yang sama atau sumber daya lain yang biasanya digunakan untuk mengakses proxy atau database terkait. Untuk menyiapkan akses lintas-VPC untuk proksi ini, pilih VPC selain default. Untuk informasi selengkapnya tentang akses lintas-VPC, lihat [Mengakses database RDS di seluruh VPCs](rds-proxy-endpoints.md#rds-proxy-cross-vpc). 

1.  Untuk **jenis jaringan Endpoint**, pilih versi IP untuk titik akhir proxy. Opsi yang tersedia adalah:
   + **IPv4**— Titik akhir proxy hanya menggunakan IPv4 alamat (default).
   + **IPv6**— Titik akhir proxy hanya menggunakan IPv6 alamat.
   + **Dual-stack** — Titik akhir proxy mendukung keduanya IPv4 dan alamat. IPv6 

   Untuk menggunakan IPv6 atau dual-stack, VPC dan subnet Anda harus dikonfigurasi untuk mendukung jenis jaringan yang dipilih.

1.  Untuk **Subnet**, Proksi RDS mengisi subnet yang sama dengan proksi terkait secara default. Untuk membatasi akses ke titik akhir agar hanya sebagian dari rentang alamat VPC dapat terhubung, hapus satu subnet atau lebih. 

1.  Untuk **Grup keamanan VPC**, Anda dapat memilih grup keamanan yang sudah ada atau membuat grup keamanan baru. Proksi RDS mengisi grup keamanan atau beberapa grup keamanan yang sama sebagai proksi terkait secara default. Jika aturan masuk dan keluar proksi sesuai untuk titik akhir ini, pertahankan pilihan default. 

    Jika Anda memilih untuk membuat grup keamanan baru, tentukan nama grup keamanan tersebut di halaman ini. Kemudian edit pengaturan grup keamanan dari EC2 konsol nanti. 

1.  Pilih **Buat titik akhir proksi**. 

## AWS CLI
<a name="rds-proxy-endpoints.CreatingEndpoint.CLI"></a>

 Untuk membuat titik akhir proxy, gunakan AWS CLI [create-db-proxy-endpoint](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-proxy-endpoint.html)perintah. 

 Sertakan parameter-parameter yang diperlukan berikut: 
+  `--db-proxy-name value` 
+  `--db-proxy-endpoint-name value` 
+  `--vpc-subnet-ids list_of_ids`. Pisahkan subnet IDs dengan spasi. Anda tidak menentukan ID dari VPC itu sendiri. 

 Anda juga dapat menentukan parameter opsional berikut: 
+  `--target-role { READ_WRITE | READ_ONLY }`. Pengaturan default parameter ini adalah `READ_WRITE`. Ketika proksi dikaitkan dengan klaster DB Multi-AZ yang hanya berisi instans DB penulis, Anda tidak dapat menentukan `READ_ONLY`. Untuk informasi selengkapnya tentang tujuan penggunaan titik akhir hanya-baca dengan klaster DB Multi-AZ, lihat [Titik akhir pembaca untuk klaster DB Multi-AZ](rds-proxy-endpoints.md#rds-proxy-endpoints-reader-stub). 
+  `--vpc-security-group-ids value`. Pisahkan grup keamanan IDs dengan spasi. Jika Anda menghilangkan parameter ini, Proksi RDS menggunakan grup keamanan default untuk VPC. RDS Proxy menentukan VPC berdasarkan IDs subnet yang Anda tentukan untuk parameter. `--vpc-subnet-ids` 
+  `--endpoint-network-type { IPV4 | IPV6 | DUAL }`. Parameter ini menentukan versi IP untuk titik akhir proxy. Nilai default-nya `IPV4`. Untuk menggunakan `IPV6` atau`DUAL`, VPC dan subnet Anda harus dikonfigurasi untuk mendukung jenis jaringan yang dipilih. 

**Example**  
 Contoh berikut membuat titik akhir proksi bernama `my-endpoint`.   
Untuk Linux, macOS, atau Unix:  

```
aws rds create-db-proxy-endpoint \
  --db-proxy-name my-proxy \
  --db-proxy-endpoint-name my-endpoint \
  --vpc-subnet-ids subnet_id subnet_id subnet_id ... \
  --target-role READ_ONLY \
  --vpc-security-group-ids security_group_id \
  --endpoint-network-type DUAL
```
Untuk Windows:  

```
aws rds create-db-proxy-endpoint ^
  --db-proxy-name my-proxy ^
  --db-proxy-endpoint-name my-endpoint ^
  --vpc-subnet-ids subnet_id_1 subnet_id_2 subnet_id_3 ... ^
  --target-role READ_ONLY ^
  --vpc-security-group-ids security_group_id ^
  --endpoint-network-type DUAL
```

## API RDS
<a name="rds-proxy-endpoints.CreatingEndpoint.API"></a>

 Untuk membuat titik akhir proxy, gunakan tindakan RDS API [Create DBProxy Endpoint](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBProxyEndpoint.html). 

# Melihat titik akhir proksi
<a name="rds-proxy-endpoints.DescribingEndpoint"></a>

Untuk melihat titik akhir proxy yang ada, ikuti petunjuk ini:

## Konsol
<a name="rds-proxy-endpoints.DescribingEndpoint.CON"></a>

**Untuk melihat detail titik akhir proksi**

1. Masuk ke Konsol Manajemen AWS dan buka RDS konsol Amazon di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1.  Di panel navigasi, pilih **Proksi**. 

1.  Dalam daftar, pilih proksi yang titik akhirnya ingin dilihat. Klik nama proksi untuk melihat halaman detailnya. 

1.  Di bagian **Titik akhir proksi**, pilih titik akhir yang ingin dilihat. Klik namanya untuk melihat halaman detailnya. 

1.  Periksa parameter yang nilainya Anda minati. Anda dapat mengubah properti seperti berikut ini: 
   +  Apakah titik akhir ini baca/tulis atau hanya-baca.
   +  Alamat titik akhir yang Anda gunakan dalam string koneksi basis data.
   +  SubnetVPC, dan kelompok keamanan yang terkait dengan titik akhir.

## AWS CLI
<a name="rds-proxy-endpoints.DescribingEndpoint.CLI"></a>

 Untuk melihat satu atau beberapa titik akhir proxy, gunakan AWS CLI [describe-db-proxy-endpoints](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxy-endpoints.html)perintah.

 Anda dapat menyertakan parameter opsional berikut: 
+  `--db-proxy-endpoint-name` 
+  `--db-proxy-name` 

 Contoh berikut menjelaskan titik akhir proksi `my-endpoint`. 

**Example**  
Untuk Linux, macOS, atau Unix:  

```
aws rds describe-db-proxy-endpoints \
  --db-proxy-endpoint-name my-endpoint
```
Untuk Windows:  

```
aws rds describe-db-proxy-endpoints ^
  --db-proxy-endpoint-name my-endpoint
```

## RDS API
<a name="rds-proxy-endpoints.DescribingEndpoint.API"></a>

 Untuk mendeskripsikan satu atau lebih titik akhir proxy, gunakan operasi RDS API [D escribeDBProxy Endpoints](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBProxyEndpoints.html). 

# Mengubah titik akhir proksi
<a name="rds-proxy-endpoints.ModifyingEndpoint"></a>

Untuk mengubah titik akhir proxy Anda, ikuti petunjuk berikut:

## Konsol
<a name="rds-proxy-endpoints.ModifyingEndpoint.CON"></a>

**Untuk mengubah satu atau beberapa titik akhir proksi**

1. Masuk ke Konsol Manajemen AWS dan buka RDS konsol Amazon di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1.  Di panel navigasi, pilih **Proksi**. 

1. Dalam daftar, pilih proksi yang titik akhirnya ingin Anda ubah. Klik nama proksi untuk melihat halaman detailnya.

1.  Di bagian **Titik akhir proksi**, pilih titik akhir yang ingin Anda ubah. Anda dapat memilihnya dalam daftar, atau mengeklik namanya untuk melihat halaman detail. 

1.  Di halaman detail proksi, di bagian **Titik akhir proksi**, pilih **Edit**. Atau, di halaman detail titik akhir proksi, untuk **Tindakan**, pilih **Edit**.

1.  Ubah nilai parameter yang ingin dimodifikasi.

1.  Pilih **Simpan perubahan**. 

## AWS CLI
<a name="rds-proxy-endpoints.ModifyingEndpoint.CLI"></a>

 Untuk memodifikasi titik akhir proxy, gunakan AWS CLI [modify-db-proxy-endpoint](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy-endpoint.html)perintah dengan parameter yang diperlukan berikut: 
+  `--db-proxy-endpoint-name` 

 Tentukan perubahan ke properti titik akhir dengan menggunakan satu atau beberapa parameter berikut: 
+  `--new-db-proxy-endpoint-name` 
+  `--vpc-security-group-ids`. Pisahkan grup keamanan IDs dengan spasi. 

 Contoh berikut mengganti nama titik akhir proksi `my-endpoint` menjadi `new-endpoint-name`. 

**Example**  
Untuk Linux, macOS, atau Unix:  

```
aws rds modify-db-proxy-endpoint \
  --db-proxy-endpoint-name my-endpoint \
  --new-db-proxy-endpoint-name new-endpoint-name
```
Untuk Windows:  

```
aws rds modify-db-proxy-endpoint ^
  --db-proxy-endpoint-name my-endpoint ^
  --new-db-proxy-endpoint-name new-endpoint-name
```

## RDS API
<a name="rds-proxy-endpoints.ModifyingEndpoint.API"></a>

 Untuk memodifikasi titik akhir proxy, gunakan operasi RDS API [M odifyDBProxy Endpoint](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxyEndpoint.html). 

# Menghapus titik akhir proksi
<a name="rds-proxy-endpoints.DeletingEndpoint"></a>

 Untuk menghapus titik akhir proxy Anda, ikuti petunjuk berikut: 

**catatan**  
 Anda tidak dapat menghapus titik akhir proxy default yang dibuat RDS Proxy secara otomatis untuk setiap proxy.   
 Saat Anda menghapus proxy, RDS Proxy secara otomatis menghapus semua titik akhir terkait. 

## Konsol
<a name="rds-proxy-endpoints.DeleteEndpoint.console"></a>

**Untuk menghapus titik akhir proxy menggunakan Konsol Manajemen AWS**

1.  Di panel navigasi, pilih **Proksi**. 

1.  Dalam daftar, pilih proksi yang titik akhirnya ingin dihapus. Klik nama proksi untuk melihat halaman detailnya. 

1.  Di bagian **Titik akhir proksi**, pilih titik akhir yang ingin dihapus. Anda dapat memilih satu atau beberapa titik akhir dalam daftar, atau mengeklik nama titik akhir tunggal untuk melihat halaman detail. 

1.  Di halaman detail proksi, di bagian **Titik akhir proksi**, pilih **Hapus**. Atau, di halaman detail titik akhir proksi, untuk **Tindakan**, pilih **Hapus**. 

## AWS CLI
<a name="rds-proxy-endpoints.DeleteEndpoint.cli"></a>

 Untuk menghapus titik akhir proxy, jalankan [delete-db-proxy-endpoint](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-db-proxy-endpoint.html)perintah dengan parameter yang diperlukan berikut: 
+  `--db-proxy-endpoint-name` 

 Perintah berikut akan menghapus titik akhir proksi bernama `my-endpoint`. 

Untuk Linux, macOS, atau Unix:

```
aws rds delete-db-proxy-endpoint \
  --db-proxy-endpoint-name my-endpoint
```

Untuk Windows:

```
aws rds delete-db-proxy-endpoint ^
  --db-proxy-endpoint-name my-endpoint
```

## RDS API
<a name="rds-proxy-endpoints.DeleteEndpoint.api"></a>

 Untuk menghapus titik akhir proxy dengan RDSAPI, jalankan operasi [D eleteDBProxy Endpoint](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBProxyEndpoint.html). Tentukan nama titik akhir proksi untuk parameter `DBProxyEndpointName`. 

# Memantau metrik Proxy RDS dengan Amazon CloudWatch
<a name="rds-proxy.monitoring"></a>

 Anda dapat memantau Proxy RDS dengan menggunakan Amazon CloudWatch. CloudWatch mengumpulkan dan memproses data mentah dari proxy menjadi metrik yang dapat dibaca. near-real-time **Untuk menemukan metrik ini di CloudWatch konsol, pilih **Metrik**, lalu pilih **RDS**, dan pilih Metrik Per-Proxy.** Untuk informasi selengkapnya, lihat [Menggunakan CloudWatch metrik](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html) Amazon di Panduan CloudWatch Pengguna Amazon. 

**catatan**  
 RDS menerbitkan metrik ini untuk setiap EC2 instans Amazon yang mendasari yang terkait dengan proxy. Satu proxy dapat dilayani oleh lebih dari satu EC2 instance. Gunakan CloudWatch statistik untuk menggabungkan nilai untuk proxy di semua instance terkait.   
 Beberapa metrik ini mungkin tidak terlihat hingga koneksi berhasil disambungkan terlebih dahulu oleh proksi. 

 Dalam log Proksi RDS, setiap entri diawali dengan nama titik akhir proksi terkait. Nama ini dapat berupa nama yang Anda tentukan untuk titik akhir yang ditentukan pengguna, atau nama khusus `default` untuk titik akhir default proxy yang melakukan permintaan. read/write 

 Semua metrik Proksi RDS berada di dalam grup `proxy`. 

 Setiap titik akhir proxy memiliki CloudWatch metriknya sendiri. Anda dapat memantau penggunaan setiap titik akhir proksi secara independen. Untuk informasi selengkapnya tentang titik akhir proksi, lihat [Bekerja dengan titik akhir Proksi Amazon RDS](rds-proxy-endpoints.md). 

 Anda dapat menggabungkan beberapa nilai untuk setiap metrik menggunakan salah satu kumpulan dimensi berikut. Sebagai contoh, dengan menggunakan kumpulan dimensi `ProxyName`, Anda dapat menganalisis semua lalu lintas untuk proksi tertentu. Dengan menggunakan kumpulan dimensi lainnya, Anda dapat membagi beberapa metrik dengan cara yang berbeda. Anda dapat membagi metrik berdasarkan titik akhir atau basis data target yang berbeda dari setiap proxy, atau lalu lintas read/write dan read-only ke setiap database. 
+   Kumpulan dimensi 1: `ProxyName` 
+   Kumpulan dimensi 2: `ProxyName`, `EndpointName` 
+   Kumpulan dimensi 3: `ProxyName`, `TargetGroup`, `Target` 
+   Kumpulan dimensi 4: `ProxyName`, `TargetGroup`, `TargetRole` 


|  Metrik  |  Deskripsi  |  Periode yang valid  |  CloudWatch set dimensi  | 
| --- | --- | --- | --- | 
|  `AvailabilityPercentage`   |   Persentase waktu saat grup target tersedia dalam peran yang diindikasikan oleh dimensi. Metrik ini dilaporkan setiap menit. Statistik yang paling berguna untuk metrik ini adalah `Sum`.   |  1 menit  |  [Dimension set 4](#proxy-dimension-set-4)  | 
| ClientConnections  |   Jumlah koneksi klien saat ini. Metrik ini dilaporkan setiap menit. Statistik yang paling berguna untuk metrik ini adalah `Sum`.   |   1 menit   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| ClientConnectionsClosed  |   Jumlah koneksi klien yang ditutup. Statistik yang paling berguna untuk metrik ini adalah `Sum`.   |   1 menit ke atas   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| ClientConnectionsInSetup |  Jumlah koneksi klien saat ini terbuka tetapi belum menyelesaikan pengaturan. Metrik ini dilaporkan setiap menit. Statistik yang paling berguna untuk metrik ini adalah Sum.  |  1 menit  |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
|  `ClientConnectionsNoTLS`   |  Jumlah koneksi klien saat ini tanpa Keamanan Lapisan Pengangkutan (TLS). Metrik ini dilaporkan setiap menit. Statistik yang paling berguna untuk metrik ini adalah Sum.  |  1 menit |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
|  `ClientConnectionsReceived`   |   Jumlah permintaan koneksi klien yang diterima. Statistik yang paling berguna untuk metrik ini adalah `Sum`.   |   1 menit ke atas   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| ClientConnectionsSetupFailedAuth  |   Jumlah upaya koneksi klien yang gagal karena konfigurasi autentikasi atau TLS yang salah. Statistik yang paling berguna untuk metrik ini adalah `Sum`.   |   1 menit ke atas   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| ClientConnectionsSetupSucceeded  |   Jumlah koneksi klien yang berhasil dibangun dengan mekanisme autentikasi apa pun dengan atau tanpa TLS. Statistik yang paling berguna untuk metrik ini adalah `Sum`.   |   1 menit ke atas   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| ClientConnectionsTLS  |  Jumlah koneksi klien saat ini dengan TLS. Metrik ini dilaporkan setiap menit. Statistik yang paling berguna untuk metrik ini adalah Sum.  | 1 menit |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| DatabaseConnectionRequests  |   Jumlah permintaan untuk membuat koneksi basis data. Statistik yang paling berguna untuk metrik ini adalah `Sum`.   |   1 menit ke atas   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
|  `DatabaseConnectionRequestsWithTLS`   |  Jumlah permintaan untuk membuat koneksi basis data dengan TLS. Statistik yang paling berguna untuk metrik ini adalah Sum.  |  1 menit ke atas  |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
| DatabaseConnections  |   Jumlah koneksi basis data saat ini. Metrik ini dilaporkan setiap menit. Statistik yang paling berguna untuk metrik ini adalah `Sum`.   |   1 menit   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
|  `DatabaseConnectionsBorrowLatency`   |  Waktu dalam mikrodetik yang dibutuhkan bagi proksi yang dipantau untuk mendapatkan koneksi basis data. Statistik yang paling berguna untuk metrik ini adalah Sum.  |  1 menit ke atas  |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| DatabaseConnectionsCurrentlyBorrowed  |   Jumlah koneksi basis data saat ini yang berada dalam status meminjam. Metrik ini dilaporkan setiap menit. Statistik yang paling berguna untuk metrik ini adalah `Sum`.   |   1 menit   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
| DatabaseConnectionsCurrentlyInTransaction  |   Jumlah koneksi basis data saat ini dalam transaksi. Metrik ini dilaporkan setiap menit. Statistik yang paling berguna untuk metrik ini adalah `Sum`.   |   1 menit   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
| DatabaseConnectionsCurrentlySessionPinned  |   Jumlah koneksi basis data saat ini yang saat ini disematkan karena adanya operasi dalam permintaan klien yang mengubah status sesi. Metrik ini dilaporkan setiap menit. Statistik yang paling berguna untuk metrik ini adalah `Sum`.   |   1 menit   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
| DatabaseConnectionsSetupFailed  |   Jumlah permintaan koneksi basis data yang gagal. Statistik yang paling berguna untuk metrik ini adalah `Sum`.   |   1 menit ke atas   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
| DatabaseConnectionsSetupSucceeded  |   Jumlah koneksi basis data yang berhasil dibangun dengan atau tanpa TLS. Statistik yang paling berguna untuk metrik ini adalah `Sum`.   |   1 menit ke atas   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
|  `DatabaseConnectionsWithTLS`   |  Jumlah koneksi basis data saat ini dengan TLS. Metrik ini dilaporkan setiap menit. Statistik yang paling berguna untuk metrik ini adalah Sum.  |  1 menit  |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
| MaxDatabaseConnectionsAllowed  |   Jumlah maksimum koneksi basis data yang diperbolehkan. Metrik ini dilaporkan setiap menit. Statistik yang paling berguna untuk metrik ini adalah `Sum`.   |   1 menit   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
|  `QueryDatabaseResponseLatency`   |  Waktu dalam mikrodetik yang dibutuhkan basis data untuk merespons kueri. Statistik yang paling berguna untuk metrik ini adalah Average.  |  1 menit ke atas  |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
| QueryRequests  |   Jumlah kueri yang diterima. Kueri yang mencakup beberapa pernyataan yang dihitung sebagai satu kueri. Statistik yang paling berguna untuk metrik ini adalah `Sum`.   |   1 menit ke atas   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| QueryRequestsNoTLS  |  Jumlah kueri yang diterima dari koneksi non-TLS. Kueri yang mencakup beberapa pernyataan yang dihitung sebagai satu kueri. Statistik yang paling berguna untuk metrik ini adalah Sum.  |  1 menit ke atas  |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
|  `QueryRequestsTLS`   |  Jumlah kueri yang diterima dari koneksi TLS. Kueri yang mencakup beberapa pernyataan yang dihitung sebagai satu kueri. Statistik yang paling berguna untuk metrik ini adalah Sum.  |  1 menit ke atas  |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| QueryResponseLatency  |  Waktu dalam mikrodetik antara saat mendapatkan permintaan kueri dan saat proksi meresponsnya. Statistik yang paling berguna untuk metrik ini adalah Average.  |  1 menit ke atas  |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 

 Anda dapat menemukan log aktivitas Proxy RDS CloudWatch di bawah. Konsol Manajemen AWS Setiap proksi memiliki entri di halaman **Grup log**. 

**penting**  
 Log ini ditujukan untuk konsumsi manusia untuk tujuan pemecahan masalah dan bukan untuk akses terprogram. Format dan konten log dapat berubah sewaktu-waktu.   
 Khususnya, log lama tidak berisi awalan yang menunjukkan titik akhir untuk setiap permintaan. Dalam log yang lebih baru, setiap entri diawali dengan nama titik akhir proksi terkait. Nama ini dapat berupa nama yang Anda tentukan untuk titik akhir yang ditentukan pengguna, atau nama khusus `default` untuk permintaan yang menggunakan titik akhir default proksi. 

# Bekerja dengan acara RDS Proxy
<a name="rds-proxy.events"></a>

*Peristiwa* menunjukkan perubahan dalam lingkungan seperti lingkungan AWS atau layanan atau aplikasi dari mitra perangkat lunak sebagai layanan (SaaS). Atau bisa berupa salah satu aplikasi atau layanan kustom Anda sendiri. Misalnya, Amazon RDS Amazon menghasilkan peristiwa saat Anda membuat atau memodifikasi Proxy. RDS Amazon RDS mengirimkan acara ke Amazon EventBridge dalam waktu hampir nyata. Berikut ini, Anda dapat menemukan daftar acara RDS Proxy yang dapat Anda berlangganan dan contoh acara RDS Proxy. 

Berikut informasi selengkapnya tentang cara bekerja dengan peristiwa:
+ Untuk petunjuk tentang cara melihat peristiwa dengan menggunakan Konsol Manajemen AWS, AWS CLI, atau RDSAPI, lihat [Melihat RDS acara Amazon](USER_ListEvents.md).
+ Untuk mempelajari cara mengonfigurasi Amazon RDS untuk mengirim acara EventBridge, lihat. [Membuat aturan yang dipicu pada peristiwa Amazon RDS](rds-cloud-watch-events.md) 

## RDSAcara proxy
<a name="rds-proxy.events.list"></a>

Tabel berikut menunjukkan kategori acara dan daftar peristiwa ketika RDS Proxy adalah tipe sumber.


|  Kategori  | RDSID acara |  Pesan  |  Catatan  | 
| --- | --- | --- | --- | 
| perubahan konfigurasi | RDS- EVENT -0204  |  RDSproxy DB yang dimodifikasi *name*.  | Tidak ada | 
| perubahan konfigurasi | RDS- EVENT -0207  |  RDSmemodifikasi titik akhir proxy DB *name*.  | Tidak ada | 
| perubahan konfigurasi | RDS- EVENT -0213  |  RDSmendeteksi penambahan instans DB dan secara otomatis menambahkannya ke grup target proxy DB *name*.  | Tidak ada | 
|  perubahan konfigurasi  | RDS- EVENT -0214  |  RDSterdeteksi penghapusan instans DB *name* dan secara otomatis menghapusnya dari grup target *name* dari proxy DB *name*.  | Tidak ada | 
|  perubahan konfigurasi  | RDS- EVENT -0215  |  RDSterdeteksi penghapusan cluster DB *name* dan secara otomatis menghapusnya dari grup target *name* dari proxy DB *name*.  | Tidak ada | 
|  pembuatan  | RDS- EVENT -0203  |  RDSdibuat proxy DB *name*.  | Tidak ada | 
|  pembuatan  | RDS- EVENT -0206  |  RDStitik akhir yang dibuat *name* untuk proxy DB *name*.  | Tidak ada | 
| penghapusan | RDS- EVENT -0205  |  RDSproxy DB dihapus *name*.  | Tidak ada | 
|  penghapusan  | RDS- EVENT -0208  |  RDStitik akhir dihapus *name* untuk proxy DB *name*.  | Tidak ada | 
|  kegagalan  | RDS- EVENT -0243  |  RDSgagal menyediakan kapasitas untuk proxy *name* karena tidak ada cukup alamat IP yang tersedia di subnet Anda: *name*. Untuk memperbaiki masalah ini, pastikan subnet Anda memiliki jumlah minimum alamat IP yang tidak digunakan seperti yang direkomendasikan dalam dokumentasi RDS Proxy.  |  Untuk menentukan jumlah yang direkomendasikan untuk kelas instans Anda, lihat [Perencanaan untuk kapasitas alamat IP](rds-proxy-network-prereqs.md#rds-proxy-network-prereqs.plan-ip-address).  | 
|  kegagalan | RDS- EVENT -0275  |  RDSmembatasi beberapa koneksi ke proxy DB *name*. Jumlah permintaan koneksi simultan dari klien ke proxy telah melampaui batas.  | Tidak ada | 

Berikut ini adalah contoh peristiwa RDS Proxy dalam JSON format. Acara menunjukkan bahwa RDS memodifikasi titik akhir bernama `my-endpoint` RDS Proxy bernama`my-rds-proxy`. ID acara adalah RDS - EVENT -0207.

```
{
  "version": "0",
  "id": "68f6e973-1a0c-d37b-f2f2-94a7f62ffd4e",
  "detail-type": "RDS DB Proxy Event",
  "source": "aws.rds",
  "account": "123456789012",
  "time": "2018-09-27T22:36:43Z",
  "region": "us-east-1",
  "resources": [
     "arn:aws:rds:us-east-1:123456789012:db-proxy:my-rds-proxy"
  ],
  "detail": {
    "EventCategories": [
      "configuration change"
    ],
    "SourceType": "DB_PROXY",
    "SourceArn": "arn:aws:rds:us-east-1:123456789012:db-proxy:my-rds-proxy",
    "Date": "2018-09-27T22:36:43.292Z",
    "Message": "RDS modified endpoint my-endpoint of DB Proxy my-rds-proxy.",
    "SourceIdentifier": "my-endpoint",
    "EventID": "RDS-EVENT-0207"
  }
}
```

# Pemecahan masalah untuk Proksi RDS
<a name="rds-proxy.troubleshooting"></a>

 Setelah itu, Anda dapat menemukan ide pemecahan masalah untuk beberapa masalah Proxy RDS umum dan informasi tentang CloudWatch log untuk RDS Proxy. 

 Dalam log Proksi RDS, setiap entri diawali dengan nama titik akhir proksi terkait. Nama ini bisa berupa nama yang Anda tentukan untuk titik akhir yang ditentukan pengguna. Atau, itu bisa menjadi nama khusus `default` untuk titik akhir default proxy yang melakukan read/write permintaan. Untuk informasi selengkapnya tentang titik akhir proksi, lihat [Bekerja dengan titik akhir Proksi Amazon RDS](rds-proxy-endpoints.md). 

**Topics**
+ [

## Memverifikasi konektivitas untuk proksi
](#rds-proxy-verifying)
+ [

## Masalah dan solusi umum
](#rds-proxy-diagnosis)
+ [

## Memecahkan masalah Proxy RDS dengan RDS untuk MySQL
](#rds-proxy-MySQL-troubleshooting)
+ [

## Memecahkan masalah Proxy RDS dengan RDS untuk PostgreSQL
](#rds-proxy-PostgreSQL-troubleshooting)

## Memverifikasi konektivitas untuk proksi
<a name="rds-proxy-verifying"></a>

 Anda dapat menggunakan perintah berikut untuk memverifikasi bahwa semua komponen seperti proksi, basis data, dan instans komputasi dalam koneksi dapat berkomunikasi satu sama lain. 

 Periksa proxy itu sendiri menggunakan [describe-db-proxies](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxies.html)perintah. Periksa juga kelompok target terkait menggunakan perintah [describe-db-proxy-target-groups](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxy-target-groups.html). Periksa apakah detail target cocok dengan instans DB RDS yang ingin dikaitkan dengan proksi. Gunakan perintah seperti berikut. 

```
aws rds describe-db-proxies --db-proxy-name $DB_PROXY_NAME
aws rds describe-db-proxy-target-groups --db-proxy-name $DB_PROXY_NAME
```

 Untuk mengonfirmasi bahwa proxy dapat terhubung ke database yang mendasarinya, periksa target yang ditentukan dalam grup target menggunakan [describe-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxy-targets.html)perintah. Gunakan perintah seperti berikut. 

```
aws rds describe-db-proxy-targets --db-proxy-name $DB_PROXY_NAME
```

 Output dari [describe-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxy-targets.html)perintah termasuk `TargetHealth` bidang. Anda dapat memeriksa kolom `State`, `Reason`, dan `Description` di dalam `TargetHealth` untuk memeriksa apakah proksi dapat berkomunikasi dengan instans DB acuan. 
+  Nilai `State` dari `AVAILABLE` mengindikasikan bahwa proksi dapat terhubung ke instans DB. 
+  Nilai `State` dari `UNAVAILABLE` mengindikasikan masalah koneksi sementara atau permanen. Dalam kasus ini, periksa kolom `Reason` dan `Description`. Misalnya, jika `Reason` memiliki nilai `PENDING_PROXY_CAPACITY`, coba hubungkan lagi setelah proksi menyelesaikan operasi penskalaan. Jika `Reason` memiliki nilai `UNREACHABLE`, `CONNECTION_FAILED`, atau `AUTH_FAILURE`, gunakan penjelasan dari kolom `Description` untuk membantu Anda mendiagnosis masalah. 
+  Kolom `State` mungkin memiliki nilai `REGISTERING` dalam waktu yang singkat sebelum berubah ke `AVAILABLE` atau `UNAVAILABLE`. 

 Jika perintah Netcat (`nc`) berikut berhasil, Anda dapat mengakses titik akhir proxy dari EC2 instance atau sistem lain tempat Anda masuk. Perintah ini melaporkan kegagalan jika Anda tidak berada di VPC yang sama dengan proksi dan basis data terkait. Anda mungkin dapat masuk secara langsung ke basis data tanpa berada di VPC yang sama. Akan tetapi, Anda tidak dapat masuk ke proksi kecuali Anda berada di VPC yang sama. 

```
nc -zx MySQL_proxy_endpoint 3306

nc -zx PostgreSQL_proxy_endpoint 5432
```

 Anda dapat menggunakan perintah berikut untuk memastikan bahwa EC2 instance Anda memiliki properti yang diperlukan. Secara khusus, VPC untuk EC2 instance harus sama dengan VPC untuk cluster yang terhubung dengan proxy. 

```
aws ec2 describe-instances --instance-ids your_ec2_instance_id
```

 Periksa rahasia Secrets Manager yang digunakan oleh proksi. 

```
aws secretsmanager list-secrets
aws secretsmanager get-secret-value --secret-id your_secret_id
```

 Pastikan kolom `SecretString` yang ditampilkan oleh `get-secret-value` dienkode sebagai string JSON yang mencakup kolom `username` dan `password`. Contoh berikut menunjukkan format kolom `SecretString`. 

```
{
  "ARN": "some_arn",
  "Name": "some_name",
  "VersionId": "some_version_id",
  "SecretString": '{"username":"some_username","password":"some_password"}',
  "VersionStages": [ "some_stage" ],
  "CreatedDate": some_timestamp
}
```

Saat memecahkan masalah autentikasi IAM, verifikasi hal berikut:
+ Database memiliki otentikasi IAM diaktifkan.
+ Proxy dikonfigurasi dengan skema otentikasi yang benar.
+ Kebijakan IAM dalam peran IAM yang diberikan kepada proxy memberikan `rds-db:connect` izin yang diperlukan ke database yang sesuai dan nama penggunanya.
+ Untuk autentikasi end-to-end IAM, ada pengguna database yang cocok dengan nama pengguna atau peran IAM.
+ SSL/TLS diaktifkan untuk koneksi.

## Masalah dan solusi umum
<a name="rds-proxy-diagnosis"></a>

Bagian ini menjelaskan beberapa masalah umum dan solusi potensial saat menggunakan Proksi RDS.

Setelah menjalankan perintah CLI `aws rds describe-db-proxy-targets`, jika deskripsi `TargetHealth` menyatakan `Proxy does not have any registered credentials`, verifikasi hal-hal berikut:
+ Ada kredensial yang terdaftar bagi pengguna untuk mengakses proksi.
+ Peran IAM untuk mengakses rahasia Secrets Manager yang digunakan oleh proksi valid.

Anda mungkin mengalami peristiwa RDS berikut saat membuat atau terhubung ke proksi DB.


| Kategori | ID peristiwa RDS | Deskripsi | 
| --- | --- | --- | 
|  kegagalan  | RDS-EVENT-0243 | RDS gagal menyediakan kapasitas untuk proksi karena tidak ada alamat IP yang cukup yang tersedia di subnet Anda. Untuk memperbaiki masalah ini, pastikan subnet Anda memiliki jumlah minimum alamat IP yang tidak digunakan. Untuk menentukan jumlah yang direkomendasikan untuk kelas instans Anda, lihat [Perencanaan untuk kapasitas alamat IP](rds-proxy-network-prereqs.md#rds-proxy-network-prereqs.plan-ip-address). | 
|  kegagalan  | RDS-EVENT-0275 |  RDS membatasi beberapa koneksi ke proxy DB. *name* Jumlah permintaan koneksi simultan dari klien ke proxy telah melampaui batas.  | 

 Anda mungkin mengalami masalah berikut saat membuat proksi baru atau terhubung ke proksi. 


|  Kesalahan  |  Penyebab atau solusi  | 
| --- | --- | 
|   `403: The security token included in the request is invalid`   |  Pilih peran IAM yang sudah ada, bukan memilih untuk membuat peran baru.  | 

## Memecahkan masalah Proxy RDS dengan RDS untuk MySQL
<a name="rds-proxy-MySQL-troubleshooting"></a>

 Anda mungkin mengalami masalah berikut saat terhubung ke proksi MySQL. 


|  Kesalahan  |  Penyebab atau solusi  | 
| --- | --- | 
|  ERROR 1040 (HY000): Connections rate limit exceeded (limit\$1value)  |  Tingkat permintaan koneksi dari klien ke proksi telah melampaui batas.  | 
|  ERROR 1040 (HY000): IAM authentication rate limit exceeded  |  Jumlah permintaan simultan dengan autentikasi IAM dari klien ke proksi telah melampaui batas.  | 
|  ERROR 1040 (HY000): Number simultaneous connections exceeded (limit\$1value)  |  Jumlah permintaan koneksi simultan dari klien ke proksi telah melampaui batas.  | 
|   `ERROR 1045 (28000): Access denied for user 'DB_USER'@'%' (using password: YES)`   |  Rahasia Secrets Manager yang digunakan oleh proksi tidak cocok dengan nama pengguna dan kata sandi dari pengguna basis data yang sudah ada. Perbarui kredensial dalam rahasia Secrets Manager, atau pastikan pengguna basis data ada dan memiliki kata sandi yang sama dengan yang ada dalam rahasia.  | 
|  ERROR 1105 (HY000): Unknown error  |  Terjadi kesalahan yang tidak diketahui.  | 
|  ERROR 1231 (42000): Variable ''character\$1set\$1client'' can't be set to the value of value  |   Nilai yang diatur untuk parameter `character_set_client` tidak valid. Misalnya, nilai `ucs2` tidak valid karena dapat merusak server MySQL Anda.   | 
|  ERROR 3159 (HY000): This RDS Proxy requires TLS connections.  |   Anda mengaktifkan pengaturan **Wajibkan Keamanan Lapisan Pengangkutan** dalam proksi, tetapi koneksi Anda menyertakan parameter `ssl-mode=DISABLED` dalam klien MySQL. Lakukan salah satu dari langkah berikut:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/rds-proxy.troubleshooting.html)  | 
|  ERROR 2026 (HY000): SSL connection error: Internal Server Error  |   Proses jabat tangan TLS dengan proksi gagal. Beberapa kemungkinan alasannya meliputi:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/rds-proxy.troubleshooting.html)  | 
|  ERROR 9501 (HY000): Timed-out waiting to acquire database connection  |   Waktu tunggu proksi untuk memperoleh koneksi basis data habis. Beberapa kemungkinan alasannya meliputi:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/rds-proxy.troubleshooting.html)  | 

## Memecahkan masalah Proxy RDS dengan RDS untuk PostgreSQL
<a name="rds-proxy-PostgreSQL-troubleshooting"></a>

 Anda mungkin mengalami masalah berikut saat terhubung ke proksi PostgreSQL. 


|  Kesalahan  |  Penyebab  |  Solusi  | 
| --- | --- | --- | 
|   `ERROR 28000: IAM authentication is allowed only with SSL connections.`   |   Pengguna mencoba terhubung ke basis data menggunakan autentikasi IAM dengan pengaturan `sslmode=disable` dalam klien PostgreSQL.   |   Pengguna harus terhubung ke basis data menggunakan pengaturan minimum `sslmode=require` dalam klien PostgreSQL. Untuk informasi lebih lanjut, lihat dokumentasi [Dukungan PostgreSQL SSL](https://www.postgresql.org/docs/current/libpq-ssl.html).   | 
|  `ERROR 28000: This RDS proxy has no credentials for the role role_name. Check the credentials for this role and try again.`   |   Tidak ada rahasia Secrets Manager untuk peran ini.   |   Tambahkan rahasia Secrets Manager untuk peran ini. Untuk informasi selengkapnya, lihat [Mengkonfigurasi otentikasi IAM untuk RDS Proxy](rds-proxy-iam-setup.md).  | 
|  `ERROR 28000: RDS supports only IAM, MD5, or SCRAM authentication.`   |   Klien basis data yang digunakan untuk terhubung ke proksi menggunakan mekanisme autentikasi yang saat ini tidak didukung oleh proksi.   |   Jika Anda tidak menggunakan otentikasi IAM, gunakan otentikasi kata sandi MD5 atau SCRAM.   | 
|  `ERROR 28000: A user name is missing from the connection startup packet. Provide a user name for this connection.`   |   Klien basis data yang digunakan untuk terhubung ke proksi tidak mengirimkan nama pengguna saat mencoba membangun koneksi.   |   Pastikan untuk menentukan sebuah nama pengguna saat menyiapkan koneksi ke proksi menggunakan klien PostgreSQL pilihan Anda.   | 
|  `ERROR 28000: IAM is allowed only with SSL connections.`   |   Klien mencoba untuk terhubung menggunakan autentikasi IAM, tetapi SSL tidak diaktifkan.   |   Aktifkan SSL dalam klien PostgreSQL.   | 
|  `ERROR 28000: This RDS Proxy requires TLS connections.`   |   Pengguna mengaktifkan opsi **Wajibkan Keamanan Lapisan Pengangkutan**, tetapi mencoba untuk terhubung dengan `sslmode=disable` dalam klien PostgreSQL.   |   Untuk memperbaiki kesalahan ini, lakukan salah satu tindakan berikut:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/rds-proxy.troubleshooting.html)  | 
|  `ERROR 28P01: IAM authentication failed for user user_name. Check the IAM token for this user and try again.`   |   Kesalahan ini mungkin terjadi karena alasan berikut:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/rds-proxy.troubleshooting.html)  |   Untuk memperbaiki kesalahan ini, lakukan tindakan berikut:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/rds-proxy.troubleshooting.html)  | 
|  `ERROR 28P01: The password that was provided for the role role_name is wrong.`   |   Kata sandi untuk peran ini tidak cocok dengan rahasia Secrets Manager.   |   Periksa rahasia peran ini dalam Secrets Manager untuk melihat apakah kata sandi sama dengan yang digunakan dalam klien PostgreSQL Anda.   | 
|  `ERROR 28P01: The IAM authentication failed for the role role_name. Check the IAM token for this role and try again.`   |   Terjadi masalah dengan token IAM yang digunakan untuk autentikasi IAM.   |   Buat token autentikasi baru dan gunakan dalam koneksi baru.   | 
|  `ERROR 0A000: Feature not supported: RDS Proxy supports only version 3.0 of the PostgreSQL messaging protocol.`   |   Klien PostgreSQL yang digunakan untuk terhubung ke proksi menggunakan protokol yang lebih lama dari 3.0.   |   Gunakan klien PostgreSQL yang lebih baru yang mendukung protokol olah pesan 3.0. Jika Anda menggunakan CLI `psql` PostgreSQL, gunakan versi yang lebih baru atau yang setara dengan 7.4.   | 
|  `ERROR 0A000: Feature not supported: RDS Proxy currently doesn't support streaming replication mode.`   |   Klien PostgreSQL yang digunakan untuk terhubung ke proksi mencoba menggunakan mode replikasi streaming, yang saat ini tidak didukung oleh Proksi RDS.   |   Nonaktifkan mode replikasi streaming dalam klien PostgreSQL yang digunakan untuk menghubungkan.   | 
|  `ERROR 0A000: Feature not supported: RDS Proxy currently doesn't support the option option_name.`   |   Melalui pesan startup, klien PostgreSQL yang digunakan untuk terhubung ke proksi meminta opsi yang saat ini tidak didukung oleh Proksi RDS.   |   Nonaktifkan opsi yang ditampilkan sebagai tidak didukung dari pesan di atas dalam klien PostgreSQL yang digunakan untuk menghubungkan.   | 
|  `ERROR 53300: The IAM authentication failed because of too many competing requests.`   |   Jumlah permintaan simultan dengan autentikasi IAM dari klien ke proksi telah melampaui batas.   |   Kurangi tingkat pembangunan koneksi menggunakan autentikasi IAM dari klien PostgreSQL.   | 
|  `ERROR 53300: The maximum number of client connections to the proxy exceeded number_value.`   |   Jumlah permintaan koneksi simultan dari klien ke proksi telah melampaui batas.   |   Kurangi jumlah koneksi aktif dari klien PostgreSQL ke proksi RDS ini.   | 
|  `ERROR 53300: Rate of connection to proxy exceeded number_value.`   |   Tingkat permintaan koneksi dari klien ke proksi telah melampaui batas.   |   Kurangi tingkat pembangunan koneksi dari klien PostgreSQL.   | 
|  `ERROR XX000: Unknown error.`   |   Terjadi kesalahan yang tidak diketahui.   |   Hubungi AWS Support untuk menyelidiki masalah ini.   | 
|  `ERROR 08000: Timed-out waiting to acquire database connection.`   |   Proxy timed-out menunggu untuk memperoleh koneksi database dalam durasi yang ditentukan oleh pengaturan. `ConnectionBorrowTimeout` Beberapa kemungkinan alasannya meliputi:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/rds-proxy.troubleshooting.html)  |   Kemungkinan solusinya sebagai berikut:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/rds-proxy.troubleshooting.html)  | 
|  `ERROR XX000: Request returned an error: database_error.`   |   Koneksi basis data yang dibangun dari proksi menampilkan kesalahan.   |   Solusinya bergantung dari kesalahan basis data tertentu. Salah satu contohnya adalah: `Request returned an error: database "your-database-name" does not exist`. Ini berarti bahwa nama basis data yang ditentukan tidak ada di server basis data. Atau, nama pengguna yang digunakan sebagai sebuah nama basis data (jika nama basis data tidak ditentukan) tidak ada di server.   | 
|  `ERROR 53300: The IAM authentication failed because of too many competing requests.`  |  Jumlah permintaan simultan dengan autentikasi IAM dari klien ke proksi telah melampaui batas.  |  Kurangi tingkat pembangunan koneksi menggunakan autentikasi IAM dari klien PostgreSQL.  | 
|  `ERROR 28000: Enable IAM authentication for the client connection to the proxy and try again.`  |  Proxy RDS tidak dapat terhubung ke database karena autentikasi IAM tidak diaktifkan untuk koneksi klien ke proxy. Ini terjadi ketika `DefaultAuthScheme` parameter proxy diatur ke `IAM_AUTH` dengan pengguna terdaftar, tetapi klien menggunakan otentikasi kata sandi alih-alih otentikasi IAM.  |  Aktifkan autentikasi IAM untuk koneksi klien ke proxy dan coba lagi.  | 
|  `ERROR 28000: Configure IAM authentication as the DefaultAuthScheme in your proxy and try again.`  |  Proxy RDS tidak dapat terhubung ke database karena `DefaultAuthScheme` tidak disetel ke`IAM_AUTH`. `DefaultAuthScheme`Parameter proxy diatur ke`NONE`, tetapi klien mencoba menggunakan otentikasi IAM.  |  Setel `DefaultAuthScheme` ke `IAM_AUTH` proxy Anda dan coba lagi.  | 

### Pemecahan masalah database yang dihapus `postgres`
<a name="rds-proxy-PostgreSQL-troubleshooting.postgresDBDelete"></a>

Jika Anda salah menghapus `postgres` database dari instance Anda, Anda perlu mengembalikan database untuk mengembalikan konektivitas ke instance Anda. Jalankan perintah berikut dalam instans DB Anda:

```
CREATE DATABASE postgres;
GRANT CONNECT ON DATABASE postgres TO rdsproxyadmin;
```

# Penggunaan Proksi RDS dengan AWS CloudFormation
<a name="rds-proxy-cfn"></a>

 Anda dapat menggunakan Proksi RDS dengan AWS CloudFormation. Hal ini membantu Anda membuat grup sumber daya terkait. Grup semacam ini bisa mencakup proksi yang dapat terhubung ke instans DB Amazon RDS. Dukungan Proksi RDS dalam CloudFormation melibatkan dua jenis registri baru: `DBProxy` dan `DBProxyTargetGroup`. 

 Daftar berikut menunjukkan contoh templat CloudFormation untuk Proksi RDS. 

```
Resources:
 DBProxy:
   Type: AWS::RDS::DBProxy
   Properties:
     DBProxyName: CanaryProxy
     EngineFamily: MYSQL
     RoleArn:
      Fn::ImportValue: SecretReaderRoleArn
     Auth:
       - {AuthScheme: SECRETS, SecretArn: !ImportValue ProxySecret, IAMAuth: DISABLED}
     VpcSubnetIds:
       Fn::Split: [",", "Fn::ImportValue": SubnetIds]

 ProxyTargetGroup: 
   Type: AWS::RDS::DBProxyTargetGroup
   Properties:
     DBProxyName: CanaryProxy
     TargetGroupName: default
     DBInstanceIdentifiers: 
       - Fn::ImportValue: DBInstanceName
   DependsOn: DBProxy
```

 Untuk informasi selengkapnya tentang sumber daya dalam sampel ini, lihat [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html)dan [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxytargetgroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxytargetgroup.html). 

 Untuk informasi selengkapnya tentang sumber daya yang dapat dibuat menggunakan CloudFormation, lihat [Referensi jenis sumber daya RDS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_RDS.html). 