Halaman ini menjelaskan cara menggunakan Private Service Connect untuk terhubung ke instance Cloud SQL.
Anda dapat menggunakan Private Service Connect untuk terhubung ke instance Cloud SQL utama atau replika baca-nya dari beberapa jaringan Virtual Private Cloud (VPC) yang termasuk dalam grup, tim, project, atau organisasi yang berbeda.
Sebelum memulai
Dukungan untuk menggunakan Private Service Connect dengan instance Cloud SQL tersedia untuk gcloud CLI
versi 416.0.0 dan yang lebih baru.
Peran pengguna
Tabel berikut memberikan informasi tentang peran yang diperlukan untuk menggunakan Private Service Connect dengan instance Cloud SQL:
Peran | Deskripsi |
---|---|
compute.networkAdmin |
Memberikan kontrol penuh atas jaringan VPC yang memulai koneksi ke instance Cloud SQL. Anda dapat membuat dan mengelola alamat IP, aturan firewall, dan endpoint Private Service Connect. Jika Anda menggunakan Private Service Connect untuk terhubung ke instance Cloud SQL dari beberapa jaringan VPC, maka setiap jaringan memiliki administratornya sendiri. |
dns.admin |
Memberikan kontrol penuh atas resource Cloud DNS, termasuk zona dan data DNS. |
cloudsql.admin |
Memberikan kontrol penuh atas instance Cloud SQL dan mengontrol instance melalui siklus prosesnya. |
cloudsql.instanceUser |
Memberikan akses ke instance Cloud SQL. Jika terhubung melalui klien Cloud SQL Auth Proxy, Anda harus memiliki peran Klien Cloud SQL. Jika terhubung langsung, Anda tidak memerlukan peran dan izin Identity and Access Management (IAM) apa pun. |
Membuat instance Cloud SQL
Anda dapat membuat instance dan mengaktifkan Private Service Connect untuknya menggunakan gcloud CLI, Terraform, atau API.
gcloud
Untuk membuat instance dan mengaktifkan Private Service Connect untuknya, gunakan perintah gcloud sql instances create
:
gcloud sql instances create INSTANCE_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --enable-private-service-connect \ --allowed-psc-projects=ALLOWED_PROJECTS \ --availability-type=AVAILABILITY_TYPE \ --no-assign-ip \ --tier=MACHINE_TYPE \ --database-version=DATABASE_VERSION \ --enable-bin-log
Lakukan penggantian berikut:
- INSTANCE_NAME: nama instance.
- PROJECT_ID: ID atau nomor project project Google Cloud yang berisi instance.
- REGION_NAME: nama region untuk instance.
ALLOWED_PROJECTS: daftar ID atau nomor project yang diizinkan, yang dipisahkan dengan koma. Jika project tidak ada dalam daftar ini, Anda tidak dapat menggunakannya untuk membuat instance dan mengaktifkan Private Service Connect untuknya.
- AVAILABILITY_TYPE: mengaktifkan ketersediaan tinggi untuk instance. Untuk parameter ini, tentukan salah satu nilai berikut:
REGIONAL
: mengaktifkan ketersediaan tinggi dan direkomendasikan untuk instance produksi. Instance gagal ke zona lain dalam region yang Anda pilih.ZONAL
: tidak memberikan kemampuan failover. Ini adalah nilai defaultnya.
Untuk mengetahui informasi selengkapnya tentang cara menetapkan dan menghapus ketersediaan tinggi untuk instance, lihat Mengonfigurasi instance yang ada untuk ketersediaan tinggi dan Menonaktifkan ketersediaan tinggi untuk instance.
- MACHINE_TYPE: jenis mesin untuk instance.
- DATABASE_VERSION: versi database untuk instance (misalnya,
MYSQL_8_0
).
Terraform
Untuk membuat instance dengan Private Service Connect yang diaktifkan, gunakan google_sql_database_instance
resource Terraform.
Untuk menerapkan konfigurasi Terraform di project Google Cloud, selesaikan langkah-langkah di bagian berikut.
Menyiapkan Cloud Shell
- Luncurkan Cloud Shell.
-
Tetapkan project Google Cloud default tempat Anda ingin menerapkan konfigurasi Terraform.
Anda hanya perlu menjalankan perintah ini sekali per project, dan dapat dijalankan di direktori mana pun.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Variabel lingkungan akan diganti jika Anda menetapkan nilai eksplisit dalam file konfigurasi Terraform.
Menyiapkan direktori
Setiap file konfigurasi Terraform harus memiliki direktorinya sendiri (juga disebut modul root).
-
Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki
ekstensi
.tf
—misalnyamain.tf
. Dalam tutorial ini, file ini disebut sebagaimain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Jika mengikuti tutorial, Anda dapat menyalin kode contoh di setiap bagian atau langkah.
Salin kode contoh ke dalam
main.tf
yang baru dibuat.Atau, salin kode dari GitHub. Tindakan ini direkomendasikan jika cuplikan Terraform adalah bagian dari solusi menyeluruh.
- Tinjau dan ubah contoh parameter untuk diterapkan pada lingkungan Anda.
- Simpan perubahan Anda.
-
Lakukan inisialisasi Terraform. Anda hanya perlu melakukan ini sekali per direktori.
terraform init
Secara opsional, untuk menggunakan versi penyedia Google terbaru, sertakan opsi
-upgrade
:terraform init -upgrade
Menerapkan perubahan
-
Tinjau konfigurasi dan pastikan resource yang akan dibuat atau
diupdate oleh Terraform sesuai yang Anda inginkan:
terraform plan
Koreksi konfigurasi jika diperlukan.
-
Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan
yes
pada prompt:terraform apply
Tunggu hingga Terraform menampilkan pesan "Apply complete!".
- Buka project Google Cloud Anda untuk melihat hasilnya. Di Konsol Google Cloud, buka resource Anda di UI untuk memastikan bahwa Terraform telah membuat atau mengupdatenya.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID atau nomor project project Google Cloud yang berisi instance.
- INSTANCE_NAME: nama instance.
- REGION_NAME: nama region untuk instance.
- AVAILABILITY_TYPE: mengaktifkan ketersediaan tinggi untuk instance. Untuk parameter ini, tentukan salah satu nilai berikut:
REGIONAL
: mengaktifkan ketersediaan tinggi dan direkomendasikan untuk instance produksi. Instance gagal ke zona lain dalam region yang Anda pilih.ZONAL
: tidak memberikan kemampuan failover. Ini adalah nilai defaultnya.
Untuk mengetahui informasi selengkapnya tentang cara menetapkan dan menghapus ketersediaan tinggi untuk instance, lihat Mengonfigurasi instance yang ada untuk ketersediaan tinggi dan Menonaktifkan ketersediaan tinggi untuk instance.
ALLOWED_PROJECTS: daftar ID atau nomor project yang diizinkan, yang dipisahkan dengan koma. Jika project tidak ada dalam daftar ini, Anda tidak dapat menggunakannya untuk membuat instance dan mengaktifkan Private Service Connect untuknya.
- MACHINE_TYPE: jenis mesin untuk instance.
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
Meminta isi JSON:
{ "name": "INSTANCE_NAME", "project": PROJECT_ID", "region": "REGION_NAME", "databaseVersion": "MYSQL_8_0", "kind": "sql#instance", "settings": { "availabilityType": "AVAILABILITY_TYPE", "backupConfiguration": { "binaryLogEnabled": true, "enabled": true, "kind": "sql#backupConfiguration", "startTime": "00:00" }, "ipConfiguration": { "ipv4Enabled": false, "pscConfig": { "allowedConsumerProjects": [ "ALLOWED_PROJECTS" ], "pscEnabled": true } }, "kind": "sql#settings", "pricingPlan": "PER_USE", "replicationType": "SYNCHRONOUS", "tier": "MACHINE_TYPE" } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME", "status": "RUNNING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "startTime": "2023-06-14T18:48:35.499Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_NAME", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Mendapatkan lampiran layanan
Setelah membuat instance Cloud SQL dengan Private Service Connect diaktifkan, dapatkan URI lampiran layanan dan gunakan untuk membuat endpoint Private Service Connect.
gcloud
Untuk melihat informasi ringkasan tentang instance dengan Private Service Connect yang diaktifkan, seperti kolom pscServiceAttachmentLink
yang menampilkan URI yang mengarah ke lampiran layanan instance, gunakan perintah gcloud sql instances describe
:
gcloud sql instances describe INSTANCE_NAME \ --project=PROJECT_ID
Lakukan penggantian berikut:
- INSTANCE_NAME: nama instance Cloud SQL yang dapat dihubungkan dengan endpoint Private Service Connect di jaringan VPC
- PROJECT_ID: ID atau nomor project project Google Cloud yang berisi instance
Contoh berikut menunjukkan contoh output untuk perintah ini:
gcloud sql instances describe myinstance \ --project=12345 ... pscServiceAttachmentLink: projects/45678/regions/myregion/serviceAttachments/myserviceattachment
Terraform
Untuk mendapatkan URI lampiran layanan, gunakan google_compute_address
resource Terraform.
Untuk menerapkan konfigurasi Terraform di project Google Cloud, selesaikan langkah-langkah di bagian berikut.
Menyiapkan Cloud Shell
- Luncurkan Cloud Shell.
-
Tetapkan project Google Cloud default tempat Anda ingin menerapkan konfigurasi Terraform.
Anda hanya perlu menjalankan perintah ini sekali per project, dan dapat dijalankan di direktori mana pun.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Variabel lingkungan akan diganti jika Anda menetapkan nilai eksplisit dalam file konfigurasi Terraform.
Menyiapkan direktori
Setiap file konfigurasi Terraform harus memiliki direktorinya sendiri (juga disebut modul root).
-
Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki
ekstensi
.tf
—misalnyamain.tf
. Dalam tutorial ini, file ini disebut sebagaimain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Jika mengikuti tutorial, Anda dapat menyalin kode contoh di setiap bagian atau langkah.
Salin kode contoh ke dalam
main.tf
yang baru dibuat.Atau, salin kode dari GitHub. Tindakan ini direkomendasikan jika cuplikan Terraform adalah bagian dari solusi menyeluruh.
- Tinjau dan ubah contoh parameter untuk diterapkan pada lingkungan Anda.
- Simpan perubahan Anda.
-
Lakukan inisialisasi Terraform. Anda hanya perlu melakukan ini sekali per direktori.
terraform init
Secara opsional, untuk menggunakan versi penyedia Google terbaru, sertakan opsi
-upgrade
:terraform init -upgrade
Menerapkan perubahan
-
Tinjau konfigurasi dan pastikan resource yang akan dibuat atau
diupdate oleh Terraform sesuai yang Anda inginkan:
terraform plan
Koreksi konfigurasi jika diperlukan.
-
Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan
yes
pada prompt:terraform apply
Tunggu hingga Terraform menampilkan pesan "Apply complete!".
- Buka project Google Cloud Anda untuk melihat hasilnya. Di Konsol Google Cloud, buka resource Anda di UI untuk memastikan bahwa Terraform telah membuat atau mengupdatenya.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID atau nomor project project Google Cloud yang berisi instance
- INSTANCE_NAME: nama instance
Metode HTTP dan URL:
GET https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ ... pscServiceAttachmentLink: "projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME" }
Kolom pscServiceAttachmentLink
menampilkan URI yang mengarah ke lampiran layanan instance.
Membuat endpoint Private Service Connect
Anda dapat mereservasi alamat IP internal untuk endpoint Private Service Connect dan membuat endpoint dengan alamat tersebut. Untuk membuat endpoint, Anda memerlukan URI lampiran layanan dan project yang diizinkan untuk instance.
gcloud
Guna mereservasi alamat IP internal untuk endpoint Private Service Connect, gunakan perintah
gcloud compute addresses create
:gcloud compute addresses create ADDRESS_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --subnet=SUBNET_NAME \ --addresses=INTERNAL_IP_ADDRESS
Lakukan penggantian berikut:
- ADDRESS_NAME: nama alamat IP internal.
- PROJECT_ID: ID atau nomor project project Google Cloud untuk endpoint.
- REGION_NAME: nama region untuk endpoint.
- SUBNET_NAME: nama subnet untuk alamat IP.
- INTERNAL_IP_ADDRESS: alamat IP yang akan direservasi. Alamat IP ini harus berada dalam rentang IP utama subnet. Alamat IP dapat berupa alamat RFC 1918 atau subnet dengan rentang non-RFC.
Untuk memverifikasi bahwa alamat IP sudah dicadangkan, gunakan perintah
gcloud compute addresses list
:gcloud compute addresses list ADDRESS_NAME \ --project=PROJECT_ID
Dalam respons, verifikasi bahwa status
RESERVED
muncul untuk alamat IP.Untuk membuat endpoint Private Service Connect dan mengarahkannya ke lampiran layanan Cloud SQL, gunakan perintah
gcloud compute forwarding-rules create
:gcloud compute forwarding-rules create ENDPOINT_NAME \ --address=ADDRESS_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --network=NETWORK_NAME \ --target-service-attachment=SERVICE_ATTACHMENT_URI \ --allow-psc-global-access
Lakukan penggantian berikut:
- ENDPOINT_NAME: nama endpoint
- NETWORK_NAME: nama jaringan VPC untuk endpoint
- SERVICE_ATTACHMENT_URI: URI lampiran layanan
Untuk memastikan bahwa lampiran layanan menerima endpoint, gunakan perintah
gcloud compute forwarding-rules describe
:gcloud compute forwarding-rules describe ENDPOINT_NAME \ --project=PROJECT_ID \ --region=REGION_NAME
Dalam respons, verifikasi bahwa status
ACCEPTED
muncul untuk kolompscConnectionStatus
. Endpoint dapat terhubung ke lampiran layanan.
Terraform
Untuk membuat endpoint Private Service Connect, gunakan google_sql_database_instance
resource Terraform.
Untuk menerapkan konfigurasi Terraform di project Google Cloud, selesaikan langkah-langkah di bagian berikut.
Menyiapkan Cloud Shell
- Luncurkan Cloud Shell.
-
Tetapkan project Google Cloud default tempat Anda ingin menerapkan konfigurasi Terraform.
Anda hanya perlu menjalankan perintah ini sekali per project, dan dapat dijalankan di direktori mana pun.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Variabel lingkungan akan diganti jika Anda menetapkan nilai eksplisit dalam file konfigurasi Terraform.
Menyiapkan direktori
Setiap file konfigurasi Terraform harus memiliki direktorinya sendiri (juga disebut modul root).
-
Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki
ekstensi
.tf
—misalnyamain.tf
. Dalam tutorial ini, file ini disebut sebagaimain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Jika mengikuti tutorial, Anda dapat menyalin kode contoh di setiap bagian atau langkah.
Salin kode contoh ke dalam
main.tf
yang baru dibuat.Atau, salin kode dari GitHub. Tindakan ini direkomendasikan jika cuplikan Terraform adalah bagian dari solusi menyeluruh.
- Tinjau dan ubah contoh parameter untuk diterapkan pada lingkungan Anda.
- Simpan perubahan Anda.
-
Lakukan inisialisasi Terraform. Anda hanya perlu melakukan ini sekali per direktori.
terraform init
Secara opsional, untuk menggunakan versi penyedia Google terbaru, sertakan opsi
-upgrade
:terraform init -upgrade
Menerapkan perubahan
-
Tinjau konfigurasi dan pastikan resource yang akan dibuat atau
diupdate oleh Terraform sesuai yang Anda inginkan:
terraform plan
Koreksi konfigurasi jika diperlukan.
-
Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan
yes
pada prompt:terraform apply
Tunggu hingga Terraform menampilkan pesan "Apply complete!".
- Buka project Google Cloud Anda untuk melihat hasilnya. Di Konsol Google Cloud, buka resource Anda di UI untuk memastikan bahwa Terraform telah membuat atau mengupdatenya.
REST
Cadangkan alamat IP internal untuk endpoint Private Service Connect.
Verifikasi bahwa alamat IP sudah dicadangkan.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID atau nomor project project Google Cloud yang berisi endpoint Private Service Connect
- REGION_NAME: nama region
- ADDRESS_NAME: nama alamat IP
Metode HTTP dan URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "kind": "compute#address", "id": "ADDRESS_ID", "creationTimestamp": "2024-05-09T11:20:50.114-07:00", "name": "ADDRESS_NAME", "description": "This is the name of the internal IP address.", "address": "IP_ADDRESS", "status": "RESERVED", "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME", "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME", "networkTier": "PREMIUM", "labelFingerprint": "LABEL_FINGERPRINT_ID", "addressType": "EXTERNAL" }
Dalam respons, verifikasi bahwa status
RESERVED
muncul untuk alamat IP.Buat endpoint Private Service Connect dan arahkan ke lampiran layanan Cloud SQL.
Pastikan lampiran layanan menerima endpoint.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID atau nomor project project Google Cloud yang berisi endpoint Private Service Connect
- REGION_NAME: nama region
- ENDPOINT_NAME: nama endpoint
Metode HTTP dan URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "kind": "compute#forwardingRule", "id": "ENDPOINT_ID", "creationTimestamp": "2024-05-09T12:03:21.383-07:00", "name": "ENDPOINT_NAME", "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME", "IPAddress": "IP_ADDRESS", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME", "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/default", "serviceDirectoryRegistrations": [ { "namespace": "goog-psc-default" } ], "networkTier": "PREMIUM", "labelFingerprint": "LABEL_FINGERPRINT_ID", "fingerprint": "FINGERPRINT_ID", "pscConnectionId": "CONNECTION_ID", "pscConnectionStatus": "ACCEPTED", "allowPscGlobalAccess": true }
Dalam respons, verifikasi bahwa status
ACCEPTED
muncul untuk kolompscConnectionStatus
. Endpoint dapat terhubung ke lampiran layanan.
Menghubungkan ke instance Cloud SQL
Anda dapat terhubung ke instance Cloud SQL dengan Private Service Connect yang diaktifkan menggunakan alamat IP internal, data DNS, Proxy Auth Cloud SQL, Konektor Bahasa Cloud SQL, atau aplikasi Google Cloud lainnya.
Mengonfigurasi zona DNS terkelola dan data DNS
Cloud SQL tidak membuat data DNS secara otomatis. Sebagai gantinya, respons API pencarian instance memberikan nama DNS yang disarankan. Sebaiknya buat data DNS di zona DNS pribadi pada jaringan VPC yang sesuai. Hal ini memberikan cara yang konsisten untuk menggunakan Proxy Auth Cloud SQL untuk terhubung dari berbagai jaringan.
gcloud
Untuk melihat informasi ringkasan tentang instance Cloud SQL, termasuk nama DNS instance, gunakan perintah
gcloud sql instances describe
:gcloud sql instances describe INSTANCE_NAME \ --project=PROJECT_ID
Lakukan penggantian berikut:
- INSTANCE_NAME: nama instance Cloud SQL
- PROJECT_ID: ID atau nomor project project Google Cloud yang berisi instance
Dalam respons, verifikasi bahwa nama DNS muncul. Nama ini memiliki pola berikut:
INSTANCE_UID.PROJECT_DNS_LABEL.REGION_NAME.sql.goog.
. Contoh:1a23b4cd5e67.1a2b345c6d27.us-central1.sql.goog.
.Untuk membuat zona DNS pribadi, gunakan perintah
gcloud dns managed-zones create
. Zona ini dikaitkan dengan jaringan VPC yang digunakan untuk terhubung ke instance Cloud SQL melalui endpoint Private Service Connect.gcloud dns managed-zones create ZONE_NAME \ --project=PROJECT_ID \ --description=DESCRIPTION \ --dns-name=DNS_NAME \ --networks=NETWORK_NAME \ --visibility=private
Lakukan penggantian berikut:
- ZONE_NAME: nama zona DNS
- PROJECT_ID: ID atau nomor project project Google Cloud yang berisi zona
- DESCRIPTION: deskripsi zona (misalnya, zona DNS untuk instance Cloud SQL)
- DNS_NAME: nama akhiran DNS untuk zona, seperti
REGION_NAME.sql.goog.
(dengan REGION_NAME adalah nama region untuk zona tersebut) - NETWORK_NAME: nama jaringan VPC
Setelah Anda membuat endpoint Private Service Connect, untuk membuat data DNS di zona tersebut, gunakan perintah
gcloud dns record-sets create
:gcloud dns record-sets create DNS_RECORD \ --project=PROJECT_ID \ --type=RRSET_TYPE \ --rrdatas=RR_DATA \ --zone=ZONE_NAME
Lakukan penggantian berikut:
- DNS_RECORD: nama data DNS. Data ini ditetapkan ke nama DNS yang Anda ambil dari instance Cloud SQL sebelumnya dalam prosedur ini (misalnya,
1a23b4cd5e67.1a2b345c6d27.us-central1.sql.goog.
). - RRSET_TYPE: jenis data resource dari kumpulan data DNS (misalnya,
A
). - RR_DATA: alamat IP yang dialokasikan untuk endpoint Private Service Connect (misalnya,
198.51.100.5
). Anda juga dapat memasukkan beberapa nilai sepertirrdata1 rrdata2 rrdata3
(misalnya,10.1.2.3 10.2.3.4 10.3.4.5
).
- DNS_RECORD: nama data DNS. Data ini ditetapkan ke nama DNS yang Anda ambil dari instance Cloud SQL sebelumnya dalam prosedur ini (misalnya,
REST
- Dapatkan nama DNS dari instance Cloud SQL.
- PROJECT_ID: ID atau nomor project project Google Cloud yang berisi instance
- INSTANCE_NAME: nama instance
- Buat zona DNS pribadi. Zona ini dikaitkan dengan jaringan VPC yang digunakan untuk terhubung ke instance Cloud SQL melalui endpoint Private Service Connect.
- PROJECT_ID: ID atau nomor project project Google Cloud yang berisi zona DNS
- ZONE_NAME: nama zona
- DESCRIPTION: deskripsi zona (misalnya, zona DNS untuk instance Cloud SQL)
- DNS_NAME: nama akhiran DNS untuk zona, seperti
REGION_NAME.sql.goog.
(dengan REGION_NAME adalah nama region untuk zona tersebut) - NETWORK_NAME: nama jaringan VPC
- Setelah Anda membuat endpoint Private Service Connect, buat data DNS di zona tersebut.
- PROJECT_ID: ID atau nomor project project Google Cloud yang berisi zona DNS.
- ZONE_NAME: nama zona.
- DNS_RECORD: nama data DNS. Data ini ditetapkan ke nama DNS yang Anda ambil dari instance Cloud SQL sebelumnya dalam prosedur ini (misalnya,
1a23b4cd5e67.1a2b345c6d27.us-central1.sql.goog.
). - RRSET_TYPE: jenis kumpulan data (misalnya,
A
). - TTL: time to live (TTL) untuk data yang ditetapkan dalam jumlah detik (misalnya,
300
). - RR_DATA: alamat IP yang dialokasikan untuk endpoint Private Service Connect (misalnya,
198.51.100.5
). Anda juga dapat memasukkan beberapa nilai sepertirrdata1 rrdata2 rrdata3
(misalnya,10.1.2.3 10.2.3.4 10.3.4.5
).
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
Metode HTTP dan URL:
GET https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ ... "dnsName": "INSTANCE_ID.PROJECT_DNS_LABEL.REGION_NAME.sql.goog." }
Kolom dnsName
menampilkan nama DNS instance Cloud SQL. Nama DNS selalu diakhiri dengan titik (.
).
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
Metode HTTP dan URL:
POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones
Meminta isi JSON:
{ "name": "ZONE_NAME", "description": "DESCRIPTION", "dnsName": "DNS_NAME", "visibility": "private", "privateVisibilityConfig": { "kind": "dns#managedZonePrivateVisibilityConfig", "networks": [ { "kind": "dns#managedZonePrivateVisibilityConfigNetwork", "networkUrl": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME" } ] } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "ZONE_NAME", "dnsName": "DNS_NAME", "description": "DESCRIPTION", "id": "ID", "nameServers": [ "ns-gcp-private.googledomains.com." ], "creationTime": "2024-05-10T17:05:34.607Z", "visibility": "private", "privateVisibilityConfig": { "networks": [ { "networkUrl": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME", "kind": "dns#managedZonePrivateVisibilityConfigNetwork" } ], "gkeClusters": [], "kind": "dns#managedZonePrivateVisibilityConfig" }, "cloudLoggingConfig": { "kind": "dns#managedZoneCloudLoggingConfig" }, "kind": "dns#managedZone" }
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
Metode HTTP dan URL:
POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/ZONE_NAME
Meminta isi JSON:
{ "deletions": [] "additions": [ { "name": "DNS_RECORD", "type": "RRSET_TYPE", "ttl": TTL, "rrdatas": [ "RR_DATA" ] } ] }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "additions": [ { "name": "DNS_RECORD", "type": "RRSET_TYPE", "ttl": TTL, "rrdatas": [ "RR_DATA" ], "signatureRrdatas": [], "kind": "dns#resourceRecordSet" } ], "deletions": [], "startTime": "2024-05-10T17:29:44.375Z", "id": "CHANGE_ID", "status": "pending", "kind": "dns#change" }
Menghubungkan langsung menggunakan data DNS
Sebelum terhubung ke instance Cloud SQL menggunakan data DNS, selesaikan tindakan berikut:
- Membuat endpoint Private Service Connect.
- Pastikan lampiran layanan instance menerima endpoint. Untuk memverifikasi bahwa status endpoint adalah
ACCEPTED
, periksa status. - Konfigurasikan zona terkelola DNS dan data DNS.
Setelah Anda memenuhi kondisi ini, gunakan data DNS untuk terhubung ke instance dari jaringan VPC mana pun tempat Anda membuat endpoint.
mysql --host=DNS_RECORD --user=USERNAME -p
Lakukan penggantian berikut:
- DNS_RECORD: data DNS endpoint
- USERNAME: nama pengguna yang terhubung ke instance
Terhubung langsung melalui alamat IP internal
Sebelum terhubung ke instance Cloud SQL dengan Private Service Connect diaktifkan, selesaikan tindakan berikut:
- Membuat endpoint Private Service Connect.
- Pastikan lampiran layanan instance menerima endpoint. Untuk memverifikasi bahwa status endpoint adalah
ACCEPTED
, periksa status.
Setelah Anda memenuhi kondisi ini, gunakan alamat IP endpoint untuk mengakses instance dari jaringan VPC mana pun tempat Anda membuat endpoint.
Ambil alamat IP internal endpoint Private Service Connect.
gcloud
Untuk mengambil alamat IP, gunakan perintah
gcloud compute addresses describe
:gcloud compute addresses describe ADDRESS_NAME \ --project=PROJECT_ID \ --region=REGION_NAME
Lakukan penggantian berikut:
- ADDRESS_NAME: nama alamat IP endpoint
- PROJECT_ID: ID atau nomor project project Google Cloud yang berisi endpoint
- REGION_NAME: nama region untuk endpoint
Dalam respons, verifikasi bahwa alamat IP muncul untuk kolom
address
. Ini adalah alamat IP internal.REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID atau nomor project project Google Cloud yang berisi endpoint
- REGION_NAME: nama region untuk endpoint
- ADDRESS_NAME: nama alamat IP endpoint
Metode HTTP dan URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "kind": "compute#address", "id": "ADDRESS_ID", "creationTimestamp": "2024-05-09T11:20:50.114-07:00", "name": "ADDRESS_NAME", "description": "This is the name of the internal IP address.", "address": "IP_ADDRESS", "status": "RESERVED", "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME", "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME", "networkTier": "PREMIUM", "labelFingerprint": "LABEL_FINGERPRINT_ID", "addressType": "EXTERNAL" }
Alamat IP internal adalah nilai yang dikaitkan dengan kolom
address
.-
Untuk terhubung ke instance Cloud SQL, gunakan alamat IP internal.
mysql --host=IP_ADDRESS --user=USERNAME -p
Lakukan penggantian berikut:
- IP_ADDRESS: alamat IP endpoint
- USERNAME: nama pengguna yang terhubung ke instance
Terhubung menggunakan Proxy Auth Cloud SQL
Cloud SQL Auth Proxy adalah konektor yang memberikan akses aman ke instance dengan Private Service Connect yang diaktifkan tanpa memerlukan jaringan yang diizinkan atau untuk mengonfigurasi SSL.
Untuk mengizinkan koneksi klien Proxy Auth Cloud SQL, siapkan data DNS yang cocok dengan nama DNS yang direkomendasikan yang diberikan untuk instance. Pencatatan DNS adalah pemetaan antara sumber daya DNS dan nama domain.
Download dan instal Proxy Auth Cloud SQL
Untuk terhubung ke instance dengan Private Service Connect diaktifkan, Anda harus mendownload dan menginstal biner untuk Proxy Auth Cloud SQL. Biner yang Anda unduh tergantung pada sistem operasi, dan apakah biner menggunakan kernel 32-bit atau 64-bit. Sebagian besar perangkat keras yang lebih baru menggunakan kernel 64-bit.
Jika tidak yakin apakah komputer Anda menjalankan kernel 32-bit atau 64-bit, gunakan perintah uname -a
untuk Linux atau macOS. Untuk Windows, lihat dokumentasi Windows.
Memulai Proxy Auth Cloud SQL
Proxy Auth Cloud SQL mendukung koneksi ke instance dengan Private Service Connect yang diaktifkan. Untuk mengetahui informasi selengkapnya, lihat Memulai Proxy Auth Cloud SQL.
- Melihat informasi ringkasan tentang instance Cloud SQL, termasuk nama koneksi instance.
gcloud
Untuk melihat informasi ringkasan tentang instance Cloud SQL, gunakan perintah
gcloud sql instances describe
.gcloud sql instances describe INSTANCE_NAME \ --project=PROJECT_ID \ --format='value(connectionName)'
Lakukan penggantian berikut:
- INSTANCE_NAME: nama instance Cloud SQL
- PROJECT_ID: ID atau nomor project project Google Cloud yang berisi instance
Nama koneksi menggunakan format
PROJECT_ID:REGION_NAME:INSTANCE_NAME
.REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID atau nomor project project Google Cloud yang berisi instance
- INSTANCE_NAME: nama instance
Metode HTTP dan URL:
GET https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ ... "connectionName": "PROJECT_ID:REGION_NAME:INSTANCE_NAME" }
Nama koneksi menggunakan format
PROJECT_ID:REGION_NAME:INSTANCE_NAME
. - Salin nama koneksi instance.
Luncurkan Proxy Auth Cloud SQL:
./cloud-sql-proxy INSTANCE_CONNECTION_NAME --psc
Ganti INSTANCE_CONNECTION_NAME dengan nama koneksi instance yang Anda salin di langkah sebelumnya.
Menghubungkan menggunakan Cloud SQL Language Connectors
Konektor Bahasa Cloud SQL adalah library yang menyediakan akses aman ke instance Cloud SQL dengan Private Service Connect yang diaktifkan tanpa memerlukan jaringan resmi atau untuk mengonfigurasi SSL.
Untuk mengizinkan koneksi dengan Cloud SQL Language Connectors, siapkan data DNS yang cocok dengan nama DNS yang direkomendasikan yang diberikan untuk instance. Pencatatan DNS adalah pemetaan antara sumber daya DNS dan nama domain.
Konektor Bahasa Cloud SQL mendukung koneksi Private Service Connect melalui jenis IP PSC
dalam library masing-masing.
Terhubung dari fungsi App Engine Standard, Cloud Run, atau Cloud Run
Untuk terhubung ke instance Cloud SQL dengan Private Service Connect diaktifkan, Anda dapat menggunakan App Engine Standard, Cloud Run, atau fungsi Cloud Run.
Dalam lingkungan serverless yang didukung ini, Konektor Bahasa Cloud SQL dan koneksi TCP langsung yang menggunakan alamat IP dan nomor port didukung. Untuk koneksi TCP langsung, ini adalah alamat IP yang Anda pesan saat membuat endpoint Private Service Connect. Anda dapat menentukan alamat IP sebagai alamat untuk host database.
Jika membuat data DNS untuk endpoint, Anda dapat menentukan data ini untuk host.
Menghubungkan dari BigQuery
Untuk mengakses data di Cloud SQL dan membuat kueri terhadap
data melalui koneksi IP internal, gunakan parameter --enable-google-private-path
. Parameter ini hanya valid jika:
- Anda menggunakan parameter
--no-assign-ip
. - Anda menggunakan parameter
--network
untuk menentukan nama Jaringan VPC yang ingin Anda gunakan untuk membuat koneksi internal.
Menguji konektivitas
Untuk menguji konektivitas masuk ke instance Cloud SQL dengan Private Service Connect diaktifkan, tetapkan alamat IP endpoint Private Service Connect menjadi alamat IP tujuan.
gcloud
Untuk membuat uji konektivitas bagi instance Cloud SQL dengan Private Service Connect diaktifkan, gunakan perintah gcloud network-management connectivity-tests create
:
gcloud network-management connectivity-tests create CONNECTIVITY_TEST_NAME \ --source-instance=SOURCE_INSTANCE \ --destination-cloud-sql-instance=DESTINATION_CLOUD_SQL_INSTANCE \ --destination-network=DESTINATION_NETWORK \ --destination-port=DESTINATION_PORT \ --protocol=tcp
Lakukan penggantian berikut:
- CONNECTIVITY_TEST_NAME: nama uji konektivitas.
- SOURCE_INSTANCE: URI untuk instance Compute Engine tempat alamat IP sumber berada (misalnya,
projects/myproject/zones/myzone/instances/myinstance
). - DESTINATION_CLOUD_SQL_INSTANCE: URL untuk instance Cloud SQL (misalnya,
projects/myproject/instances/myinstance
). - DESTINATION_NETWORK: URI untuk jaringan VPC tempat alamat IP tujuan berada (misalnya,
projects/myproject/global/networks/mynetwork
). - DESTINATION_PORT: nomor port yang dicadangkan untuk instance. Untuk instance Cloud SQL untuk MySQL, nomor port-nya adalah
3306
.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID atau nomor project project Google Cloud yang berisi instance.
- CONNECTIVITY_TEST_NAME: nama uji konektivitas.
- SOURCE_IP_ADDRESS: alamat IP instance Compute Engine sumber.
- SOURCE_INSTANCE: URI untuk instance Compute Engine tempat alamat IP sumber berada (misalnya,
projects/myproject/zones/myzone/instances/myinstance
). - SOURCE_NETWORK: URI untuk jaringan VPC tempat alamat IP sumber berada (misalnya,
projects/myproject/global/networks/mynetwork
). - DESTINATION_IP_ADDRESS: alamat IP instance Cloud SQL tujuan.
- DESTINATION_PORT: nomor port yang dicadangkan untuk instance. Untuk instance Cloud SQL untuk MySQL, nomor port-nya adalah
3306
. - DESTINATION_NETWORK: URI untuk jaringan VPC tempat alamat IP tujuan berada (misalnya,
projects/myproject/global/networks/mynetwork
).
Metode HTTP dan URL:
POST https://networkmanagement.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/connectivityTests?testId=CONNECTIVITY_TEST_NAME
Meminta isi JSON:
{ "source": { "ipAddress": "SOURCE_IP_ADDRESS", "instance": "SOURCE_INSTANCE", "network": "SOURCE_NETWORK" }, "destination": { "ipAddress": "DESTINATION_IP_ADDRESS", "port": DESTINATION_PORT, "network": "DESTINATION_NETWORK", "projectId": "PROJECT_ID" }, "protocol": "TCP" }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_ID/locations/global/operations/operation-OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.networkmanagement.v1.OperationMetadata", "createTime": "2024-05-23T16:43:49.313981473Z", "target": "projects/PROJECT_ID/locations/global/connectivityTests/CONNECTIVITY_TEST_NAME", "verb": "create", "cancelRequested": false, "apiVersion": "v1" }, "done": false }
Batasan
- Anda dapat menyiapkan hingga 20 endpoint Private Service Connect yang terhubung ke lampiran layanan instance Cloud SQL dengan Private Service Connect diaktifkan.
- Anda tidak dapat menggunakan backend untuk instance yang mengaktifkan Private Service Connect.
- Flag berikut tidak valid atau terpengaruh:
--no-assign-ip:
menggunakan tanda ini karena instance dengan Private Service Connect yang diaktifkan tidak didukung untuk menggunakan jenis konektivitas lain seperti koneksi IP eksternal--authorized-networks:
Anda tidak dapat menggunakan tanda ini untuk menambahkan jaringan yang diizinkan--network:
Anda tidak dapat menggunakan tanda ini karena dikaitkan dengan akses layanan pribadi--allocated-ip-range-name:
Anda tidak dapat menggunakan tanda ini karena nama rentang IP yang diizinkan tidak didukung
- Anda tidak dapat membuat replika eksternal instance dengan Private Service Connect yang diaktifkan.
- Anda tidak dapat mengaktifkan atau menonaktifkan Private Service Connect pada instance yang ada.
- Anda tidak dapat mengonfigurasi instance yang mengaktifkan Private Service Connect untuk menggunakan akses layanan pribadi atau koneksi IP eksternal.
- Anda tidak dapat mengaktifkan koneksi IP eksternal pada instance dengan Private Service Connect yang diaktifkan.
- Anda tidak dapat mengaktifkan akses layanan pribadi atau menambahkan jaringan resmi ke instance.
- Anda tidak dapat mengubah jenis konektivitas instance.
- Anda tidak dapat menggunakan perintah
gcloud sql connect
, Cloud Shell, Cloud Build, atau Database Migration Service untuk terhubung ke instance Cloud SQL dengan Private Service Connect yang diaktifkan. - Saat menguji konektivitas ke instance Cloud SQL dengan Private Service Connect yang diaktifkan, Anda tidak dapat menetapkan item berikut:
- Alamat IP internal instance atau nama DNS sebagai tujuan secara langsung
- Instance sebagai sumber
- Alamat IP endpoint Private Service Connect sebagai sumber
- Pemberian izin berbasis IP menggunakan jaringan yang diizinkan tidak didukung.
- Jika project jaringan Anda berisi instance yang menggunakan pada arsitektur jaringan Cloud SQL, Anda tidak dapat membuat di instance Private Service Connect. Cloud SQL menyediakan berbagai alat untuk membantu Anda mengupgrade instance dari arsitektur jaringan lama ke arsitektur jaringan yang baru. Untuk informasi selengkapnya atau untuk memeriksa jaringan arsitektur instance Cloud SQL dalam project Anda dan lakukan upgrade yang diperlukan, lihat Mengupgrade instance ke arsitektur jaringan yang baru.
Memecahkan masalah
Bagian ini berisi informasi tentang masalah yang terkait dengan instance Cloud SQL dengan Private Service Connect yang diaktifkan beserta langkah-langkah untuk pemecahan masalah.
Masalah Pemecahan masalah Lampiran layanan instance tidak menerima endpoint Private Service Connect. - Periksa status endpoint.
gcloud
Untuk memeriksa status, gunakan perintah
gcloud compute forwarding-rules describe
.gcloud compute forwarding-rules describe ENDPOINT_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ | grep pscConnectionStatus
Lakukan penggantian berikut:
- ENDPOINT_NAME: nama endpoint
- PROJECT_ID: ID atau nomor project project Google Cloud yang berisi endpoint
- REGION_NAME: nama region untuk endpoint
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID atau nomor project project Google Cloud yang berisi endpoint Private Service Connect
- REGION_NAME: nama region
- ENDPOINT_NAME: nama endpoint
Metode HTTP dan URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "kind": "compute#forwardingRule", "id": "ENDPOINT_ID", "creationTimestamp": "2024-05-09T12:03:21.383-07:00", "name": "ENDPOINT_NAME", "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME", "IPAddress": "IP_ADDRESS", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME", "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/default", "serviceDirectoryRegistrations": [ { "namespace": "goog-psc-default" } ], "networkTier": "PREMIUM", "labelFingerprint": "LABEL_FINGERPRINT_ID", "fingerprint": "FINGERPRINT_ID", "pscConnectionId": "CONNECTION_ID", "pscConnectionStatus": "ACCEPTED", "allowPscGlobalAccess": true }
- Verifikasi bahwa status endpoint adalah
ACCEPTED
. Jika statusnya adalahPENDING
, berarti instance tidak mengizinkan project Google Cloud yang berisi endpoint tersebut. Pastikan project jaringan tempat endpoint dibuat diizinkan. Untuk mengetahui informasi selengkapnya, lihat Mengedit instance dengan Private Service Connect yang diaktifkan.
Langkah selanjutnya
- Pelajari IP pribadi lebih lanjut.
- Pelajari Private Service Connect lebih lanjut.
- Pelajari lebih lanjut cara membuat replika baca instance dengan Private Service Connect diaktifkan.
- Pelajari lebih lanjut cara meng-clone instance dengan Private Service Connect yang diaktifkan.
- Pelajari lebih lanjut cara melihat informasi ringkasan tentang instance yang mengaktifkan Private Service Connect.
- Pelajari lebih lanjut cara menetapkan dan menghapus ketersediaan tinggi untuk instance yang mengaktifkan Private Service Connect.
- Pelajari lebih lanjut cara mengedit dan menghapus instance dengan Private Service Connect yang diaktifkan.