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
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, bisa menjadi nama khusus default
untuk titik akhir default proksi yang melakukan permintaan baca/tulis. Untuk informasi selengkapnya tentang titik akhir proksi, lihat Bekerja dengan titik akhir Amazon RDS Proxy.
Memverifikasi konektivitas untuk proksi
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-proxiesperintah. Periksa juga kelompok target terkait menggunakan perintah describe-db-proxy-target-groups. Periksa apakah detail target cocok dengan instans DB RDS yang ingin dikaitkan dengan proksi. Gunakan perintah seperti berikut ini.
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-targetsperintah. Gunakan perintah seperti berikut.
aws rds describe-db-proxy-targets --db-proxy-name $DB_PROXY_NAME
Output dari describe-db-proxy-targetsperintah 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
dariAVAILABLE
mengindikasikan bahwa proksi dapat terhubung ke instans DB. -
Nilai
State
dariUNAVAILABLE
mengindikasikan masalah koneksi sementara atau permanen. Dalam kasus ini, periksa kolomReason
danDescription
. Misalnya, jikaReason
memiliki nilaiPENDING_PROXY_CAPACITY
, coba hubungkan lagi setelah proksi menyelesaikan operasi penskalaan. JikaReason
memiliki nilaiUNREACHABLE
,CONNECTION_FAILED
, atauAUTH_FAILURE
, gunakan penjelasan dari kolomDescription
untuk membantu Anda mendiagnosis masalah. -
Kolom
State
muungkin memiliki nilaiREGISTERING
dalam waktu yang singkat sebelum berubah keAVAILABLE
atauUNAVAILABLE
.
Jika perintah Netcat berikut (nc
) berhasil, Anda dapat mengakses titik akhir proksi dari instans EC2 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 -zxPostgreSQL_proxy_endpoint
5432
Anda dapat menggunakan perintah berikut untuk memastikan bahwa instans EC2 Anda memiliki properti yang dibutuhkan. Khususnya, VPC untuk instans EC2 harus sama dengan VPC untuk yang terhubung dengan proksi.
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
}
Masalah dan solusi umum
Bagian ini menjelaskan beberapa masalah umum dan solusi potensial saat menggunakan Proksi RDS.
Setelah menjalankan perintah aws rds describe-db-proxy-targets
CLI, 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. |
kegagalan |
RDS-EVENT-0275 |
|
Anda mungkin mengalami masalah berikut saat membuat proksi baru atau terhubung ke proksi.
Kesalahan | Penyebab atau solusi |
---|---|
|
Pilih peran IAM yang sudah ada, bukan memilih untuk membuat peran baru. |
Anda mungkin mengalami masalah berikut saat terhubung ke proksi MySQL.
Kesalahan | Penyebab atau solusi |
---|---|
ERROR 1040 (HY000): Connections rate limit exceeded (
|
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 (
|
Jumlah permintaan koneksi simultan dari klien ke proksi telah melampaui batas. |
|
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_set_client'' can't be set to the value of
|
Nilai yang diatur untuk parameter |
ERROR 3159 (HY000): This RDS Proxy requires TLS connections.
|
Anda mengaktifkan pengaturan Wajibkan Keamanan Lapisan Pengangkutan dalam proksi, tetapi koneksi Anda menyertakan parameter
|
ERROR 2026 (HY000): SSL connection error: Internal Server
|
Proses jabat tangan TLS dengan proksi gagal. Beberapa kemungkinan alasannya meliputi:
|
ERROR 9501 (HY000): Timed-out waiting to acquire database connection
|
Waktu tunggu proksi untuk memperoleh koneksi basis data habis. Beberapa kemungkinan alasannya meliputi:
|
Anda mungkin mengalami masalah berikut saat terhubung ke proksi PostgreSQL.
Kesalahan | Penyebab | Solusi |
---|---|---|
|
Pengguna mencoba terhubung ke basis data menggunakan autentikasi IAM dengan pengaturan |
Pengguna harus terhubung ke basis data menggunakan pengaturan minimum |
|
Pengguna mengaktifkan opsi Wajibkan Keamanan Lapisan Pengangkutan, tetapi mencoba untuk terhubung dengan |
Untuk memperbaiki kesalahan ini, lakukan salah satu tindakan berikut:
|
|
Kesalahan ini mungkin terjadi karena alasan berikut:
|
Untuk memperbaiki kesalahan ini, lakukan tindakan berikut:
|
|
Tidak ada rahasia Secrets Manager untuk peran ini. |
Tambahkan rahasia Secrets Manager untuk peran ini. Untuk informasi selengkapnya, lihat Menyiapkan AWS Identity and Access Management (IAM) kebijakan untuk RDS Proxy. |
|
Klien basis data yang digunakan untuk terhubung ke proksi menggunakan mekanisme autentikasi yang saat ini tidak didukung oleh proksi. |
Jika Anda tidak menggunakan autentikasi IAM, gunakan autentikasi kata sandi MD5 atau SCRAM. |
|
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. |
|
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 |
|
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. |
|
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. |
|
Jumlah permintaan simultan dengan autentikasi IAM dari klien ke proksi telah melampaui batas. |
Kurangi tingkat pembangunan koneksi menggunakan autentikasi IAM dari klien PostgreSQL. |
|
Jumlah permintaan koneksi simultan dari klien ke proksi telah melampaui batas. |
Kurangi jumlah koneksi aktif dari klien PostgreSQL ke proksi RDS ini. |
|
Tingkat permintaan koneksi dari klien ke proksi telah melampaui batas. |
Kurangi tingkat pembangunan koneksi dari klien PostgreSQL. |
|
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. |
|
Terjadi masalah dengan token IAM yang digunakan untuk autentikasi IAM. |
Buat token autentikasi baru dan gunakan dalam koneksi baru. |
|
Klien mencoba untuk terhubung menggunakan autentikasi IAM, tetapi SSL tidak diaktifkan. |
Aktifkan SSL dalam klien PostgreSQL. |
|
Terjadi kesalahan yang tidak diketahui. |
Hubungi Dukungan AWS untuk menyelidiki masalah ini. |
|
Waktu tunggu proksi untuk memperoleh koneksi basis data habis. Beberapa kemungkinan alasannya meliputi:
|
Kemungkinan solusinya sebagai berikut:
|
|
Koneksi basis data yang dibangun dari proksi menampilkan kesalahan. |
Solusinya bergantung dari kesalahan basis data tertentu. Salah satu contohnya adalah: |