Menyiapkan Load Balancer Jaringan proxy eksternal regional dengan backend eksternal

Panduan ini menunjukkan cara mengonfigurasi Load Balancer Jaringan proxy eksternal regional yang melakukan proxy permintaan ke backend eksternal. Backend eksternal adalah endpoint yang berada di luar Google Cloud.

Sebelum mengikuti panduan ini, pahami dokumentasi ringkasan Internet NEG, termasuk batasan-nya.

Diagram arsitektur berikut menunjukkan frontend Load Balancer Jaringan proxy eksternal regional dengan backend eksternal.

Load Balancer Jaringan proxy eksternal regional dengan backend eksternal.
Gambar 1. Load Balancer Jaringan proxy eksternal regional dengan backend eksternal (klik untuk memperbesar).

Izin

Untuk mengikuti panduan ini, Anda perlu membuat NEG internet dan membuat atau mengubah Load Balancer Jaringan proxy dalam sebuah project. Anda harus menjadi Pemilik atau Editor project (roles/owner atau roles/editor), atau Anda harus memiliki kedua peran Compute Engine IAM berikut.

Tugas Peran yang diperlukan
Membuat dan mengubah komponen load balancer Compute Network Admin
(roles/compute.networkAdmin)
Membuat dan mengubah NEG Compute Instance Admin
(roles/compute.instanceAdmin)

Menyiapkan lingkungan backend eksternal di luar Google Cloud

Untuk menyiapkan lingkungan backend eksternal, lihat bagian berikut.

Mengonfigurasi endpoint jaringan

Konfigurasikan endpoint jaringan untuk mengekspos backend eksternal Anda ke Google Cloud. Pastikan endpoint—baik kombinasi IP:Port maupun nama domain yang sepenuhnya memenuhi syarat (FQDN) dan port—dapat dijangkau melalui internet. Endpoint ini kemudian direferensikan dari NEG internet.

Untuk mengetahui persyaratan konfigurasi mendetail bagi endpoint NEG internet, lihat Ringkasan NEG internet.

Mengizinkan backend eksternal menerima traffic dari Google Cloud

Langkah ini dapat diselesaikan setelah Anda membuat subnet khusus proxy dan menyiapkan gateway Cloud NAT.

Agar permintaan dari Google Cloud dapat menjangkau backend eksternal, Anda harus melakukan langkah-langkah berikut:

  1. Konfigurasikan gateway Cloud NAT dengan alamat IP yang digunakan untuk traffic keluar dari Google Cloud. Gateway memetakan rentang subnet khusus proxy ke alamat IP eksternal. Untuk mengetahui langkah-langkahnya, lihat Menyiapkan gateway Cloud NAT.
  2. Pastikan lingkungan backend eksternal Anda dikonfigurasi untuk mengizinkan traffic dari Google Cloud menjangkau backend eksternal. Misalnya, jika menggunakan alamat IP yang dicadangkan sebelumnya untuk gateway NAT, Anda akan mengizinkan alamat IP tersebut di lingkungan eksternal. Anda mungkin perlu bekerja sama dengan admin jaringan atau keamanan lingkungan eksternal untuk menyiapkannya.

Menyiapkan lingkungan Google Cloud

Anda memerlukan jaringan VPC dengan dua subnet: satu untuk komponen load balancer dan satu lagi untuk subnet khusus proxy region. Kemudian, Anda akan membuat load balancer dengan backend NEG internet.

Membuat jaringan VPC dan subnet

Subnet ini digunakan untuk membuat komponen load balancer.

Cloud Console

  1. Di konsol Google Cloud, buka halaman jaringan VPC.
    Buka jaringan VPC
  2. Klik Create VPC network.
  3. Masukkan Nama: LB_NETWORK.
  4. Di bagian Subnets:
    • Setel Subnet creation mode ke Custom.
    • Di bagian New subnet, masukkan informasi berikut:
      • Nama: LB_SUBNET_NAME
      • Region: REGION
      • Rentang alamat IP: LB_SUBNET_RANGE
    • Klik Done.
  5. Klik Create.

