Menghubungkan ke instance menggunakan Private Service Connect

Untuk terhubung ke instance utama, pool baca, atau sekunder AlloyDB untuk PostgreSQL dari beberapa jaringan Virtual Private Cloud (VPC) yang termasuk dalam grup, tim, project, atau organisasi yang berbeda tanpa mengonfigurasi Peering Jaringan VPC, Anda dapat mengonfigurasi Private Service Connect.

Peran yang diperlukan

Bergantung pada apakah Anda mengonfigurasi infrastruktur Private Service Connect atau terhubung sebagai klien database, berikan peran Identity and Access Management (IAM) yang sesuai:

Tugas Peran Deskripsi
Mengonfigurasi endpoint dan lampiran jaringan Private Service Connect Admin Jaringan Compute (roles/compute.networkAdmin) Memberikan kontrol penuh atas jaringan VPC konsumen yang memulai koneksi ke instance AlloyDB. Jika Anda terhubung dari beberapa jaringan VPC, setiap jaringan dikelola oleh administratornya sendiri.
Mengonfigurasi zona dan data DNS pribadi Administrator DNS (roles/dns.admin) Memberikan kontrol penuh atas resource Cloud DNS, termasuk zona DNS pribadi dan set data.
Membuat dan mengelola cluster dan instance AlloyDB AlloyDB Admin (roles/alloydb.admin) Memberikan kontrol penuh atas cluster dan instance AlloyDB selama siklus prosesnya. Jika Anda menggunakan peran khusus, berikan alloydb.clusters.create (untuk mengaktifkan Private Service Connect di cluster) serta alloydb.instances.create dan alloydb.instances.update (untuk mengonfigurasi project konsumen dan URI lampiran jaringan yang diizinkan).
Menghubungkan ke instance sebagai klien AlloyDB Client (roles/alloydb.client) dan Service Usage Consumer (roles/serviceusage.serviceUsageConsumer) (Opsional) Diperlukan jika Anda terhubung melalui Proxy Auth AlloyDB atau Konektor Bahasa AlloyDB. Jika Anda juga menggunakan autentikasi database IAM, berikan peran Pengguna Database AlloyDB (roles/alloydb.databaseUser). Jika Anda terhubung langsung menggunakan autentikasi database bawaan, peran IAM tidak diperlukan untuk koneksi klien.

Membuat endpoint Private Service Connect

Endpoint Private Service Connect adalah alamat IP internal di jaringan VPC konsumen yang dapat diakses langsung oleh klien di jaringan tersebut untuk terhubung ke instance AlloyDB.

Agar AlloyDB membuat endpoint Private Service Connect secara otomatis, lakukan hal berikut:

  • Gunakan kembali kebijakan koneksi layanan yang ada atau buat kebijakan koneksi layanan di jaringan VPC Anda. Dengan kebijakan ini, Anda dapat menyediakan endpoint Private Service Connect secara otomatis.
  • Buat cluster dan instance AlloyDB dengan Private Service Connect yang diaktifkan untuk instance, dan konfigurasikan instance untuk membuat endpoint Private Service Connect secara otomatis.
  • Ambil endpoint untuk instance. Dengan begitu, Anda dapat menggunakan endpoint untuk terhubung ke instance.
  • Opsional: Update cluster dan instance AlloyDB yang ada dengan Private Service Connect yang diaktifkan untuk membuat endpoint secara otomatis.

Anda juga dapat membuat endpoint Private Service Connect secara manual.

Membuat endpoint secara otomatis

Untuk mengonfigurasi instance Anda agar AlloyDB membuat endpoint Private Service Connect secara otomatis, ikuti langkah-langkah tingkat tinggi berikut:

  1. Buat kebijakan koneksi layanan.
  2. Buat instance AlloyDB.
  3. Mengambil endpoint.
  4. Memperbarui instance untuk membuat endpoint secara otomatis.
  5. Konfigurasi konektivitas keluar.

Membuat kebijakan koneksi layanan

Anda dapat menggunakan kembali kebijakan koneksi layanan yang ada atau membuat kebijakan koneksi layanan menggunakan konsol Google Cloud atau Google Cloud CLI.

Dengan kebijakan koneksi layanan, Anda dapat mengizinkan class layanan yang ditentukan untuk membuat endpoint Private Service Connect di jaringan VPC konsumen Anda. Anda dapat menggunakan kebijakan koneksi layanan agar AlloyDB membuat endpoint Private Service Connect secara otomatis.

Konsol

  1. Di konsol Google Cloud , buka halaman Private Service Connect.

    Buka Private Service Connect

  2. Klik tab Connection policies.

  3. Klik Create connection policy.

  4. Masukkan Name untuk kebijakan koneksi.

  5. Di bagian Service details, untuk Service class, pilih google-cloud-alloydb.

  6. Di bagian Endpoints scope, pilih Network dan Region tempat kebijakan ini diterapkan.

  7. Di bagian Endpoints configuration, pilih satu atau beberapa subnet dari menu Subnetworks. Subnet digunakan untuk mengalokasikan alamat IP untuk endpoint.

  8. Opsional: Tentukan Connection limit untuk kebijakan. Batas ini menentukan jumlah endpoint yang dapat dibuat AlloyDB untuk kebijakan koneksi ini. Jika Anda tidak menentukan batas koneksi, berarti tidak ada batas.

  9. Klik Create policy.

