Halaman ini menjelaskan cara mengonfigurasi akses layanan pribadi dan Private Service Connect.
Dengan mengonfigurasi akses layanan pribadi, Anda dapat mengalokasikan rentang alamat IP dan membuat koneksi layanan pribadi untuk jaringan Virtual Private Cloud (VPC) di project Google Cloud Anda. Tindakan ini memungkinkan resource dalam jaringan VPC terhubung ke instance Cloud SQL Anda.
Dengan mengonfigurasi Private Service Connect, Anda dapat terhubung ke instance Cloud SQL utama atau replika bacanya dari beberapa jaringan VPC yang tergabung dalam grup, tim, project, atau organisasi yang berbeda.
Membuat instance yang mendukung akses layanan pribadi dan Private Service Connect
Dengan membuat instance Cloud SQL yang mendukung akses layanan pribadi dan Private Service Connect, Anda mendapatkan manfaat dari kedua layanan tersebut. Untuk mengetahui informasi selengkapnya, lihat Opsi koneksi untuk instance.
Dengan menggunakan Private Service Connect, Anda dapat terhubung ke instance Cloud SQL dari beberapa jaringan VPC yang tergabung dalam grup, tim, project, atau organisasi yang berbeda.
Anda dapat membuat instance Cloud SQL yang mendukung akses layanan pribadi dan Private Service Connect menggunakan gcloud CLI atau API.
Untuk membuat instance yang mendukung akses layanan pribadi dan Private Service Connect, gunakan perintah gcloud beta sql instances create
:
gcloud beta sql instances createINSTANCE_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --enable-private-service-connect \ --allowed-psc-projects=ALLOWED_PROJECTS \ --availability-type=AVAILABILITY_TYPE \ --no-assign-ip \ --allocated-ip-range-name=RANGE_NAME \ --enable-google-private-path \ --tier=MACHINE_TYPE \ --database-version=DATABASE_VERSION \ --network=VPC_PSA_NETWORK_PATH \ --psc-auto-connections=network=VPC_PSC_NETWORK_PATH ,project=SERVICE_PROJECT
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 project ID atau nomor yang diizinkan, dipisahkan koma. Jika project tidak ada dalam daftar ini, Anda tidak dapat membuat endpoint Private Service Connect dalam project untuk terhubung ke 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 akan difailover ke zona lain dalam region yang Anda pilih.ZONAL
: tidak menyediakan kemampuan failover. Ini adalah nilai defaultnya.
Untuk 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.
- RANGE_NAME: untuk parameter opsional ini, tetapkan nama rentang yang dialokasikan untuk
rentang IP. Nama rentang harus sesuai dengan
RFC 1035
dan berisi 1 hingga 63 karakter. - MACHINE_TYPE: jenis mesin untuk instance.
- DATABASE_VERSION: versi database untuk instance (misalnya,
POSTGRES_13
). - VPC_PSA_NETWORK_PATH: nama dan jalur jaringan VPC yang dihubungkan oleh instance (misalnya,
"projects/PROJECT_ID/global/networks/default"
). Jaringan ini digunakan untuk koneksi akses layanan pribadi dan alamat IP akses layanan pribadi untuk instance Cloud SQL. - VPC_PSC_NETWORK_PATH: jalur ke jaringan VPC tempat endpoint Private Service Connect perlu dibuat. Misalnya:
projects/my-host-project/global/networks/default
. SERVICE_PROJECT: project tempat endpoint Private Service Connect dibuat. Jika jaringan VPC bukan VPC bersama, jaringan ini hanya dapat menjadi project host untuk jaringan. Jika ini adalah VPC bersama, project tersebut dapat berupa project host atau project layanan.
Untuk mempelajari cara terhubung ke instance yang mengaktifkan Private Service Connect, lihat Terhubung ke instance Cloud SQL.
Untuk menonaktifkan IP publik, gunakan parameter --no-assign-ip
.
Selain itu secara opsional, gunakan parameter --enable-google-private-path
untuk mengizinkan layanan Google Cloud lain seperti
BigQuery untuk mengakses data di Cloud SQL dan membuat kueri terhadap data
ini melalui koneksi IP pribadi. Parameter ini hanya valid jika:
- Anda menggunakan parameter
--no-assign-ip
. - Menggunakan parameter
--network
untuk menentukan nama jaringan VPC yang ingin Anda gunakan untuk membuat koneksi pribadi.
Untuk membuat instance dengan akses layanan pribadi dan Private Service Connect yang diaktifkan, gunakan
resource Terraform google_sql_database_instance
.
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 && cdDIRECTORY && 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.
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 akan difailover ke zona lain dalam region yang Anda pilih.ZONAL
: tidak menyediakan kemampuan failover. Ini adalah nilai defaultnya.
Untuk 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.
- VPC_PSA_NETWORK_PATH: jalur jaringan VPC yang dihubungkan dengan instance (misalnya,
"projects/PROJECT_ID/global/networks/default"
). Jaringan ini digunakan untuk koneksi akses layanan pribadi dan alamat IP akses layanan pribadi untuk instance Cloud SQL. - RANGE_NAME: untuk parameter opsional ini, tetapkan nama rentang yang dialokasikan untuk
rentang IP. Nama rentang harus sesuai dengan
RFC 1035
dan berisi 1 hingga 63 karakter. ALLOWED_PROJECTS: daftar project ID atau nomor yang diizinkan, dipisahkan koma. Jika project tidak ada dalam daftar ini, Anda tidak dapat membuat endpoint Private Service Connect dalam project untuk terhubung ke instance.
- VPC_PSC_NETWORK_PATH: jalur ke jaringan VPC tempat endpoint Private Service Connect perlu dibuat. Misalnya:
projects/my-host-project/global/networks/default
. SERVICE_PROJECT: project tempat endpoint Private Service Connect dibuat. Jika jaringan VPC bukan VPC bersama, jaringan ini hanya dapat menjadi project host untuk jaringan. Jika ini adalah VPC bersama, project tersebut dapat berupa project host atau project layanan.
- MACHINE_TYPE: jenis mesin untuk instance.
Untuk mempelajari cara terhubung ke instance yang mengaktifkan Private Service Connect, lihat Terhubung ke instance Cloud SQL.
Anda menetapkan parameter ipv4Enabled
ke false
karena instance Anda memiliki alamat IP internal.
Jika Anda menetapkan parameter enablePrivatePathForGoogleCloudServices
opsional ke true
, berarti Anda mengizinkan layanan Google Cloud lain, seperti BigQuery, untuk mengakses data di Cloud SQL dan membuat kueri terhadap data ini melalui koneksi IP internal. Dengan menetapkan parameter ini ke false
, layanan Google Cloud lainnya tidak dapat mengakses data di Cloud SQL melalui koneksi IP internal.
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": "POSTGRES_13", "kind": "sql#instance", "settings": { "availabilityType": "AVAILABILITY_TYPE ", "ipConfiguration": { "ipv4Enabled": false, "privateNetwork":VPC_PSA_NETWORK_PATH , "allocatedIpRange": "RANGE_NAME ", "enablePrivatePathForGoogleCloudServices": true, "pscConfig": { "allowedConsumerProjects": [ "ALLOWED_PROJECTS " ], "pscAutoConnections": [ { "consumerProject":"SERVICE_PROJECT ", "consumerNetwork":"projects/SERVICE_PROJECT /global/networks/VPC_PSC_NETWORK_PATH " } ], "pscEnabled": true } }, "kind": "sql#settings", "pricingPlan": "PER_USE", "replicationType": "SYNCHRONOUS", "tier": "MACHINE_TYPE " } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances"
PowerShell (Windows)
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances" | Select-Object -Expand Content
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 " }
Menonaktifkan Private Service Connect untuk instance
Anda dapat menonaktifkan Private Service Connect untuk instance yang mengaktifkan akses layanan pribadi dan Private Service Connect.
Saat menonaktifkan Private Service Connect untuk instance, Anda dapat mengharapkan operasi ini memerlukan waktu 8 menit dengan waktu nonaktif sekitar 45 detik di instance Anda. Setelah operasi selesai, akses layanan pribadi dan jalur konektivitas Private Service Connect tidak lagi ada bersama di instance yang sama. Anda tidak dapat terhubung ke instance menggunakan Private Service Connect.
Anda dapat menonaktifkan Private Service Connect untuk instance menggunakan gcloud CLI atau API.
Untuk menonaktifkan Private Service Connect untuk instance, gunakan perintah gcloud beta sql instances patch
:
gcloud beta sql instances patchINSTANCE_NAME \ --project=PROJECT_ID \ --no-enable-private-service-connect \ --clear-allowed-psc-projects
Lakukan penggantian berikut:
- INSTANCE_NAME: nama instance
- PROJECT_ID: ID atau nomor project project Google Cloud yang berisi instance
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:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_NAME
Meminta isi JSON:
{ "kind": "sql#instance", "name": "INSTANCE_NAME ", "project": "PROJECT_ID ", "settings": { "ipConfiguration": { "pscConfig": { "pscEnabled": "false", "allowedConsumerProjects": [{}] } }, "kind": "sql#settings" } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_NAME "
PowerShell (Windows)
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_NAME " | Select-Object -Expand Content
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": "UPDATE", "name": "OPERATION_ID ", "targetId": "INSTANCE_NAME ", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /operations/OPERATION_ID ", "targetProject": "PROJECT_ID " }
Mengaktifkan Private Service Connect untuk instance
Anda dapat mengaktifkan Private Service Connect untuk instance yang telah mengaktifkan akses layanan pribadi. Anda dapat menggunakan Private Service Connect untuk terhubung ke instance Cloud SQL dari beberapa jaringan VPC.
Saat mengaktifkan Private Service Connect untuk instance, Anda dapat mengharapkan operasi ini memerlukan waktu 8 menit dengan waktu nonaktif sekitar 45 detik di instance Anda. Setelah operasi selesai, akses layanan pribadi dan jalur konektivitas Private Service Connect akan ada bersama di instance yang sama.
Anda dapat mengaktifkan Private Service Connect untuk instance menggunakan gcloud CLI atau API.
Untuk mengaktifkan Private Service Connect untuk instance, gunakan perintah gcloud beta sql instances patch
:
gcloud beta sql instances patchINSTANCE_NAME \ --project=PROJECT_ID \ --enable-private-service-connect \ --allowed-psc-projects=ALLOWED_PROJECTS \ --psc-auto-connections=network=VPC_PSC_NETWORK_PATH ,project=SERVICE_PROJECT
Lakukan penggantian berikut:
- INSTANCE_NAME: nama instance
- PROJECT_ID: ID atau nomor project project Google Cloud yang berisi instance
ALLOWED_PROJECTS: daftar project ID atau nomor yang diizinkan, dipisahkan koma. Jika project tidak ada dalam daftar ini, Anda tidak dapat membuat endpoint Private Service Connect dalam project untuk terhubung ke instance.
- VPC_PSC_NETWORK_PATH: jalur ke jaringan VPC tempat endpoint Private Service Connect dibuat. Misalnya:
projects/my-host-project/global/networks/default
. SERVICE_PROJECT: project tempat endpoint Private Service Connect dibuat. Jika jaringan VPC bukan VPC bersama, jaringan ini hanya dapat menjadi project host untuk jaringan. Jika ini adalah VPC bersama, project tersebut dapat berupa project host atau project layanan.
Untuk mempelajari cara terhubung ke instance yang mengaktifkan Private Service Connect, lihat Terhubung ke instance Cloud SQL.
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.
- ALLOWED_PROJECTS: daftar project ID atau nomor yang diizinkan, dipisahkan koma. Project ini menggantikan project yang sudah dikonfigurasi untuk menggunakan Private Service Connect. Jika project tidak ada dalam daftar ini, Anda tidak dapat membuat endpoint Private Service Connect dalam project untuk terhubung ke instance.
- VPC_PSC_NETWORK_PATH: jalur ke jaringan VPC tempat endpoint Private Service Connect dibuat. Misalnya:
projects/my-host-project/global/networks/default
. SERVICE_PROJECT: project tempat endpoint Private Service Connect dibuat. Jika jaringan VPC bukan VPC bersama, jaringan ini hanya dapat menjadi project host untuk jaringan. Jika ini adalah VPC bersama, project tersebut dapat berupa project host atau project layanan.
Metode HTTP dan URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_NAME
Meminta isi JSON:
{ "kind": "sql#instance", "name": "INSTANCE_NAME ", "project": "PROJECT_ID ", "settings": { "ipConfiguration": { "pscConfig": { "pscAutoConnections": [ { "consumerProject":"SERVICE_PROJECT ", "consumerNetwork":"projects/SERVICE_PROJECT /global/networks/VPC_PSC_NETWORK_PATH " } ], "pscEnabled": "true", "allowedConsumerProjects": [ALLOWED_PROJECTS ] } }, "kind": "sql#settings" } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_NAME "
PowerShell (Windows)
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_NAME " | Select-Object -Expand Content
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": "UPDATE", "name": "OPERATION_ID ", "targetId": "INSTANCE_NAME ", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /operations/OPERATION_ID ", "targetProject": "PROJECT_ID " }
Untuk mempelajari cara terhubung ke instance yang mengaktifkan Private Service Connect, lihat Terhubung ke instance Cloud SQL.