gcloud

  1. Buat jaringan VPC kustom menggunakan perintah gcloud compute networks create:

    gcloud compute networks create LB_NETWORK \
      --subnet-mode=custom
    
  2. Buat subnet di jaringan LB_NETWORK.

    gcloud compute networks subnets create LB_SUBNET_NAME \
      --network=LB_NETWORK \
      --range=LB_SUBNET_RANGE \
      --region=REGION
    

Mengonfigurasi subnet khusus proxy

Subnet khusus proxy ini digunakan oleh semua load balancer berbasis Envoy regional di region REGION.

Konsol

  1. Di konsol Google Cloud, buka halaman jaringan VPC.
    Buka jaringan VPC
  2. Pilih Jaringan dari daftar.
  3. Klik Tambahkan subnet.
  4. Masukkan Nama: PROXY_ONLY_SUBNET_NAME.
  5. Pilih Region: REGION.
  6. Tetapkan Tujuan ke Proxy yang Dikelola Berdasarkan Wilayah.
  7. Masukkan rentang alamat IP: PROXY_ONLY_SUBNET_RANGE.
  8. Klik Tambahkan.

gcloud

Buat subnet khusus proxy dengan perintah gcloud compute networks subnets create.

gcloud compute networks subnets create PROXY_ONLY_SUBNET_NAME \
  --purpose=REGIONAL_MANAGED_PROXY \
  --role=ACTIVE \
  --region=REGION \
  --network=LB_NETWORK \
  --range=PROXY_ONLY_SUBNET_RANGE

Menyiapkan gateway Cloud NAT

Sebelum mengonfigurasi gateway Cloud NAT, pastikan Anda telah meninjau batasan dan pertimbangan harga terkait. Untuk mengetahui detailnya, lihat NEG Regional: Menggunakan gateway Cloud NAT.

Perintah berikut menjelaskan cara menyiapkan gateway Cloud NAT. Gateway Cloud NAT dapat dikonfigurasi untuk menggunakan alamat IP eksternal NAT otomatis, dengan alokasi berdasarkan permintaan, atau untuk menggunakan kumpulan alamat IP eksternal yang direservasi secara manual. Gateway memetakan rentang subnet khusus proxy ke alamat IP eksternal.

Menyiapkan alamat IP yang dialokasikan NAT otomatis

Saat membuat gateway Cloud NAT dengan alokasi alamat IP NAT otomatis, Anda dapat menentukan Network Service Tiers (Paket Premium atau Paket Standar) tempat gateway Cloud NAT mengalokasikan alamat IP.

Konsol

  1. Di Konsol Google Cloud, buka halaman Cloud NAT.

    Buka Cloud NAT

  2. Klik Get started atau Create Cloud NAT gateway.

  3. Masukkan nama gateway LB_NAT_CONFIG.

  4. Untuk Jenis NAT, pilih Publik.

  5. Dalam daftar Jaringan, pilih LB_NETWORK.

  6. Dalam daftar Region, pilih REGION.

  7. Buat Cloud Router di region tersebut.

  8. Untuk Source endpoint type, pilih Managed proxy load balancers.

  9. Dalam daftar Source, pilih Custom.

    • Untuk Subnets, pilih PROXY_ONLY_SUBNET_NAME.
  10. Dalam daftar Cloud NAT IP addresses, pilih Automatic (recommended).

  11. Untuk Network service tier, pilih Premium atau Standard.

  12. Klik Create.

gcloud

Gunakan alamat IP yang dialokasikan secara dinamis jika lingkungan backend eksternal Anda tidak mengharuskan Anda membuat daftar yang diizinkan untuk alamat IP Google Cloud tertentu yang dapat mengirim traffic ke backend eksternal.

  1. Membuat cloud router

    gcloud beta compute routers create ROUTER_NAME \
      --network=LB_NETWORK \
      --region=REGION
  2. Siapkan gateway Cloud NAT.

    gcloud beta compute routers nats create LB_NAT_CONFIG \
      --router=ROUTER_NAME \
      --endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB \
      --nat-custom-subnet-ip-ranges=PROXY_ONLY_SUBNET_NAME \
      --auto-allocate-nat-external-ips \
      --region=REGION
    

