

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

# 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;
```