Mengonfigurasi peering VPC

Anda dapat menggunakan Peering Jaringan VPC untuk memungkinkan Datastream berkomunikasi dengan resource di jaringan Virtual Private Cloud (VPC) secara pribadi. Koneksi Peering Jaringan VPC antara jaringan VPC Anda dan jaringan VPC Datastream memungkinkan Datastream terhubung ke:

Koneksi Peering Jaringan VPC antara jaringan VPC Anda dan jaringan VPC Datastream tidak mengizinkan Datastream terhubung ke:

  • Endpoint Private Service Connect yang berada di jaringan VPC Anda.
  • Resource yang berada di jaringan VPC lain, yang melakukan peering dengan jaringan VPC Anda, tetapi tidak melakukan peering dengan jaringan VPC Datastream. (Hal ini karena Peering Jaringan VPC tidak menyediakan perutean transitif.)

Untuk membuat konektivitas antara Datastream dan resource yang hanya dapat diakses dari jaringan VPC, Anda dapat menggunakan VM terjemahan alamat jaringan (NAT) di jaringan VPC. Kasus penggunaan umum untuk VM NAT adalah saat Datastream perlu terhubung ke instance Cloud SQL.

Halaman ini menjelaskan contoh konfigurasi VM NAT yang memungkinkan Datastream terhubung secara pribadi ke instance Cloud SQL.

Diagram alur penggunaan Datastream

Prasyarat peering VPC

Sebelum membuat konfigurasi konektivitas pribadi, Anda perlu melakukan langkah-langkah berikut agar Datastream dapat membuat koneksi peering VPC ke project Anda:

  • Memiliki jaringan VPC yang dapat melakukan peering ke jaringan pribadi Datastream dan memenuhi persyaratan yang dijelaskan di halaman Peering Jaringan VPC. Untuk mengetahui informasi selengkapnya tentang cara membuat jaringan ini, lihat Menggunakan Peering Jaringan VPC.
  • Identifikasi rentang IP yang tersedia (dengan blok CIDR /29) di jaringan VPC. Rentang ini tidak boleh berupa rentang IP yang sudah ada sebagai subnet, rentang IP yang dialokasikan sebelumnya untuk akses layanan pribadi, atau rute apa pun (selain rute 0.0.0.0 default) yang menyertakan rentang IP. Datastream menggunakan rentang IP ini untuk membuat subnet agar dapat berkomunikasi dengan database sumber. Tabel berikut menjelaskan rentang IP yang valid.
Rentang Deskripsi
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
Alamat IP pribadi RFC 1918
100.64.0.0/10 Ruang alamat bersama RFC 6598
192.0.0.0/24 Penetapan protokol IETF RFC 6890
192.0.2.0/24 (TEST-NET-1)
198.51.100.0/24 (TEST-NET-2)
203.0.113.0/24 (TEST-NET-3)
Dokumentasi RFC 5737
192.88.99.0/24 Relai IPv6 ke IPv4 (tidak digunakan lagi) RFC 7526
198.18.0.0/15 Pengujian benchmark RFC 2544
  • Pastikan Google Cloud dan firewall lokal mengizinkan traffic dari rentang IP yang dipilih. Jika tidak, buat aturan firewall masuk yang mengizinkan traffic di port database sumber, dan pastikan rentang alamat IPv4 dalam aturan firewall sama dengan rentang alamat IP yang dialokasikan saat membuat resource konektivitas pribadi:

    gcloud compute firewall-rules create FIREWALL-RULE-NAME \
      --direction=INGRESS \
      --priority=PRIORITY \
      --network=PRIVATE_CONNECTIVITY_VPC \
      --project=VPC_PROJECT \
      --action=ALLOW \
      --rules=FIREWALL_RULES \
      --source-ranges=IP-RANGE
      

    Ganti kode berikut:

    • FIREWALL-RULE-NAME: Nama aturan firewall yang akan dibuat.
    • PRIORITY: Prioritas untuk aturan, yang dinyatakan sebagai bilangan bulat antara 0 dan 65535, inklusif. Nilai harus lebih rendah dari nilai yang ditetapkan untuk aturan pemblokiran traffic, jika ada. Nilai prioritas yang lebih rendah menandakan prioritas yang lebih tinggi.
    • PRIVATE_CONNECTIVITY_VPC: Jaringan VPC yang dapat melakukan peering ke jaringan pribadi Datastream dan memenuhi persyaratan yang dijelaskan di halaman Peering Jaringan VPC. Ini adalah VPC yang Anda tentukan saat membuat konfigurasi konektivitas pribadi.
    • VPC_PROJECT: Project jaringan VPC.
    • FIREWALL_RULES: Daftar protokol dan port yang menerapkan aturan firewall, misalnya tcp:80. Aturan harus mengizinkan traffic TCP ke alamat IP dan port database sumber, atau proxy. Karena konektivitas pribadi dapat mendukung beberapa database, aturan ini perlu mempertimbangkan penggunaan sebenarnya dari konfigurasi Anda.
    • IP-RANGE: Rentang alamat IP yang digunakan Datastream untuk berkomunikasi dengan database sumber. Ini adalah rentang yang sama dengan yang Anda tunjukkan di kolom Alokasikan rentang IP saat membuat konfigurasi konektivitas pribadi.

      Anda mungkin juga perlu membuat aturan firewall keluar yang identik untuk mengizinkan traffic kembali ke Datastream.

  • Ditetapkan ke peran yang berisi izin compute.networks.list. Izin ini memberi Anda izin IAM yang diperlukan untuk mencantumkan jaringan VPC di project Anda. Anda dapat menemukan peran yang berisi izin ini dengan melihat referensi izin IAM.