Ganti kode berikut:

  • LB_NAT_CONFIG: nama konfigurasi NAT Anda.

  • ROUTER_NAME: nama Cloud Router Anda.

  • REGION: region NAT yang akan dibuat. Jika tidak ditentukan, Anda mungkin diminta untuk memilih region (khusus mode interaktif).

  • PROXY_ONLY_SUBNET_NAME: nama subnet khusus proxy Anda.

Menyiapkan alamat IP yang dialokasikan secara manual

Gunakan alamat IP yang dialokasikan secara manual hanya jika lingkungan backend eksternal Anda mengharuskan Anda menggunakan daftar yang diizinkan untuk alamat IP Google Cloud tertentu. Jika lingkungan backend eksternal tidak memerlukan daftar yang diizinkan, gunakan alokasi dinamis seperti yang ditunjukkan sebelumnya.

Saat membuat gateway Cloud NAT, Anda dapat memilih untuk menetapkan alamat IP NAT secara manual dari Paket Premium atau Paket Standar atau keduanya, dengan tunduk pada kondisi tertentu.

Konsol

  1. Di Konsol Google Cloud, buka halaman Cloud NAT.

    Buka Cloud NAT

  2. Klik Get started atau Create Cloud NAT gateway.

  3. Masukkan nama gateway LB_NAT_CONFIG.

  4. Dalam daftar Jaringan, pilih LB_NETWORK.

  5. Dalam daftar Region, pilih REGION.

  6. Pilih atau buat Cloud Router di region.

  7. Untuk Source endpoint type, pilih Managed proxy load balancers.

  8. Dalam daftar Source, pilih Custom.

    • Di Subnet, pilih PROXY_ONLY_SUBNET_NAME.
  9. Dalam daftar Cloud NAT IP addresses, pilih Manual.

  10. Untuk Network service tier, pilih Premium atau Standard.

  11. Pilih atau buat alamat IP eksternal statis yang dicadangkan untuk digunakan NAT.

  12. Jika Anda ingin menentukan alamat IP tambahan, klik Tambahkan alamat IP, lalu pilih atau buat alamat IP eksternal statis yang dicadangkan tambahan.

  13. Klik Create.

gcloud

  1. Buat alamat IP. Karena gateway melakukan terjemahan NAT satu per satu, Anda harus memastikan bahwa kumpulan alamat IP yang dicadangkan cukup besar untuk menangani jumlah traffic yang Anda harapkan. Alamat IP NAT yang dialokasikan tidak memadai dapat menyebabkan hilangnya traffic.

    gcloud compute addresses create IP_ADDRESS_NAME_1 IP_ADDRESS_NAME_2 [IP_ADDRESS_NAME_3 ...] \
      --region=REGION
    
  2. Membuat cloud router

    gcloud compute routers create ROUTER_NAME \
      --network=LB_NETWORK \
      --region=REGION
  3. Siapkan gateway Cloud NAT.

    gcloud beta compute routers nats create LB_NAT_CONFIG \
      --router=ROUTER_NAME \
      --endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB \
      --nat-custom-subnet-ip-ranges=PROXY_ONLY_SUBNET_NAME \
      --nat-external-ip-pool=IP_ADDRESS_NAME_1,IP_ADDRESS_NAME_2,[IP_ADDRESS_NAME_3 ...] \
      --region=REGION
    

    Ganti kode berikut:

  • LB_NAT_CONFIG: nama konfigurasi NAT Anda.

  • ROUTER_NAME: nama Cloud Router Anda.

  • PROXY_ONLY_SUBNET_NAME: nama subnet khusus proxy Anda.

  • REGION: region NAT yang akan dibuat. Jika tidak ditentukan, Anda mungkin diminta untuk memilih region (khusus mode interaktif).

Untuk mengetahui informasi selengkapnya, lihat Menentukan rentang subnet untuk NAT dalam dokumentasi Cloud NAT.

Pastikan Anda menggunakan daftar yang diizinkan untuk rentang alamat IP NAT di lingkungan backend eksternal, sehingga backend eksternal dapat menerima traffic dari Google Cloud.

Mencadangkan alamat IP load balancer

Cadangkan alamat IP statis untuk load balancer.