gcloud

Untuk membuat kebijakan koneksi layanan, gunakan perintah service-connection-policies create.

gcloud network-connectivity service-connection-policies create POLICY_NAME \
    --network=NETWORK \
    --project=PROJECT_ID \
    --region=REGION \
    --service-class=SERVICE_CLASS \
    --subnets=https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETS \
    --psc-connection-limit=LIMIT \
    --description="DESCRIPTION" \
    --producer-instance-location=PRODUCER_INSTANCE_LOCATION \
    --allowed-google-producers-resource-hierarchy-level=LIST_OF_NODES

Ganti kode berikut:

  • POLICY_NAME: nama kebijakan koneksi layanan Anda.
  • NETWORK: jaringan tempat kebijakan ini berlaku.
  • PROJECT_ID: project ID atau nomor project jaringan VPC. Untuk jaringan VPC Bersama, Anda harus men-deploy kebijakan koneksi layanan di project host karena kebijakan ini tidak didukung di project layanan.
  • REGION: region tempat kebijakan ini berlaku. Kebijakan yang sama harus ada untuk setiap region tempat Anda ingin mengotomatiskan konektivitas layanan.
  • SERVICE_CLASS: ID resource yang disediakan produsen dari class layanan. Untuk AlloyDB, class layanannya adalah google-cloud-alloydb.
  • SUBNETS: satu atau beberapa subnet konsumen reguler yang digunakan untuk mengalokasikan alamat IP untuk endpoint Private Service Connect. Alamat IP ini dialokasikan secara otomatis dan dikembalikan ke pool subnet saat instance layanan terkelola dibuat dan dihapus. Subnet harus berada di region yang sama dengan kebijakan koneksi layanan. Jika beberapa kebijakan koneksi memiliki region yang sama, Anda dapat menggunakan kembali subnetwork yang sama dalam kebijakan ini. Anda dapat memasukkan beberapa subnet dalam daftar yang dipisahkan koma.
  • LIMIT: jumlah maksimum endpoint yang dapat Anda buat dengan kebijakan ini. Jika Anda tidak menentukan batas, maka tidak ada batas.
  • DESCRIPTION: deskripsi opsional untuk kebijakan koneksi layanan.
  • PRODUCER_INSTANCE_LOCATION: menentukan apakah kebijakan mengotomatiskan koneksi ke instance AlloyDB. Anda dapat menetapkan nilai ini ke salah satu dari berikut:

    • none (default): instance AlloyDB berada dalam project yang sama dengan kebijakan koneksi layanan. Dalam lingkungan VPC Bersama, jika instance AlloyDB berada di project layanan dan Anda membuat kebijakan koneksi di project host, Anda harus menetapkan parameter ini ke custom-resource-hierarchy-levels.
    • custom-resource-hierarchy-levels: mengharuskan Anda menetapkan jalur lokasi Resource Manager untuk project yang ingin Anda otomatiskan konektivitasnya melalui parameter allowed-google-producers-resource-hierarchy-level.
  • LIST_OF_NODES: tetapkan parameter ini jika lokasi instance produsen Anda ditetapkan ke custom-resource-hierarchy-levels. Parameter ini adalah daftar project, folder, dan organisasi tempat instance yang ingin Anda otomatiskan konektivitasnya berada. Daftar ini dalam bentuk projects/PROJECT_ID, folders/FOLDER_ID, atau organizations/ORGANIZATION_ID.

Misalnya, perintah berikut akan membuat kebijakan koneksi layanan untuk class layanan google-cloud-alloydb yang mengalokasikan alamat IP dari subnet managed-service-subnet. Maksimal 10 endpoint Private Service Connect dapat dibuat dengan kebijakan ini. Endpoint harus dibuat dalam project yang berada di organisasi yang sama dengan instance layanan terkelola. Instance AlloyDB berada di project myproject.

gcloud network-connectivity service-connection-policies create alloydb-policy \
    --network=default \
    --project=my-project \
    --region=us-central1 \
    --service-class=google-cloud-alloydb \
    --subnets=managed-service-subnet \
    --psc-connection-limit=10 \
    --producer-instance-location=custom-resource-hierarchy-levels \
    --allowed-google-producers-resource-hierarchy-level=projects/myproject

Membuat instance AlloyDB

Anda dapat membuat instance dengan Private Service Connect yang diaktifkan dan mengonfigurasi instance untuk membuat endpoint secara otomatis menggunakan konsol Google Cloud , gcloud CLI, atau Terraform.

Konsol

  1. Di konsol Google Cloud , buka halaman Clusters.

    Buka Cluster

  2. Klik Create cluster.

  3. Di Cluster ID, masukkan my-cluster.

  4. Masukkan sandi. Catat sandi ini karena Anda akan menggunakannya dalam panduan memulai ini.

  5. Pertahankan versi database default.

  6. Pilih region us-central1 (Iowa).

  7. Pertahankan ID instance default, my-cluster-primary.

  8. Di Zonal availability, pertahankan Single zone sebagai opsi yang dipilih. Meskipun kami tidak merekomendasikan instance zona tunggal untuk produksi, Anda menggunakan zona tunggal dalam panduan memulai ini untuk meminimalkan biaya. Untuk mengetahui informasi selengkapnya, lihat Mengurangi biaya menggunakan instance dasar.

  9. Pilih jenis mesin 2 vCPU, 16 GB.

  10. Mempertahankan konektivitas IP pribadi.

    1. Pilih Private Service Connect (PSC).
    2. Klik Add an endpoint.
    3. Pilih project tempat Anda ingin membuat endpoint.
    4. Pilih jaringan.
    5. Klik Check policy untuk mengetahui informasi kebijakan koneksi layanan.
  11. Pertahankan setelan default di bagian keamanan jaringan.

  12. Jangan buat perubahan di Show advanced options.

  13. Klik Create cluster. Mungkin perlu waktu beberapa menit hingga AlloyDB membuat cluster dan menampilkannya di halaman Overview cluster utama.