Prasyarat VPC Bersama

Jika menggunakan VPC Bersama, Anda harus menyelesaikan tindakan berikut selain langkah-langkah yang dijelaskan di bagian Prasyarat VPC:

  1. Pada project layanan:

    1. Aktifkan Datastream API.
    2. Dapatkan alamat email yang digunakan untuk akun layanan Datastream. Akun layanan Datastream dibuat saat Anda melakukan salah satu hal berikut:

      • Anda membuat resource Datastream, seperti profil koneksi atau aliran data.
      • Anda membuat konfigurasi konektivitas pribadi, memilih VPC bersama, lalu mengklik Create Datastream Service Account. Akun layanan dibuat di project host.

      Untuk mendapatkan alamat email yang digunakan untuk akun layanan Datastream, temukan Nomor project di Google Cloud halaman beranda konsol. Alamat email akun layanan adalah service-[project_number]@gcp-sa-datastream.iam.gserviceaccount.com.

  2. Di project host:

    1. Berikan izin peran Identity and Access Management (IAM) compute.networkAdmin ke akun layanan Datastream. Peran ini hanya diperlukan saat Anda membuat peering VPC. Setelah peering dibuat, Anda tidak lagi memerlukan peran tersebut.

      Jika organisasi Anda tidak mengizinkan pemberian izin, buat peran khusus dengan izin minimum berikut untuk membuat dan menghapus resource koneksi pribadi:

    Untuk informasi selengkapnya tentang peran khusus, lihat Membuat dan mengelola peran khusus.