Konsol

  1. Di konsol Google Cloud, buka halaman Reserve a static address.

    Buka Reserve a static address

  2. Pilih Nama untuk alamat baru.

  3. Untuk Network Service Tier, pilih Standard.

  4. Untuk IP version, pilih IPv4. Alamat IPv6 bersifat global dan hanya dapat digunakan dengan load balancer global.

  5. Untuk Jenis, pilih Regional.

  6. Pilih Region.

  7. Biarkan opsi Lampirkan ke ditetapkan ke Tidak ada. Setelah Anda membuat load balancer, alamat IP ini akan dilampirkan ke aturan penerusan load balancer.

  8. Klik Reserve untuk mereservasi alamat IP.

gcloud

  1. Untuk mereservasi alamat IP eksternal statis menggunakan gcloud compute, gunakan perintah compute addresses create.

    gcloud compute addresses create LB_IP_ADDRESS  \
       --region=REGION \
       --network-tier=STANDARD
    

    Ganti kode berikut:

    • LB_IP_ADDRESS: nama yang ingin Anda beri untuk alamat ini.
    • REGION: region tempat Anda ingin mencadangkan alamat ini. Region ini harus berupa region yang sama dengan load balancer. Semua alamat IP regional adalah IPv4.
  2. Gunakan perintah compute addresses describe untuk melihat hasilnya:

    gcloud compute addresses describe LB_IP_ADDRESS
    

Menyiapkan NEG internet

Anda dapat membuat NEG internet menggunakan endpoint INTERNET_FQDN_PORT atau endpoint INTERNET_IP_PORT.

Konsol

Membuat NEG dengan endpoint INTERNET_FQDN_PORT

  1. Di Konsol Google Cloud, buka halaman Network endpoint group.

    Buka Network endpoint group

  2. Klik Create network endpoint group.

  3. Tentukan INTERNET_NEG_NAME untuk NEG Internet Anda. Untuk informasi selengkapnya, lihat Konvensi penamaan resource.

  4. Di daftar Network endpoint group type, pilih Network endpoint group (Internet), lalu lakukan hal berikut:

    • Dalam daftar Cakupan, pilih Regional.
    • Opsional: Dalam daftar Region, ubah REGION untuk NEG ini.
    • Dalam daftar Jaringan, pilih LB_NETWORK.
    • Di kotak Default port, masukkan DEFAULT_PORT_NUMBER.
    • Dalam daftar Tambahkan endpoint melalui, pilih Nama dan port yang sepenuhnya memenuhi syarat.
  5. Pilih Create.

Menambahkan endpoint INTERNET_FQDN_PORT ke NEG

  1. Di Konsol Google Cloud, buka halaman Network endpoint group.

    Buka Network endpoint group

  2. Klik INTERNET_NEG_NAME.
  3. Masukkan Nama domain yang sepenuhnya memenuhi syarat seperti myorg.example.com. Anda harus menentukan objek FQDN dalam sintaksis FQDN standar.

  4. Opsional: Untuk Jenis port, pilih Kustom. Jika Jenis port adalah Default, port default NEG akan digunakan.

  5. Di kotak Nomor port, masukkan PORT_NUMBER_1.
  6. Pilih Create.

Membuat NEG dengan endpoint INTERNET_IP_PORT

  1. Di Konsol Google Cloud, buka halaman Network endpoint group.

    Buka Network endpoint group

  2. Klik Create network endpoint group.

  3. Tentukan nama INTERNET_NEG_NAME untuk NEG Internet Anda. Untuk informasi selengkapnya, lihat Konvensi penamaan resource.

  4. Di daftar Network endpoint group type, pilih Network endpoint group (Internet), lalu lakukan hal berikut:

    • Dalam daftar Cakupan, pilih Regional.
    • Opsional: Dalam daftar Region, ubah REGION untuk NEG ini.
    • Dalam daftar Jaringan, pilih LB_NETWORK.
    • Di kotak Default port, masukkan DEFAULT_PORT_NUMBER.
    • Dalam daftar Tambahkan endpoint melalui, pilih IP dan port.
  5. Pilih Create.

Menambahkan endpoint INTERNET_IP_PORT ke NEG

  1. Di Konsol Google Cloud, buka halaman Network endpoint group.

    Buka Network endpoint group

  2. Klik INTERNET_NEG_NAME.
  3. Di kolom IP address, masukkan IP_ADDRESS_1.
  4. Opsional: Di daftar Port type, pilih Custom. Jika Jenis port adalah Default, port default NEG akan digunakan.

  5. Di kolom Nomor port, masukkan PORT_NUMBER_1.
  6. Pilih Create.

