Menghubungkan ke instance menggunakan Private Service Connect

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 tergabung dalam berbagai grup, tim, project, atau organisasi.

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, setiap jaringan memiliki administrator 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 selama siklus prosesnya.
cloudsql.instanceUser Memberikan akses ke instance Cloud SQL. Jika terhubung melalui klien Proxy Auth Cloud SQL, Anda harus memiliki peran Klien Cloud SQL. Jika terhubung secara langsung, Anda tidak memerlukan peran dan izin Identity and Access Management (IAM).

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

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 terdapat dalam daftar ini, Anda tidak dapat menggunakannya untuk membuat instance dan mengaktifkan Private Service Connect untuk project tersebut.

  • 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 dipindahkan ke zona lain dalam region yang dipilih.
    • ZONAL: tidak menyediakan 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, POSTGRES_13).

Terraform

Untuk membuat instance dengan Private Service Connect yang diaktifkan, gunakan google_sql_database_instanceresource Terraform.

resource "google_sql_database_instance" "default" {
  name             = "postgres-instance"
  region           = "us-central1"
  database_version = "POSTGRES_14"
  settings {
    tier              = "db-custom-2-7680"
    availability_type = "REGIONAL"
    backup_configuration {
      enabled = true
    }
    ip_configuration {
      psc_config {
        psc_enabled               = true
        allowed_consumer_projects = []
      }
      ipv4_enabled = false
    }
  }
  deletion_protection = false # Set to "true" to prevent destruction of the resource
}

Untuk menerapkan konfigurasi Terraform di project Google Cloud, selesaikan langkah-langkah di bagian berikut.

Menyiapkan Cloud Shell

  1. Luncurkan Cloud Shell.
  2. 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).

  1. Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki ekstensi .tf—misalnya main.tf. Dalam tutorial ini, file ini disebut sebagai main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. 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.

  3. Tinjau dan ubah contoh parameter untuk diterapkan pada lingkungan Anda.
  4. Simpan perubahan Anda.
  5. 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

  1. Tinjau konfigurasi dan pastikan bahwa resource yang dibuat atau diperbarui oleh Terraform sesuai dengan ekspektasi Anda:
    terraform plan

    Koreksi konfigurasi jika diperlukan.

  2. Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan yes pada perintah:
    terraform apply

    Tunggu hingga Terraform menampilkan pesan "Apply complete!".

  3. 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 v1

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 dipindahkan ke zona lain dalam region yang dipilih.
    • ZONAL: tidak menyediakan 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 terdapat dalam daftar ini, Anda tidak dapat menggunakannya untuk membuat instance dan mengaktifkan Private Service Connect untuk project tersebut.

  • 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": "POSTGRES_13",
  "kind": "sql#instance",
  "settings": {
    "availabilityType": "AVAILABILITY_TYPE",
    "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"
}

REST v1beta4

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 dipindahkan ke zona lain dalam region yang dipilih.
    • ZONAL: tidak menyediakan 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 terdapat dalam daftar ini, Anda tidak dapat menggunakannya untuk membuat instance dan mengaktifkan Private Service Connect untuk project tersebut.

  • MACHINE_TYPE: jenis mesin untuk instance.

Metode HTTP dan URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/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,
      "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/sql/v1beta4/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/sql/v1beta4/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 yang mengaktifkan Private Service Connect, 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_addressresource Terraform.

resource "google_compute_address" "default" {
  name         = "psc-compute-address"
  region       = "us-central1"
  address_type = "INTERNAL"
  subnetwork   = "default"     # Replace value with the name of the subnet here.
  address      = "10.128.0.42" # Replace value with the IP address to reserve.
}

data "google_sql_database_instance" "default" {
  name = resource.google_sql_database_instance.default.name
}

resource "google_compute_forwarding_rule" "default" {
  name                  = "psc-forwarding-rule-${google_sql_database_instance.default.name}"
  region                = "us-central1"
  network               = "default"
  ip_address            = google_compute_address.default.self_link
  load_balancing_scheme = ""
  target                = data.google_sql_database_instance.default.psc_service_attachment_link
}

Untuk menerapkan konfigurasi Terraform di project Google Cloud, selesaikan langkah-langkah di bagian berikut.

Menyiapkan Cloud Shell

  1. Luncurkan Cloud Shell.
  2. 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).

  1. Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki ekstensi .tf—misalnya main.tf. Dalam tutorial ini, file ini disebut sebagai main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. 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.

  3. Tinjau dan ubah contoh parameter untuk diterapkan pada lingkungan Anda.
  4. Simpan perubahan Anda.
  5. 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

  1. Tinjau konfigurasi dan pastikan bahwa resource yang dibuat atau diperbarui oleh Terraform sesuai dengan ekspektasi Anda:
    terraform plan

    Koreksi konfigurasi jika diperlukan.

  2. Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan yes pada perintah:
    terraform apply

    Tunggu hingga Terraform menampilkan pesan "Apply complete!".

  3. 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.