gcloud

Untuk membuat cluster, gunakan perintah gcloud alloydb clusters create.

gcloud alloydb clusters create CLUSTER_ID \
  --password=PASSWORD \
  --region=REGION_ID \
  --project=PROJECT_ID \
  --enable-private-service-connect

Ganti kode berikut:

  • CLUSTER_ID: ID cluster yang Anda buat. Nama harus diawali dengan huruf kecil dan dapat berisi huruf kecil, angka, dan tanda hubung.

  • PASSWORD: sandi yang akan digunakan untuk pengguna postgres default.

  • REGION_ID: region tempat cluster berada.

  • PROJECT_ID: ID project tempat cluster berada.

Perintah ini memulai operasi yang berjalan lama, dan menampilkan ID operasi.

Untuk membuat instance AlloyDB, baik utama maupun kumpulan baca untuk menggunakan Private Service Connect, gunakan perintah gcloud alloydb instances create. Sertakan parameter --allowed-psc-projects untuk menentukan project konsumen mana yang dapat membuat endpoint untuk terhubung ke instance ini.

gcloud alloydb instances create INSTANCE_ID \
    --instance-type=PRIMARY \
    --cpu-count=CPU_COUNT \
    --availability-type=AVAILABILITY \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --allowed-psc-projects=ALLOWED_PROJECT_LIST \
    --psc-network-attachment-uri=NETWORK_ATTACHMENT_URI \
    --psc-auto-connections=network=CONSUMER_NETWORK,project=CONSUMER_PROJECT

Ganti kode berikut:

  • INSTANCE_ID: ID instance yang Anda buat. Nama harus diawali dengan huruf kecil dan dapat berisi huruf kecil, angka, dan tanda hubung.
  • CPU_COUNT: jumlah vCPU yang Anda inginkan untuk instance. Nilai yang valid mencakup berikut ini:
    • 2: 2 vCPU, RAM 16 GB
    • 4: 4 vCPU, RAM 32 GB
    • 8: 8 vCPU, RAM 64 GB
    • 16: 16 vCPU, RAM 128 GB
    • 32: 32 vCPU, RAM 256 GB
    • 64: 64 vCPU, RAM 512 GB
    • 96: 96 vCPU, RAM 768 GB
    • 128: 128 vCPU, RAM 864 GB
  • AVAILABILITY: menunjukkan apakah instance ini harus memiliki ketersediaan tinggi (HA) atau tidak, dengan node di beberapa zona. Nilai yang valid mencakup:
    • REGIONAL: membuat instance HA dengan node aktif dan standby yang terpisah, serta failover otomatis di antara keduanya. Ini adalah nilai default, yang cocok untuk lingkungan produksi.
    • ZONAL: membuat instance dasar, yang hanya berisi satu node, dan tanpa failover otomatis.
  • REGION_ID: region tempat instance berada.
  • CLUSTER_ID: ID cluster yang Anda buat sebelumnya.
  • ALLOWED_PROJECT_LIST: daftar project ID atau nomor project yang dipisahkan koma yang ingin Anda izinkan untuk mengakses instance—misalnya, my-project-1, 12345, my-project-n.
  • NETWORK_ATTACHMENT_URI (Opsional): nama resource lengkap URI lampiran jaringan yang Anda buat untuk konektivitas keluar. Misalnya: projects/PROJECT_ID/regions/REGION_ID/networkAttachments/NETWORK_ATTACHMENT_ID
  • CONSUMER_NETWORK: jalur ke jaringan VPC tempat endpoint Private Service Connect dibuat. Contoh: projects/my-host-project/global/networks/default. Opsi ini berlaku saat Anda membuat endpoint secara otomatis. Pastikan kebijakan koneksi layanan telah dibuat. Anda dapat membuat kebijakan sebelum atau setelah membuat instance.
  • CONSUMER_PROJECT: project tempat endpoint Private Service Connect dibuat. Jika Anda menggunakan jaringan VPC Bersama, project ini dapat berupa project host atau project layanan. Setiap project yang Anda tentukan dalam parameter koneksi otomatis akan otomatis ditambahkan ke project yang diizinkan. Secara opsional, untuk project apa pun yang ingin Anda buat endpoint Private Service Connect-nya secara manual, Anda dapat menambahkan project ini ke daftar project yang diizinkan.

Cluster sekunder yang dibuat untuk cluster utama yang mendukung Private Service Connect akan otomatis mewarisi konfigurasi Private Service Connect. Untuk mengetahui informasi selengkapnya, lihat Membuat cluster sekunder.

Terraform