gcloud

Untuk membuat NEG dengan endpoint INTERNET_FQDN_PORT:

  1. Buat resource NEG.

    gcloud beta compute network-endpoint-groups create INTERNET_NEG_NAME \
        --network-endpoint-type=INTERNET_FQDN_PORT \
        --default-port=DEFAULT_PORT_NUMBER \
        --network=LB_NETWORK \
        --region=REGION
    
  2. Tambahkan endpoint ke NEG. Jika port tidak ditentukan, port default NEG akan digunakan.

    gcloud beta compute network-endpoint-groups update INTERNET_NEG_NAME \
        --add-endpoint="fqdn=FULLY_QUALIFIED_DOMAIN_NAME_1,port=PORT_NUMBER_1" \
        [--add-endpoint="fqdn=FULLY_QUALIFIED_DOMAIN_NAME_2,port=PORT_NUMBER_2" \]
        --region=REGION
    

    Ganti kode berikut:

    • FULLY_QUALIFIED_DOMAIN_NAME: nama domain yang sepenuhnya memenuhi syarat untuk endpoint
    • PORT_NUMBER: nomor port untuk endpoint

    Anda dapat menambahkan hingga 256 endpoint per NEG.

Jika domain Anda dapat di-resolve melalui internet, tidak ada konfigurasi lain yang diperlukan untuk menyiapkan DNS. Namun, jika menggunakan FQDN pribadi, Anda harus mengonfigurasi Cloud DNS untuk memfasilitasi resolusi DNS. Nama tersebut harus dihosting di Cloud DNS atau dapat di-resolve melalui penerusan DNS dari Cloud DNS ke DNS lokal.

Mulai dengan membuat zona Cloud DNS untuk menghosting data DNS di project Anda. Kemudian, tambahkan data DNS ke dalamnya. Lihat dokumentasi Cloud DNS untuk mengetahui langkah-langkah konfigurasi tertentu.

Untuk membuat NEG dengan endpoint INTERNET_IP_PORT:

  1. Buat resource NEG.

    gcloud beta compute network-endpoint-groups create INTERNET_NEG_NAME \
        --network-endpoint-type=INTERNET_IP_PORT \
        --default-port=DEFAULT_PORT_NUMBER \
        --network=LB_NETWORK \
        --region=REGION
    
  2. Tambahkan endpoint ke NEG. Jika port tidak ditentukan, port default NEG akan digunakan.

    gcloud beta compute network-endpoint-groups update INTERNET_NEG_NAME \
        --add-endpoint="ip=IP_ADDRESS_1,port=PORT_NUMBER_1" \
        [--add-endpoint="ip=IP_ADDRESS_2,port=PORT_NUMBER_2" \]
        --region=REGION
    

    Ganti kode berikut:

    • IP_ADDRESS: alamat IP untuk endpoint
    • PORT_NUMBER: nomor port untuk endpoint

    Anda dapat mengulangi langkah ini untuk menambahkan hingga 256 endpoint per NEG.

Membuat load balancer

Konsol

Memulai konfigurasi

  1. Di konsol Google Cloud, buka halaman Load balancing.

    Buka Load balancing

  2. Klik Create load balancer.
  3. Untuk Type of load balancer, pilih Network Load Balancer (TCP/UDP/SSL), lalu klik Next.
  4. Untuk Proxy or passthrough, pilih Proxy load balancer, lalu klik Next.
  5. Untuk Public facing or internal, pilih Public facing (external), lalu klik Next.
  6. Untuk Global or single region deployment, pilih Best for regional workloads, lalu klik Next.
  7. Klik Konfigurasikan.

Konfigurasi dasar

  1. Masukkan Nama load balancer.
  2. Untuk Region, pilih REGION.
  3. Untuk Network, pilih LB_NETWORK.

Mereservasi subnet khusus proxy