Membuat endpoint Private Service Connect

Anda dapat mencadangkan 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

  1. Guna mencadangkan 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 dicadangkan. Alamat IP ini harus berada dalam rentang IP utama subnet. Alamat IP dapat berupa alamat RFC 1918 atau subnet dengan rentang non-RFC.
  2. Untuk memverifikasi bahwa alamat IP sudah dicadangkan, gunakan perintah gcloud compute addresses list:

    gcloud compute addresses list ADDRESS_NAME \
    --project=PROJECT_ID

    Dalam respons, pastikan status RESERVED muncul untuk alamat IP.

  3. 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

    Lakukan penggantian berikut:

    • ENDPOINT_NAME: nama endpoint
    • NETWORK_NAME: nama jaringan VPC untuk endpoint
    • SERVICE_ATTACHMENT_URI: URI lampiran layanan
  4. Untuk memverifikasi 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 kolom pscConnectionStatus. 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 menyediakan nama DNS yang disarankan. Sebaiknya Anda membuat data DNS di zona DNS pribadi pada jaringan VPC yang sesuai. Hal ini memungkinkan penggunaan Proxy Auth Cloud SQL secara konsisten untuk terhubung dari berbagai jaringan.

gcloud

  1. 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

    Pada respons, pastikan nama DNS muncul. Nama ini memiliki pola berikut: INSTANCE_UID.PROJECT_DNS_LABEL.REGION_NAME.sql.goog.. Contoh: 1a23b4cd5e67.1a2b345c6d27.us-central1.sql.goog..

  2. 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 DNS untuk zona tersebut, seperti REGION_NAME.sql.goog. (dengan REGION_NAME adalah nama region untuk zona tersebut)
    • NETWORK_NAME: nama jaringan VPC
  3. 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_NAME \
    --project=PROJECT_ID \
    --type=RRSET_TYPE \
    --rrdatas=RR_DATA \
    --zone=ZONE_NAME

    Lakukan penggantian berikut:

    • DNS_NAME: nama DNS yang Anda ambil sebelumnya dalam prosedur ini.
    • 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 seperti rrdata1 rrdata2 rrdata3 (misalnya, 10.1.2.3 10.2.3.4 10.3.4.5).

Menghubungkan langsung menggunakan data DNS

Sebelum terhubung ke instance Cloud SQL menggunakan data DNS, selesaikan tindakan berikut:

  1. Buat endpoint Private Service Connect.
  2. Pastikan bahwa lampiran layanan instance menerima endpoint. Untuk memverifikasi bahwa status endpoint adalah ACCEPTED, periksa statusnya.
  3. Konfigurasi zona terkelola DNS dan data DNS.

Setelah memenuhi kondisi ini, gunakan nama DNS untuk mengakses instance dari jaringan VPC mana pun tempat Anda membuat endpoint.

gcloud

  1. Untuk mengambil data DNS endpoint Private Service Connect, gunakan perintah gcloud compute addresses describe:

    gcloud compute addresses describe DNS_RECORD \
    --project=PROJECT_ID \
    --region=REGION_NAME

    Lakukan penggantian berikut:

    • DNS_RECORD: data DNS untuk endpoint
    • PROJECT_ID: ID atau nomor project project Google Cloud yang berisi endpoint
    • REGION_NAME: nama region untuk endpoint
  2. Untuk terhubung ke instance Cloud SQL, gunakan data DNS.

    psql "sslmode=disable dbname=DATABASE_NAME user=USERNAME host=DNS_RECORD"

    Lakukan penggantian berikut:

    • DATABASE_NAME: nama database Cloud SQL untuk PostgreSQL yang terdapat dalam instance
    • USERNAME: nama pengguna yang terhubung ke instance
    • DNS_RECORD: data DNS endpoint

Terhubung langsung melalui alamat IP internal

Sebelum terhubung ke instance Cloud SQL dengan Private Service Connect yang diaktifkan, selesaikan tindakan berikut:

  1. Buat endpoint Private Service Connect.
  2. Pastikan bahwa lampiran layanan instance menerima endpoint. Untuk memverifikasi bahwa status endpoint adalah ACCEPTED, periksa statusnya.

Setelah memenuhi kondisi ini, gunakan alamat IP endpoint untuk mengakses instance dari jaringan VPC tempat Anda membuat endpoint.

gcloud

  1. Untuk mengambil alamat IP endpoint Private Service Connect, 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
  2. Untuk terhubung ke instance Cloud SQL, gunakan alamat IP internal.

    psql "sslmode=disable dbname=DATABASE_NAME user=USERNAME hostaddr=IP_ADDRESS"

    Lakukan penggantian berikut:

    • DATABASE_NAME: nama database Cloud SQL untuk PostgreSQL yang terdapat dalam instance
    • USERNAME: nama pengguna yang terhubung ke instance
    • IP_ADDRESS: alamat IP endpoint