Untuk membuat cluster dan instance AlloyDB dengan Private Service Connect yang diaktifkan, gunakan resource Terraform google_alloydb_cluster dan google_alloydb_instance:

resource "google_alloydb_cluster" "default" {
  cluster_id = "alloydb-cluster"
  location   = "us-central1"
  psc_config {
    psc_enabled = true
  }
}

resource "google_alloydb_instance" "default" {
  cluster       = google_alloydb_cluster.default.name
  instance_id   = "alloydb-instance"
  instance_type = "PRIMARY"
  machine_config {
    cpu_count = 2
  }
  psc_instance_config {
    allowed_consumer_projects = [data.google_project.project.number]
    psc_auto_connections {
      consumer_network = google_compute_network.default.id
      consumer_project = data.google_project.project.project_id
    }
    psc_interface_configs {
      network_attachment_resource = google_compute_network_attachment.default.id
    }
  }
}

resource "google_compute_network" "default" {
  name                    = "alloydb-network"
  auto_create_subnetworks = false
}

resource "google_compute_subnetwork" "default" {
  name          = "alloydb-subnetwork"
  region        = "us-central1"
  network       = google_compute_network.default.id
  ip_cidr_range = "10.0.0.0/16"
}

resource "google_compute_network_attachment" "default" {
  name                  = "alloydb-network-attachment"
  region                = "us-central1"
  connection_preference = "ACCEPT_AUTOMATIC"
  subnetworks = [
    google_compute_subnetwork.default.self_link
  ]
}

data "google_project" "project" {}

Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.

Mengambil endpoint

Dengan mengambil alamat IP internal, yang merupakan endpoint Private Service Connect untuk sebuah instance, Anda dapat menggunakan endpoint ini untuk terhubung ke instance.

Untuk melihat informasi tentang instance, termasuk alamat IP yang merupakan endpoint Private Service Connect untuk instance, gunakan perintah gcloud alloydb instances describe:

gcloud alloydb instances describe INSTANCE_NAME \
--project=PROJECT_ID \
--cluster=CLUSTER_ID \
--region=REGION_ID \
--format='json(pscInstanceConfig.pscAutoConnections)'

Ganti kode berikut:

Dalam respons, catat nilai yang muncul di samping kolom pscInstanceConfig.pscAutoConnections.ipAddress. Nilai ini adalah alamat IP internal yang juga merupakan endpoint Private Service Connect untuk instance.

Mengupdate instance untuk membuat endpoint secara otomatis

Untuk mengupdate instance agar membuat endpoint secara otomatis, gunakan perintah gcloud alloydb instances update dengan parameter --psc-auto-connections:

gcloud alloydb instances update INSTANCE_ID \
    --cluster=CLUSTER_ID \
    --region=REGION_ID \
    --project=PROJECT_ID \
    --psc-auto-connections=network=CONSUMER_NETWORK,project=CONSUMER_PROJECT

Ganti kode berikut:

  • INSTANCE_ID: ID instance yang Anda perbarui.
  • CLUSTER_ID: ID cluster.
  • REGION_ID: region tempat instance berada.
  • PROJECT_ID: ID project tempat instance berada.
  • CONSUMER_NETWORK: jalur ke jaringan VPC tempat endpoint Private Service Connect dibuat—misalnya, projects/my-host-project/global/networks/default.
  • CONSUMER_PROJECT: project tempat endpoint Private Service Connect dibuat.

Mengonfigurasi konektivitas keluar

Untuk mengaktifkan konektivitas keluar untuk instance AlloyDB dengan Private Service Connect yang diaktifkan, Anda harus menetapkan URI lampiran jaringan untuk instance tersebut. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi konektivitas keluar.

Membuat endpoint secara manual

Bagian berikut menjelaskan cara membuat endpoint Private Service Connect secara manual.

Membuat instance AlloyDB

Anda dapat membuat instance dengan Private Service Connect yang diaktifkan menggunakan konsol Google Cloud , gcloud CLI, atau Terraform.

Konsol

  1. Di konsol Google Cloud , buka halaman Clusters.

    Buka Cluster

  2. Klik Create cluster.

  3. Di Cluster ID, masukkan my-cluster.

  4. Masukkan sandi. Catat sandi ini karena Anda akan menggunakannya dalam panduan memulai ini.

  5. Pertahankan versi database default.

  6. Pilih region us-central1 (Iowa).

  7. Pertahankan ID instance default, my-cluster-primary.

  8. Di Zonal availability, pertahankan Single zone sebagai opsi yang dipilih. Meskipun kami tidak merekomendasikan instance zona tunggal untuk produksi, Anda menggunakan zona tunggal dalam panduan memulai ini untuk meminimalkan biaya. Untuk mengetahui informasi selengkapnya, lihat Mengurangi biaya menggunakan instance dasar.

  9. Pilih jenis mesin 2 vCPU, 16 GB.

  10. Pertahankan konektivitas IP pribadi, dan pilih Private Service Connect (PSC).

  11. Di bagian Allowed consumer projects, masukkan project ID atau nomor project yang ingin Anda izinkan untuk terhubung ke instance.

  12. Pertahankan setelan default di bagian keamanan jaringan.

  13. Jangan buat perubahan di Show advanced options.

  14. Klik Create cluster. Mungkin perlu waktu beberapa menit hingga AlloyDB membuat cluster dan menampilkannya di halaman Overview cluster utama.

gcloud