Untuk memesan subnet khusus proxy:

  1. Klik Reserve subnet.
  2. Untuk Name, masukkan PROXY_ONLY_SUBNET_NAME.
  3. Untuk Rentang alamat IP, masukkan PROXY_ONLY_SUBNET_RANGE.
  4. Klik Tambahkan.

Konfigurasi frontend

  1. Klik Frontend configuration.
  2. Masukkan Nama.
  3. Untuk Network Service Tier, pilih Standard.
  4. Untuk IP address, pilih alamat IP yang dicadangkan sebelumnya: LB_IP_ADDRESS.
  5. Untuk Nomor port, tentukan satu nomor port antara 1-65535. Aturan penerusan hanya meneruskan paket dengan port tujuan yang cocok.
  6. Klik Done.

Konfigurasi backend

  1. Klik Backend configuration.
  2. Klik Backend services and backend buckets.
  3. Klik Create a backend service.
  4. Masukkan nama.
  5. Untuk Backend type, pilih Internet network endpoint group.
  6. Untuk Protocol, pilih TCP.
  7. Untuk Backends, di jendela New backend, pilih Regional internet network endpoint group yang dibuat di langkah sebelumnya.
  8. Klik Done.
  9. Konfigurasi health check:
    1. Untuk Health check, pilih Create a health check.
    2. Tetapkan nama health check ke TCP_HEALTH_CHECK_NAME.
    3. Untuk Protocol, pilih TCP.
    4. Tetapkan Port ke 80.
    5. Pertahankan nilai default yang tersisa, lalu klik Save.
  10. Klik Create.

Tinjau dan selesaikan

  1. Klik Review and finalize.
  2. Jika semuanya sudah benar, klik Buat.

gcloud

  1. Opsional: Buat health check. Prob kesehatan untuk backend eksternal menggunakan health check Envoy terdistribusi dan kemudian diterjemahkan NAT.
      gcloud compute health-checks create tcp TCP_HEALTH_CHECK_NAME \
          --region=REGION \
          --use-serving-port
      
  2. Buat layanan backend:
      gcloud compute backend-services create BACKEND_SERVICE \
          --load-balancing-scheme=EXTERNAL_MANAGED \
          --health-checks=TCP_HEALTH_CHECK_NAME \
          --health-checks-region=REGION \
          --region=REGION
      
  3. Tambahkan NEG internet ke layanan backend:
      gcloud compute backend-services add-backend BACKEND_SERVICE \
          --network-endpoint-group=INTERNET_NEG_NAME \
          --network-endpoint-group-region=REGION \
          --region=REGION
       
      gcloud compute backend-services add-backend BACKEND_SERVICE \
          --network-endpoint-group=INTERNET_NEG_NAME \
          --network-endpoint-group-region=REGION \
          --region=REGION
       
  4. Buat proxy TCP target untuk mengarahkan permintaan ke layanan backend Anda.

      gcloud compute target-tcp-proxies create TARGET_TCP_PROXY_NAME \
          --backend-service=BACKEND_SERVICE \
          --region=REGION
      
  5. Buat aturan penerusan untuk mengarahkan permintaan masuk ke proxy. Untuk `--ports`, tentukan satu nomor port dari 1-65535. Aturan penerusan hanya meneruskan paket dengan port tujuan yang cocok.

      gcloud compute forwarding-rules create FORWARDING_RULE_NAME \
          --load-balancing-scheme=EXTERNAL_MANAGED \
          --network-tier=STANDARD \
          --network=LB_NETWORK \
          --address=LB_IP_ADDRESS \
          --target-tcp-proxy=TARGET_TCP_PROXY_NAME \
          --target-tcp-proxy-region=REGION \
          --region=REGION \
          --ports=PORT_NUMBER
      

Menguji load balancer

Setelah mengonfigurasi load balancer, Anda dapat menguji pengiriman traffic ke alamat IP load balancer.

  1. Dapatkan alamat IP load balancer.

    Untuk mendapatkan alamat IPv4, jalankan perintah berikut:

    gcloud compute addresses describe LB_IP_ADDRESS
    
  2. Kirim traffic ke load balancer di alamat IP dan port yang ditentukan saat membuat aturan penerusan load balancer. Pengujian apakah backend NEG internet merespons permintaan bergantung pada layanan yang berjalan di endpoint eksternal.

Langkah selanjutnya