Terhubung menggunakan Proxy Auth Cloud SQL

Proxy Auth Cloud SQL adalah konektor yang menyediakan akses aman ke instance dengan Private Service Connect yang diaktifkan tanpa memerlukan jaringan resmi atau untuk mengonfigurasi SSL.

Untuk mengizinkan koneksi klien Proxy Auth Cloud SQL, siapkan data DNS yang cocok dengan nama DNS yang direkomendasikan dan disediakan untuk instance. Pencatatan DNS adalah pemetaan antara sumber daya DNS dan nama domain.

Download dan instal Proxy Auth Cloud SQL

Agar terhubung ke instance dengan Private Service Connect yang diaktifkan, Anda harus mendownload dan menginstal biner untuk Proxy Auth Cloud SQL. Biner yang Anda unduh tergantung pada sistem operasi, dan apakah 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

Auth Proxy Cloud SQL mendukung koneksi ke instance dengan Private Service Connect yang diaktifkan. Untuk mengetahui informasi selengkapnya, lihat Memulai Proxy Auth Cloud SQL.

gcloud

  1. Untuk melihat informasi ringkasan tentang instance Cloud SQL, termasuk nama koneksi instance, gunakan perintah gcloud sql instances describe. Nama koneksi ini menggunakan format PROJECT_ID:REGION_NAME:INSTANCE_NAME.

    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
  2. Salin nama koneksi instance.
  3. Luncurkan Auth Proxy 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 dan disediakan untuk instance tersebut. 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.

Menghubungkan dari App Engine Standard, Cloud Run, atau Cloud Functions

Untuk terhubung ke instance Cloud SQL dengan Private Service Connect yang diaktifkan, Anda dapat menggunakan App Engine Standard, Cloud Run, atau Cloud Functions.

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 cadangkan 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 ini 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 yang 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 yang 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 PostgreSQL, nomor port-nya adalah 5432.

Batasan

  • Anda dapat menyiapkan hingga 20 endpoint Private Service Connect yang terhubung ke lampiran layanan instance Cloud SQL yang mengaktifkan Private Service Connect.
  • Flag berikut tidak valid atau terpengaruh:
    • --no-assign-ip: menggunakan flag ini karena instance Cloud SQL yang mengaktifkan Private Service Connect 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 terkait 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 yang mengaktifkan Private Service Connect.
    • 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, atau Cloud Build untuk terhubung ke instance Cloud SQL dengan Private Service Connect yang diaktifkan.
  • Jika melakukan migrasi homogen ke Cloud SQL, Anda tidak dapat menggunakan Database Migration Service untuk terhubung ke instance Cloud SQL yang mengaktifkan Private Service Connect.
  • Saat menguji konektivitas ke instance Cloud SQL dengan Private Service Connect yang diaktifkan, Anda tidak dapat menetapkan item berikut:
    • Alamat IP internal atau nama DNS instance 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.
  • Ekstensi pglogical, pl/proxy, dblink, dan postgres_fdw tidak didukung.
  • Kontrol, logging, dan metrik berbasis IP klien tidak didukung untuk insight Sistem dan Kueri. Namun, VPN dan Interconnect didukung.
  • Jika project jaringan Anda berisi instance yang menggunakan arsitektur jaringan Cloud SQL lama, Anda tidak dapat membuat instance Private Service Connect. Cloud SQL menyediakan alat untuk membantu Anda mengupgrade instance dari arsitektur jaringan lama ke arsitektur jaringan baru. Untuk mengetahui informasi selengkapnya atau untuk memeriksa arsitektur jaringan instance Cloud SQL dalam project Anda dan melakukan upgrade yang diperlukan, lihat Mengupgrade instance ke arsitektur jaringan 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.
  1. Untuk memeriksa status endpoint, 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
  2. Verifikasi bahwa status endpoint adalah ACCEPTED. Jika statusnya PENDING, berarti instance tidak mengizinkan project Google Cloud yang berisi endpoint. Pastikan project jaringan tempat endpoint dibuat diizinkan. Untuk mengetahui informasi selengkapnya, lihat Mengedit instance dengan mengaktifkan Private Service Connect.

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 yang diaktifkan.
  • Pelajari lebih lanjut cara meng-clone instance dengan mengaktifkan Private Service Connect.
  • Pelajari lebih lanjut cara melihat informasi ringkasan tentang instance yang mengaktifkan Private Service Connect.
  • Pelajari lebih lanjut cara menyetel dan menghapus ketersediaan tinggi untuk instance yang mengaktifkan Private Service Connect.
  • Pelajari lebih lanjut cara mengedit dan menghapus instance yang mengaktifkan Private Service Connect.