Untuk membuat cluster, gunakan perintah gcloud alloydb clusters create.

gcloud alloydb clusters create CLUSTER_ID \
  --password=PASSWORD \
  --region=REGION_ID \
  --project=PROJECT_ID \
  --enable-private-service-connect

Ganti kode berikut:

  • CLUSTER_ID: ID cluster yang Anda buat. Nama harus diawali dengan huruf kecil dan dapat berisi huruf kecil, angka, dan tanda hubung.

  • PASSWORD: sandi yang akan digunakan untuk pengguna postgres default.

  • REGION_ID: region tempat cluster berada.

  • PROJECT_ID: ID project tempat cluster berada.

Perintah ini memulai operasi yang berjalan lama, dan menampilkan ID operasi.

Untuk membuat instance utama, gunakan perintah gcloud alloydb instances create.

gcloud alloydb instances create INSTANCE_ID \
    --instance-type=PRIMARY \
    --cpu-count=CPU_COUNT \
    --availability-type=AVAILABILITY \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --allowed-psc-projects=ALLOWED_PROJECT_LIST \
    --psc-network-attachment-uri=NETWORK_ATTACHMENT_URI

Ganti kode berikut:

  • INSTANCE_ID: ID instance yang Anda buat. Nama harus diawali dengan huruf kecil dan dapat berisi huruf kecil, angka, dan tanda hubung.
  • CPU_COUNT: jumlah vCPU yang Anda inginkan untuk instance. Nilai yang valid mencakup berikut ini:
    • 2: 2 vCPU, RAM 16 GB
    • 4: 4 vCPU, RAM 32 GB
    • 8: 8 vCPU, RAM 64 GB
    • 16: 16 vCPU, RAM 128 GB
    • 32: 32 vCPU, RAM 256 GB
    • 64: 64 vCPU, RAM 512 GB
    • 96: 96 vCPU, RAM 768 GB
    • 128: 128 vCPU, RAM 864 GB
  • AVAILABILITY: menunjukkan apakah instance ini harus memiliki ketersediaan tinggi (HA) atau tidak, dengan node di beberapa zona. Nilai yang valid mencakup:
    • REGIONAL: membuat instance HA dengan node aktif dan standby yang terpisah, serta failover otomatis di antara keduanya. Ini adalah nilai default, yang cocok untuk lingkungan produksi.
    • ZONAL: membuat instance dasar, yang hanya berisi satu node, dan tanpa failover otomatis.
  • REGION_ID: region tempat instance berada.
  • CLUSTER_ID: ID cluster yang Anda buat sebelumnya.
  • ALLOWED_PROJECT_LIST: daftar project ID atau nomor project yang dipisahkan koma yang ingin Anda izinkan untuk mengakses instance—misalnya, my-project-1, 12345, my-project-n.
  • NETWORK_ATTACHMENT_URI (Opsional): nama resource lengkap URI lampiran jaringan yang Anda buat untuk konektivitas keluar. Misalnya: projects/PROJECT_ID/regions/REGION_ID/networkAttachments/NETWORK_ATTACHMENT_ID

Cluster sekunder yang dibuat untuk cluster utama yang mendukung Private Service Connect akan otomatis mewarisi konfigurasi Private Service Connect. Untuk mengetahui informasi selengkapnya, lihat Membuat cluster sekunder.

Terraform

Untuk membuat cluster dan instance AlloyDB dengan Private Service Connect yang diaktifkan, gunakan resource Terraform google_alloydb_cluster dan google_alloydb_instance:

resource "google_alloydb_cluster" "default" {
  cluster_id = "alloydb-cluster"
  location   = "us-central1"
  psc_config {
    psc_enabled = true
  }
}

resource "google_alloydb_instance" "default" {
  cluster       = google_alloydb_cluster.default.name
  instance_id   = "alloydb-instance"
  instance_type = "PRIMARY"
  machine_config {
    cpu_count = 2
  }
  psc_instance_config {
    allowed_consumer_projects = [data.google_project.project.number]
    psc_interface_configs {
      network_attachment_resource = google_compute_network_attachment.default.id
    }
  }
}

resource "google_compute_network" "default" {
  name                    = "alloydb-network"
  auto_create_subnetworks = false
}

resource "google_compute_subnetwork" "default" {
  name          = "alloydb-subnetwork"
  region        = "us-central1"
  network       = google_compute_network.default.id
  ip_cidr_range = "10.0.0.0/16"
}

resource "google_compute_network_attachment" "default" {
  name                  = "alloydb-network-attachment"
  region                = "us-central1"
  connection_preference = "ACCEPT_AUTOMATIC"
  subnetworks = [
    google_compute_subnetwork.default.self_link
  ]
}

data "google_project" "project" {}

Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.

Mendapatkan lampiran layanan

Setelah membuat instance AlloyDB dengan Private Service Connect yang diaktifkan, dapatkan URL lampiran layanan dan gunakan untuk membuat endpoint Private Service Connect.

Untuk melihat detail tentang instance, gunakan perintah gcloud alloydb instances describe.

gcloud alloydb instances describe INSTANCE_ID \
 --cluster=CLUSTER_ID \
 --region=REGION_ID

Ganti kode berikut:

  • INSTANCE_ID: ID instance.
  • CLUSTER_ID: ID cluster.
  • REGION_ID: region tempat cluster AlloyDB di-deploy.

