Ringkasan
Halaman ini menunjukkan cara menggunakan endpoint tulis untuk terhubung dari klien di jaringan Virtual Private Cloud (VPC) Anda ke instance Cloud SQL menggunakan akses layanan pribadi (PSA).
Endpoint tulis adalah nama layanan nama domain (DNS) global yang otomatis di-resolve ke alamat IP instance utama saat ini. Dalam kasus operasi failover atau pengalihan replika, endpoint tulis ini akan mengalihkan koneksi masuk ke instance utama baru secara otomatis. Anda dapat menggunakan endpoint tulis dalam string koneksi SQL ke instance Cloud SQL, bukan menggunakan alamat IP. Dengan menggunakan endpoint tulis, Anda tidak perlu melakukan perubahan koneksi aplikasi saat melakukan operasi failover atau pengalihan replika untuk pemulihan dari gangguan wilayah atau latihan pemulihan dari bencana.
Setiap instance Cloud SQL yang memenuhi syarat memiliki satu endpoint tulis bawaan yang nama, pembuatan, dan pembaruannya dikelola oleh Cloud SQL. Contoh berikut mengilustrasikan formatnya:
primary.103uufa2svq8u.2rb3qdj9tkf4d.global.sql-psa.goog.
Endpoint penulisan selalu diakhiri dengan akhiran .global.sql-psa.goog.
.
Anda tidak dapat mengubah nama atau format endpoint tulis yang dikelola oleh Cloud SQL ini.
Anda dapat menggunakan endpoint tulis untuk semua operasi tulis pada instance utama, termasuk penyisipan, pembaruan, penghapusan, dan perubahan DDL. Anda juga dapat menggunakan endpoint tulis untuk operasi baca, seperti kueri. Alamat IP pribadi yang ditunjukkan oleh endpoint tulis akan otomatis diubah oleh Cloud SQL saat Anda melakukan operasi failover atau pengalihan replika untuk mempromosikan instance replika menjadi instance utama baru.
Buat endpoint tulis
Jika Anda membuat instance Cloud SQL baru, Cloud SQL akan membuat endpoint tulis secara otomatis jika prasyarat berikut terpenuhi:
- API berikut harus diaktifkan
di Google Cloud project tempat instance Cloud SQL Anda berada:
Jika Cloud DNS API tidak diaktifkan di project, maka pembuatan zona DNS peering akan gagal dan nama DNS tidak dapat digunakan.
Setelah zona DNS peering berhasil dibuat, penting untuk tidak memodifikasinya dengan cara apa pun. Setiap modifikasi, termasuk penghapusan, akan membuat DNS tidak dapat digunakan untuk koneksi database.
- Instance Cloud SQL harus berupa edisi Cloud SQL Enterprise Plus.
- Instance Cloud SQL harus dikonfigurasi untuk menggunakan IP pribadi dengan akses layanan pribadi (PSA) diaktifkan.
- Fitur ini memerlukan instance pada arsitektur jaringan baru. Dalam sebagian besar kasus, instance baru dibuat dengan arsitektur baru. Untuk memverifikasi hal ini, periksa arsitektur jaringan instance Anda.
Saat Anda mengupgrade instance edisi Cloud SQL Enterprise yang ada ke instance edisi Cloud SQL Enterprise Plus, Cloud SQL akan otomatis membuat endpoint tulis jika prasyarat yang tercantum sebelumnya terpenuhi. Jika instance yang ada berada dalam arsitektur jaringan lama, Anda harus mengupgrade instance ke arsitektur jaringan baru terlebih dahulu untuk mendapatkan endpoint tulis.
Jika Anda sudah memiliki instance edisi Cloud SQL Enterprise Plus tanpa endpoint tulis dan Anda ingin Cloud SQL membuat endpoint tulis secara otomatis, maka buat replika yang diaktifkan untuk pemulihan dari bencana tingkat lanjut.
Melihat endpoint tulis
gcloud
Untuk menemukan endpoint tulis, gunakan perintah gcloud CLI berikut:
gcloud sql instances describe INSTANCE_NAME \ | grep writeEndpoint
Lakukan penggantian berikut:
INSTANCE_NAME
: nama instance Cloud SQL.
Endpoint tulis selalu diakhiri dengan akhiran .global.sql-psa.goog.
,
mirip dengan contoh berikut:
primary.103uufa2svq8u.2rb3qdj9tkf4d.global.sql-psa.goog.
Jika Anda tidak melihat endpoint tulis untuk instance yang memenuhi syarat, lihat Pemecahan masalah.
Menghubungkan ke instance Cloud SQL menggunakan endpoint tulis
sqlcmd
Untuk menghubungkan klien sqlcmd
ke instance Cloud SQL menggunakan endpoint tulis,
jalankan perintah berikut:
sqlcmd -S WRITE_ENDPOINT -U USERNAME -d DATABASE_NAME -P
Lakukan penggantian berikut:
DATABASE_NAME
: nama database. Misalnya,main
.USERNAME
: nama pengguna. Contoh,sqlserver
.WRITE_ENDPOINT
: nama DNS atau endpoint tulis. Nilai alfanumerik ini selalu diakhiri dengan akhiran.global.sql-psa.goog.
. Misalnya,primary.103uufa2svq8u.2rb3qdj9tkf4d.global.sql-psa.goog.
.
Batasan
- Endpoint tulis tidak tersedia untuk pembuatan instance edisi Cloud SQL Enterprise.
- Endpoint tulis tidak tersedia untuk instance khusus IP publik atau instance khusus Private Service Connect.
- Endpoint tulis tidak tersedia untuk digunakan dengan Proxy Auth Cloud SQL atau konektor bahasa.
Pemecahan masalah
Bagian berikut menjelaskan arsitektur endpoint tulis dan membahas masalah pemecahan masalah umum.
Arsitektur endpoint tulis
Saat Anda membuat instance yang memenuhi syarat, endpoint tulis akan dibuat secara default.
Untuk membuat endpoint tulis, Cloud SQL melakukan penyiapan berikut:
- Membuat zona DNS pribadi di jaringan VPC produsen Cloud SQL layanan
- Membuat zona DNS peering di jaringan VPC pelanggan
- Membuat data DNS di zona DNS pribadi di jaringan produsen layanan
Diagram berikut menggambarkan cara kerja proses ini:

