Mengonfigurasi peering VPC

Anda dapat menggunakan Peering Jaringan VPC untuk memungkinkan Datastream berkomunikasi dengan resource di jaringan Virtual Private Cloud (VPC) Anda secara pribadi.

Peering Jaringan VPC adalah koneksi antara jaringan VPC Anda dan jaringan pribadi Datastream, yang memungkinkan Datastream berkomunikasi dengan resource internal menggunakan alamat IP internal. Penggunaan konektivitas pribadi akan membuat koneksi khusus di jaringan Datastream, yang berarti tidak ada pelanggan lain yang dapat membagikannya.

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 memungkinkan Datastream terhubung ke:

  • Endpoint Private Service Connect yang berada di jaringan VPC Anda.
  • Resource yang berada di jaringan VPC lain, yang di-peering dengan jaringan VPC Anda, tetapi tidak di-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, Anda dapat menggunakan VM terjemahan alamat jaringan (NAT) di jaringan VPC Anda. 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 pengguna Datastream

Prasyarat peering VPC

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

  • Memiliki jaringan VPC yang dapat di-peering ke jaringan pribadi Datastream dan yang memenuhi persyaratan yang dijelaskan di halaman Peering Jaringan VPC. Untuk mengetahui informasi selengkapnya tentang cara membuat jaringan ini, lihat Menggunakan Peering Jaringan VPC.
  • Mengidentifikasi rentang IP yang tersedia (dengan blok CIDR /29) di jaringan VPC. Rentang IP 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. Rentang IP juga tidak boleh tumpang-tindih dengan rentang IP internal yang dicadangkan oleh Datastream (10.1.0.0/16 dan 10.2.2.0/24). Datastream menggunakan rentang IP ini untuk membuat subnet sehingga 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 tolok ukur RFC 2544
  • Pastikan resource apa pun di jaringan VPC Anda yang berkomunikasi dengan Datastream (seperti VM NAT, load balancer internal, atau database sumber dan tujuan) tidak menggunakan alamat IP dalam rentang 10.1.0.0/16 atau 10.2.2.0/24. Rentang ini dicadangkan untuk infrastruktur internal Datastream, dan menggunakannya untuk resource Anda dapat menyebabkan konflik perutean dan kegagalan konektivitas yang tidak dapat diprediksi.

  • Pastikan bahwa Google Cloud firewall lokal dan mengizinkan traffic dari rentish 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 ini harus lebih rendah dari nilai yang ditetapkan untuk aturan blokir traffic, jika ada. Nilai prioritas yang lebih rendah menandakan prioritas yang lebih tinggi.
    • PRIVATE_CONNECTIVITY_VPC: Jaringan VPC yang dapat di-peering ke jaringan pribadi Datastream dan yang 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 akan menerapkan aturan firewall, misalnya tcp:80. Aturan ini harus mengizinkan traffic TCP ke alamat IP dan port database sumber, atau proxy. Karena konektivitas pribadi dapat mendukung beberapa database, aturan ini harus mempertimbangkan penggunaan aktual konfigurasi Anda.
    • IP-RANGE: Rentang alamat IP yang digunakan Datastream untuk berkomunikasi dengan database sumber. Rentang ini sama dengan rentang yang Anda tunjukkan di kolom Allocate an IP range 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 mana yang berisi izin ini dengan melihat referensi izin IAM.

Prasyarat VPC Bersama

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

  1. Di 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.
      • Anda membuat konfigurasi konektivitas pribadi, memilih VPC bersama, dan mengklik Create Datastream Service Account. Akun layanan dibuat di project host.

      Untuk mendapatkan alamat email yang digunakan untuk akun layanan Datastream, temukan Project number 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 ini.

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

    Untuk mengetahui 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, 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 pada langkah berikutnya. Google Cloud memberlakukan batas bandwidth keluar maksimum per instance, untuk paket yang dirutekan oleh hop berikutnya dalam jaringan VPC, sesuai dengan jenis mesin instance VM. Untuk mengetahui informasi selengkapnya, lihat Egress ke tujuan yang dapat dirutekan dalam jaringan VPC dan Bandwidth keluar maksimum per instance.

  5. Buat VM NAT di jaringan VPC Anda. Saat membuat VM, Anda harus mengaktifkan penerusan IP. Untuk mengetahui informasi selengkapnya, lihat Mengaktifkan penerusan IP untuk instance.

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

    • Untuk meminimalkan waktu round-trip jaringan, buat VM NAT di region yang sama dengan Datastream.
    • Contoh ini mengasumsikan bahwa VM NAT memiliki satu antarmuka jaringan.
    • Jalankan skrip dalam 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 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: setidaknya harus menyertakan DATABASE_PORT
  7. Aturan firewall izinkan keluar yang tersirat memungkinkan VM NAT untuk mengirim paket ke tujuan mana pun. Jika jaringan VPC Anda menggunakan aturan firewall tolak keluar, Anda mungkin harus membuat aturan firewall izinkan keluar untuk mengizinkan VM NAT mengirim paket ke instance Cloud SQL. Jika aturan izinkan keluar diperlukan, gunakan parameter berikut:

    • Arah: keluar
    • Tindakan: izinkan
    • Parameter target: setidaknya VM NAT
    • Parameter tujuan: alamat IP instance Cloud SQL
    • Protokol: TCP
    • Port: setidaknya 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 Mengotorisasi dengan jaringan yang diotorisasi dalam dokumentasi Cloud SQL.

  9. Buat profil koneksi di Datastream. Di detail koneksi profil, tentukan alamat IPv4 internal utama 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 yang berbeda di region yang sama. Ikuti petunjuk Menyiapkan VM NAT untuk membuat setiap VM, dan tempatkan setiap VM di grup instance tidak terkelola di zona masing-masing.

    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 satu atau beberapa grup instance dari langkah sebelumnya sebagai backend. Untuk contoh Load Balancer Jaringan passthrough internal, lihat Menyiapkan Load Balancer Jaringan passthrough internal dengan grup instance VM backend.

    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 konfigurasi jaringan yang diotorisasi Cloud SQL seperti yang dijelaskan dalam petunjuk Menyiapkan VM NAT. Pastikan jaringan yang diotorisasi Cloud SQL menyertakan alamat IPv4 internal utama dari kedua VM NAT.

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

Langkah berikutnya