Contoh respons untuk perintah tersebut adalah sebagai berikut:

{
  "pscInstanceConfig": {
    "serviceAttachmentLink": "https://www.googleapis.com/compute/v1/projects/my-project/regions/my-region/serviceAttachments/my-service-attachment-id",
    "allowedConsumerProjects": [
      "45678",
      "12345",
      "67890"
    ],
    "pscDnsName": "015f5524-0555-4a0a-ac5a-0d15d64b15cb.008225d5-070a-4566-aaad-fcb3c87c5901.us-east4.alloydb-psc.goog."
  }
}

Parameter serviceAttachmentLink menyimpan nilai URL lampiran layanan.

Membuat endpoint Private Service Connect

Untuk membuat endpoint Private Service Connect, teruskan URL lampiran layanan beserta nama endpoint yang unik. Untuk mengetahui informasi selengkapnya tentang cara membuat endpoint Private Service Connect, lihat Membuat endpoint.

Anda juga dapat mencadangkan alamat IP internal untuk endpoint Private Service Connect menggunakan perintah gcloud compute addresses create, lalu menggunakan alamat IP yang dicadangkan saat membuat endpoint, atau menyediakan alamat IP internal dan aturan penerusan menggunakan Terraform:

resource "google_compute_address" "psc_endpoint_ip" {
  name         = "alloydb-psc-endpoint-ip"
  region       = "us-central1"
  subnetwork   = google_compute_subnetwork.default.id
  address_type = "INTERNAL"
}

resource "google_compute_forwarding_rule" "psc_endpoint" {
  name                  = "alloydb-psc-endpoint"
  region                = "us-central1"
  network               = google_compute_network.default.id
  ip_address            = google_compute_address.psc_endpoint_ip.self_link
  load_balancing_scheme = ""
  target                = google_alloydb_instance.default.psc_instance_config[0].service_attachment_link
}

Mengonfigurasi konektivitas keluar

Untuk mengaktifkan konektivitas keluar, tetapkan URI lampiran jaringan saat Anda membuat atau mengupdate instance AlloyDB. URI ini memungkinkan konektivitas yang aman antara project Anda dan instance AlloyDB selama operasi keluar seperti migrasi.

Membuat lampiran jaringan

Anda dapat membuat lampiran jaringan yang dapat menerima koneksi secara otomatis (ACCEPT_AUTOMATIC) atau manual (ACCEPT_MANUAL). Untuk mengetahui informasi selengkapnya tentang cara membuat lampiran jaringan, lihat Membuat dan mengelola lampiran jaringan.

Jika Anda memilih untuk membuat lampiran jaringan yang menerima koneksi secara otomatis, Anda tidak perlu menetapkan daftar project yang diterima secara eksplisit. Untuk menerima koneksi secara manual, Anda harus menambahkan nomor project milik layanan dari project tempat instance AlloyDB Anda berada ke daftar project yang diterima.

Untuk menemukan nomor project milik layanan, jalankan perintah berikut:

gcloud alloydb clusters describe CLUSTER_ID --region=REGION_ID

Berikut adalah contoh respons:

pscConfig:
  pscEnabled: true
  serviceOwnedProjectNumber: 123456789012

Setelah Anda mengidentifikasi nomor project milik layanan, tambahkan project ke daftar project yang diterima, lalu buat lampiran jaringan.

Pastikan region lampiran jaringan sama dengan region instance AlloyDB. Selain itu, subnet yang digunakan untuk membuat lampiran jaringan harus termasuk dalam rentang IP RFC 1918, yaitu 10.0.0.0/8, 172.16.0.0/12, dan 192.168.0.0/16.

Mengupdate instance untuk konektivitas keluar

Untuk mengaktifkan konektivitas keluar untuk instance AlloyDB yang ada dengan Private Service Connect yang diaktifkan, gunakan perintah gcloud alloydb instances update dengan parameter --psc-network-attachment-uri:

gcloud alloydb instances update INSTANCE_ID \
    --cluster=CLUSTER_ID \
    --region=REGION_ID \
    --project=PROJECT_ID \
    --psc-network-attachment-uri=NETWORK_ATTACHMENT_URI

Ganti kode berikut:

  • INSTANCE_ID: ID instance.
  • CLUSTER_ID: ID cluster.
  • REGION_ID: region tempat instance berada.
  • PROJECT_ID: ID project tempat instance berada.
  • NETWORK_ATTACHMENT_URI: nama resource lengkap URI lampiran jaringan yang Anda buat untuk konektivitas keluar—misalnya, projects/PROJECT_ID/regions/REGION_ID/networkAttachments/NETWORK_ATTACHMENT_ID.

Instance AlloyDB yang dibuat sebelum 1 Maret 2025 tidak dapat diupdate untuk mengaktifkan koneksi keluar. Sebagai pendekatan alternatif, sebaiknya gunakan salah satu opsi berikut:


Menonaktifkan konektivitas keluar

Untuk menonaktifkan konektivitas keluar untuk instance AlloyDB yang ada, gunakan perintah gcloud alloydb instances update dengan parameter --clear-psc-network-attachment-uri:

gcloud alloydb instances update INSTANCE_ID \
    --cluster=CLUSTER_ID \
    --region=REGION_ID \
    --project=PROJECT_ID \
    --clear-psc-network-attachment-uri