Menyiapkan VM NAT

  1. Identifikasi alamat IP instance Cloud SQL yang perlu dihubungkan oleh Datastream.

  2. Identifikasi jaringan VPC Anda. Ini adalah jaringan VPC yang terhubung ke jaringan VPC Datastream menggunakan Peering Jaringan VPC.

  3. Jika belum melakukannya, buat konfigurasi konektivitas pribadi di Datastream. Tindakan ini akan membuat koneksi Peering Jaringan VPC yang menghubungkan jaringan VPC Anda dan jaringan VPC Datastream. Catat rentang alamat IP yang digunakan oleh konfigurasi konektivitas pribadi Datastream.

  4. Pilih jenis mesin yang akan digunakan untuk VM NAT yang Anda buat di langkah berikutnya. Google Cloud menerapkan batas bandwidth egress maksimum per instance, untuk paket yang dirutekan oleh next hop dalam jaringan VPC, sesuai dengan jenis mesin instance VM. Untuk mengetahui informasi selengkapnya, lihat Traffic keluar ke tujuan yang dapat dirutekan dalam jaringan VPC dan Bandwidth keluar maksimum per instance.

  5. Buat VM NAT di jaringan VPC Anda. Jika jaringan VPC Anda adalah jaringan VPC Bersama, Anda dapat membuat VM NAT di project host atau project layanan mana pun, selama antarmuka jaringan VM NAT berada di jaringan VPC Bersama.

    • Untuk meminimalkan waktu perjalanan bolak-balik jaringan, buat VM NAT di region yang sama dengan Datastream.
    • Contoh ini mengasumsikan bahwa VM NAT memiliki satu antarmuka jaringan.
    • Jalankan skrip di distribusi Linux—misalnya, Debian 12.
    • Gunakan skrip startup berikut. Skrip startup dijalankan oleh root setiap kali VM dimulai. Skrip ini menyertakan komentar yang menjelaskan fungsi setiap baris skrip. Dalam skrip, ganti CLOUD_SQL_INSTANCE_IP dengan alamat IP instance Cloud SQL dan DATABASE_PORT dengan port tujuan yang digunakan oleh software database.
    #! /bin/bash
    
    export DB_ADDR=CLOUD_SQL_INSTANCE_IP
    export DB_PORT=DATABASE_PORT
    
    # Enable the VM to receive packets whose destinations do
    # not match any running process local to the VM
    echo 1 > /proc/sys/net/ipv4/ip_forward
    
    # Ask the Metadata server for the IP address of the VM nic0
    # network interface:
    md_url_prefix="http://169.254.169.254/computeMetadata/v1/instance"
    vm_nic_ip="$(curl -H "Metadata-Flavor: Google" ${md_url_prefix}/network-interfaces/0/ip)"
    
    # Clear any existing iptables NAT table entries (all chains):
    iptables -t nat -F
    
    # Create a NAT table entry in the prerouting chain, matching
    # any packets with destination database port, changing the destination
    # IP address of the packet to the SQL instance IP address:
    iptables -t nat -A PREROUTING \
         -p tcp --dport $DB_PORT \
         -j DNAT \
         --to-destination $DB_ADDR
    
    # Create a NAT table entry in the postrouting chain, matching
    # any packets with destination database port, changing the source IP
    # address of the packet to the NAT VM's primary internal IPv4 address:
    iptables -t nat -A POSTROUTING \
         -p tcp --dport $DB_PORT \
         -j SNAT \
         --to-source $vm_nic_ip
    
    # Save iptables configuration:
    iptables-save
  6. Buat aturan firewall izinkan traffic masuk (atau aturan dalam kebijakan firewall jaringan global, kebijakan firewall jaringan regional, atau kebijakan firewall hierarkis) dengan karakteristik berikut:

    • Arah: masuk
    • Tindakan: izinkan
    • Parameter target: setidaknya VM NAT
    • Parameter sumber: rentang alamat IP yang digunakan oleh konfigurasi konektivitas pribadi Datastream
    • Protokol: TCP
    • Port: minimal harus menyertakan DATABASE_PORT
  7. Aturan firewall izinkan traffic keluar yang tersirat memungkinkan VM NAT mengirim paket ke tujuan mana pun. Jika jaringan VPC Anda menggunakan aturan firewall yang menolak traffic keluar, Anda mungkin harus membuat aturan firewall izinkan traffic keluar untuk mengizinkan VM NAT mengirim paket ke instance Cloud SQL. Jika aturan izin keluar diperlukan, gunakan parameter ini:

    • Arah: egress
    • Tindakan: izinkan
    • Parameter target: setidaknya VM NAT
    • Parameter tujuan: alamat IP instance Cloud SQL
    • Protokol: TCP
    • Port: minimal harus menyertakan DATABASE_PORT
  8. Pastikan Anda telah mengonfigurasi instance Cloud SQL untuk menerima koneksi dari alamat IPv4 internal utama yang digunakan oleh antarmuka jaringan VM NAT Anda. Untuk mengetahui petunjuknya, lihat Memberikan otorisasi dengan jaringan yang diizinkan dalam dokumentasi Cloud SQL.

  9. Buat profil koneksi di Datastream. Di detail koneksi profil, tentukan alamat IPv4 internal primer VM NAT yang Anda buat. Masukkan port database sumber di kolom port profil koneksi.

Menyiapkan sepasang VM NAT dan Load Balancer Jaringan passthrough internal

Untuk meningkatkan keandalan solusi VM NAT, pertimbangkan arsitektur berikut, yang menggunakan sepasang VM NAT dan Load Balancer Jaringan passthrough internal:

  1. Buat dua VM NAT di zona berbeda di region yang sama. Ikuti petunjuk Menyiapkan VM NAT untuk membuat setiap VM, dan tempatkan setiap VM dalam grup instance tidak terkelola zonal-nya sendiri.

    Atau, Anda dapat membuat grup instance terkelola regional. Dalam template grup instance terkelola, sertakan skrip startup seperti contoh skrip startup dalam petunjuk Menyiapkan VM NAT.

  2. Buat Load Balancer Jaringan passthrough internal yang layanan backend-nya menggunakan grup instance atau grup dari langkah sebelumnya sebagai backend-nya. Untuk contoh Load Balancer Jaringan passthrough internal, lihat Menyiapkan Load Balancer Jaringan passthrough internal dengan backend grup instance VM.

    Saat mengonfigurasi health check load balancer, Anda dapat menggunakan health check TCP yang menggunakan port TCP tujuan yang cocok dengan DATABASE_PORT. Paket health check dirutekan ke CLOUD_SQL_INSTANCE_IP sesuai dengan konfigurasi VM NAT. Atau, Anda dapat menjalankan proses lokal di VM NAT yang menjawab health check TCP atau HTTP di port kustom.

  3. Buat aturan firewall dan konfigurasikan jaringan yang diizinkan Cloud SQL seperti yang dijelaskan dalam petunjuk Menyiapkan VM NAT. Pastikan jaringan yang diizinkan Cloud SQL menyertakan alamat IPv4 internal utama dari kedua VM NAT.

  4. Saat Anda membuat profil koneksi Datastream, tentukan alamat IP aturan penerusan Load Balancer Jaringan passthrough internal di detail koneksi profil.

Langkah berikutnya