Masalah resolusi DNS
Jika resolusi DNS tidak berfungsi, periksa setiap item berikut:
- Pastikan semua prasyarat terpenuhi.
- Pastikan klien yang diharapkan resolusinya berada di
jaringan yang sama dengan instance Cloud SQL yang terhubung. Untuk memeriksa
hal ini, gunakan
perintah
gcloud compute instances list
:gcloud compute instances list \ --format="table( name, zone.basename(), networkInterfaces[].network )" \ --project=PROJECT_NAME
Ganti
PROJECT_NAME
dengan nama project tempat jaringan konsumen DNS berada. - Pastikan zona peering ada. Untuk melakukannya, gunakan perintah
gcloud dns managed-zones list
:gcloud dns managed-zones list \ --project=PROJECT_NAME
Ganti
PROJECT_NAME
dengan nama project tempat jaringan konsumen DNS berada.
Instance baru tidak memiliki endpoint tulis
Jika instance yang baru dibuat tidak berisi endpoint tulis, periksa setiap item berikut:
- Pastikan semua prasyarat telah diselesaikan.
- Pastikan tidak ada zona DNS peering yang tersisa dengan nama DNS
sql-psa.goog.
.Zona DNS peering adalah zona DNS sisa jika jaringan yang terkait dengan zona DNS tidak memiliki peering VPC dengan ID project peer zona DNS peering.
Jika ada zona DNS peering yang tersisa dengan akhiran
sql-psa.goog.
, hapus zona tersebut.Untuk memeriksa zona DNS peering yang tersisa, gunakan perintah
gcloud dns managed-zones list
:gcloud dns managed-zones list \ --project=PROJECT_NAME
Ganti
PROJECT_NAME
dengan nama project tempat jaringan konsumen DNS berada.Jika ada zona DNS dengan akhiran
sql-psa.goog.
, hapus zona DNS tersebut setelah memeriksa ulang bahwa zona DNS peering adalah zona DNS yang tidak terpakai.Untuk menghapus zona DNS, gunakan perintah
gcloud dns managed-zones delete
:gcloud dns managed-zones delete ZONE_NAME
Ganti
ZONE_NAME
dengan nama zona DNS yang terkait dengan endpoint tulis. Nilai bersifat alfanumerik dan menggunakan format berikut:cloud-sql-psa-dns-1234567890
.
Langkah berikutnya
- Pelajari lebih lanjut pemecahan masalah Cloud SQL.