Ganti kode berikut:

  • INSTANCE_ID: ID instance.
  • CLUSTER_ID: ID cluster.
  • REGION_ID: region tempat instance berada.
  • PROJECT_ID: ID project tempat instance berada.

Menghubungkan ke instance AlloyDB

Anda dapat terhubung ke instance AlloyDB dengan Private Service Connect yang diaktifkan menggunakan salah satu opsi berikut:

Anda harus mengonfigurasi data DNS pribadi yang memetakan pscDnsName yang telah dibuat sebelumnya dari instance ke alamat IP internal endpoint Private Service Connect saat Anda terhubung menggunakan Proxy Auth AlloyDB atau Konektor Bahasa AlloyDB.

Untuk metode yang menggunakan data DNS, Anda harus membuat data di zona DNS pribadi pada jaringan VPC konsumen yang sesuai. pscDnsName yang ditampilkan oleh AlloyDB API adalah string nama host yang telah dibuat sebelumnya dan tidak akan di-resolve hingga Anda membuat zona DNS pribadi dan data A di jaringan VPC konsumen Anda.

Mengonfigurasi zona DNS terkelola dan data DNS

Untuk mengonfigurasi zona DNS terkelola dan data DNS di jaringan konsumen Anda, ikuti langkah-langkah berikut:

gcloud

  1. Untuk melihat informasi ringkasan tentang instance AlloyDB—termasuk pscDnsName instance yang telah dibuat sebelumnya—gunakan perintah gcloud alloydb instances describe:

    gcloud alloydb instances describe INSTANCE_ID \
    --cluster=CLUSTER_ID \
    --region=REGION_ID \
    --format='json(pscInstanceConfig)'

    Ganti kode berikut:

    • INSTANCE_ID: ID instance.
    • CLUSTER_ID: ID cluster.
    • REGION_ID: region tempat instance berada.

    Dalam respons, pastikan kolom pscDnsName muncul. Nama DNS memiliki pola INSTANCE_UID.CLUSTER_UID.REGION_NAME.alloydb-psc.goog.—misalnya, 015f5524-0555-4a0a-ac5a-0d15d64b15cb.008225d5-070a-4566-aaad-fcb3c87c5901.us-east4.alloydb-psc.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 AlloyDB 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

    Ganti kode berikut:

    • ZONE_NAME: nama zona DNS.
    • PROJECT_ID: ID atau nomor project dari project Google Cloud yang berisi zona.
    • DESCRIPTION: deskripsi zona (misalnya, DNS zone for the AlloyDB instance).
    • DNS_NAME: nama DNS untuk zona, seperti INSTANCE_UID.CLUSTER_UID.REGION_NAME.alloydb-psc.goog. (atau domain induk alloydb-psc.goog.).
    • NETWORK_NAME: nama jaringan VPC konsumen. Untuk jaringan VPC Bersama, tetapkan ini ke jalur yang sepenuhnya memenuhi syarat dari jaringan VPC—misalnya, projects/cymbal-project/global/networks/shared-vpc-network.
  3. Setelah Anda membuat endpoint Private Service Connect, buat data A DNS di zona menggunakan 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

    Ganti kode berikut:

    • DNS_NAME: pscDnsName yang telah Anda ambil sebelumnya dalam prosedur ini.
    • RRSET_TYPE: jenis data resource dari set data DNS (A).
    • RR_DATA: alamat IP internal yang dialokasikan untuk endpoint Private Service Connect (misalnya, 198.51.100.5).

Terraform

Untuk membuat zona Cloud DNS pribadi dan data A yang memetakan pscDnsName instance ke alamat IP internal endpoint Private Service Connect, gunakan resource Terraform google_dns_managed_zone dan google_dns_record_set:

resource "google_dns_managed_zone" "psc_dns_zone" {
  name        = "alloydb-psc-zone"
  dns_name    = google_alloydb_instance.default.psc_instance_config[0].psc_dns_name
  description = "Private DNS zone for AlloyDB PSC endpoint"
  visibility  = "private"

  private_visibility_config {
    networks {
      network_url = google_compute_network.default.id
    }
  }
}

resource "google_dns_record_set" "psc_dns_record" {
  name         = google_alloydb_instance.default.psc_instance_config[0].psc_dns_name
  type         = "A"
  ttl          = 300
  managed_zone = google_dns_managed_zone.psc_dns_zone.name
  rrdatas      = [google_compute_address.psc_endpoint_ip.address]
}

Menghubungkan langsung menggunakan data DNS

Setelah membuat endpoint Private Service Connect dan mengonfigurasi data A DNS pribadi untuk pscDnsName instance, Anda dapat terhubung langsung dari klien di jaringan VPC konsumen menggunakan nama DNS (tanpa titik di akhir):

psql -U USERNAME -h DNS_NAME -d DATABASE_NAME

Ganti kode berikut:

  • USERNAME: nama pengguna database yang terhubung ke instance.
  • DNS_NAME: nama data DNS (seperti pscDnsName instance tanpa titik di bagian akhir) yang me-resolve ke endpoint Private Service Connect.
  • DATABASE_NAME: nama database yang akan dihubungkan (misalnya, postgres).

Terhubung menggunakan Proxy Auth AlloyDB

Proxy Auth AlloyDB adalah konektor yang memungkinkan Anda membuat koneksi terenkripsi dan diizinkan ke database AlloyDB. Proxy Auth AlloyDB bekerja dengan menjalankan klien lokal di lingkungan lokal. Aplikasi Anda berkomunikasi dengan Proxy Auth AlloyDB menggunakan protokol database standar yang digunakan oleh database Anda.

Saat Anda menetapkan flag --psc saat memulai klien Proxy Auth, Proxy Auth AlloyDB akan me-resolve pscDnsName instance menggunakan data DNS pribadi yang Anda buat untuk terhubung ke instance yang mendukung Private Service Connect.

Mulai klien Proxy Auth dengan meneruskan URI instance yang Anda ambil menggunakan perintah gcloud alloydb instances describe, dan tetapkan flag --psc.

Untuk mengetahui informasi selengkapnya tentang cara terhubung ke instance menggunakan Proxy Auth, lihat Terhubung menggunakan Proxy Auth AlloyDB.

Menghubungkan menggunakan Konektor Bahasa AlloyDB

Konektor Bahasa AlloyDB adalah library yang menyediakan mTLS otomatis dengan TLS 1.3 dan otorisasi IAM saat terhubung ke instance AlloyDB.

Setelah Language Connector dikonfigurasi untuk Private Service Connect, Language Connector akan me-resolve pscDnsName instance menggunakan data DNS pribadi yang Anda buat untuk terhubung ke instance.

Java

Jika Anda menggunakan Private Service Connect untuk terhubung ke instance AlloyDB, sertakan hal berikut:

config.addDataSourceProperty("alloydbIpType", "PSC");

Untuk mengetahui informasi selengkapnya tentang cara menggunakan endpoint Private Service Connect di Konektor Java AlloyDB, lihat repositori GitHub.

Python (pg8000)

Jika Anda menggunakan Private Service Connect untuk terhubung ke instance AlloyDB, sertakan hal berikut:

  def getconn() -> pg8000.dbapi.Connection:
      conn: pg8000.dbapi.Connection = connector.connect(
          inst_uri,
          "pg8000",
          user=user,
          password=password,
          db=db,
          # use ip_type to specify PSC
          ip_type=IPTypes.PSC,
      )
      return conn

Untuk mengetahui informasi selengkapnya tentang cara menggunakan endpoint Private Service Connect di Konektor Python AlloyDB, lihat repositori GitHub.

Python (asyncpg)

Jika Anda menggunakan Private Service Connect untuk terhubung ke instance AlloyDB, sertakan hal berikut:

  async def getconn() -> asyncpg.Connection:
    conn: asyncpg.Connection = await connector.connect(
        inst_uri,
        "asyncpg",
        user=user,
        password=password,
        db=db,
        # use ip_type to specify PSC
        ip_type=IPTypes.PSC,
    )
    return conn

Untuk mengetahui informasi selengkapnya tentang cara menggunakan endpoint Private Service Connect di Konektor Python AlloyDB, lihat repositori GitHub.

Go (pgx)

Jika Anda menggunakan Private Service Connect untuk terhubung ke instance AlloyDB, sertakan hal berikut:

d.Dial(ctx, instURI, alloydbconn.WithPSC())

Untuk mengetahui informasi selengkapnya tentang penggunaan endpoint Private Service Connect di Konektor Go AlloyDB, lihat repositori GitHub.

Go (database/sql)

Jika Anda menggunakan Private Service Connect untuk terhubung ke instance AlloyDB, sertakan hal berikut:

  cleanup, err := postgres.RegisterDriver(
    "alloydb",
    alloydbconn.WithDefaultDialOptions(alloydbconn.WithPSC()),
  )

Untuk mengetahui informasi selengkapnya tentang penggunaan endpoint Private Service Connect di Konektor Go AlloyDB, lihat repositori GitHub.

Menghubungkan langsung melalui alamat IP internal

Setelah membuat endpoint Private Service Connect, Anda dapat langsung terhubung ke instance AlloyDB menggunakan alamat IP internal endpoint tanpa mengonfigurasi data DNS.

  1. Untuk mengambil alamat IP endpoint Private Service Connect yang dibuat secara manual, gunakan perintah gcloud compute addresses describe:

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

    Ganti kode berikut:

    • ADDRESS_NAME: nama resource alamat IP yang dicadangkan endpoint.
    • PROJECT_ID: ID atau nomor project dari Google Cloud project yang berisi endpoint.
    • REGION_NAME: nama region untuk endpoint.
  2. Untuk terhubung ke instance AlloyDB, gunakan alamat IP internal:

    psql -U USERNAME -h IP_ADDRESS

    Ganti kode berikut:

    • USERNAME: nama pengguna yang terhubung ke instance.
    • IP_ADDRESS: alamat IP internal endpoint.

Batasan

  • Anda dapat menyiapkan hingga 20 endpoint Private Service Connect yang terhubung ke lampiran layanan instance AlloyDB dengan Private Service Connect yang diaktifkan.
  • Anda tidak dapat menggunakan flag --network saat membuat cluster yang mendukung Private Service Connect karena flag ini terkait dengan akses layanan pribadi.
  • Anda tidak dapat mengaktifkan atau menonaktifkan Private Service Connect pada instance yang ada.
  • Anda tidak dapat mengonfigurasi instance dengan Private Service Connect yang diaktifkan untuk menggunakan akses layanan pribadi.