Menyiapkan Load Balancer Aplikasi internal lintas region dengan bucket Cloud Storage di lingkungan VPC Bersama

Dokumen ini menunjukkan dua contoh konfigurasi untuk menyiapkan Load Balancer Aplikasi internal lintas region di lingkungan VPC Bersama dengan bucket Cloud Storage:

  • Contoh pertama membuat semua komponen dan backend load balancer dalam satu project layanan.
  • Contoh kedua membuat komponen frontend dan peta URL load balancer dalam satu project layanan, sementara bucket backend load balancer dan bucket Cloud Storage dibuat dalam project layanan yang berbeda.

Kedua contoh memerlukan konfigurasi awal yang sama untuk memberikan peran yang diperlukan dan menyiapkan VPC Bersama sebelum Anda dapat mulai membuat load balancer.

Selain contoh konfigurasi yang disebutkan di atas dalam dokumen ini, Anda juga dapat menyiapkan deployment VPC Bersama dengan frontend dan peta URL load balancer dibuat di project host, serta bucket backend, beserta bucket Cloud Storage, dibuat di project layanan. Untuk mengetahui informasi selengkapnya tentang arsitektur VPC Bersama valid lainnya, lihat Arsitektur VPC Bersama.

Jika Anda tidak ingin menggunakan jaringan VPC Bersama, lihat Menyiapkan Load Balancer Aplikasi internal lintas region dengan bucket Cloud Storage.

Sebelum memulai

Pastikan penyiapan Anda memenuhi prasyarat berikut.

Membuat Google Cloud project

Buat Google Cloud project untuk satu project host dan dua project layanan.

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk menyiapkan Load Balancer Aplikasi eksternal regional di lingkungan VPC Bersama dengan bucket Cloud Storage, minta administrator Anda untuk memberi Anda peran IAM berikut:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Menyiapkan lingkungan VPC Bersama

Selesaikan langkah-langkah berikut di project host untuk menyiapkan lingkungan VPC Bersama:

  1. Konfigurasi subnet untuk aturan penerusan load balancer.
  2. Konfigurasi subnet khusus proxy.
  3. Konfigurasi aturan firewall.
  4. Siapkan VPC Bersama di project host.

Langkah-langkah di bagian ini tidak perlu dilakukan setiap kali Anda ingin membuat load balancer baru. Namun, Anda harus memastikan bahwa Anda memiliki akses ke resource yang dijelaskan di sini sebelum melanjutkan pembuatan load balancer.

Project host menggunakan jaringan VPC, region, dan subnet berikut:

  • Jaringan. Jaringan ini adalah jaringan VPC mode kustom bernama lb-network.

  • Subnet untuk load balancer. Subnet bernama subnet-us di region us-east1 menggunakan 10.1.2.0/24 untuk rentang IP utamanya. Subnet bernama subnet-asia di region asia-east1 menggunakan 10.1.3.0/24 untuk rentang IP utamanya.

  • Subnet untuk proxy Envoy. Subnet bernama proxy-only-subnet-us-east1 di region us-east1 menggunakan 10.129.0.0/23 untuk rentang IP utamanya. Subnet bernama proxy-only-subnet-asia-east1 di region asia-east1 menggunakan 10.130.0.0/23 untuk rentang IP utamanya.

Mengonfigurasi subnet untuk aturan penerusan load balancer

Konsol

  1. Di konsol Google Cloud , buka halaman VPC networks.

    Buka VPC networks

  2. Klik Create VPC network.

  3. Untuk Name, masukkan lb-network.

  4. Di bagian Subnets, untuk Subnet creation mode, pilih Custom.

  5. Di bagian New subnet, masukkan informasi berikut:

    • Nama: subnet-us
    • Pilih Region: us-east1
    • Rentang alamat IP: 10.1.2.0/24
  6. Klik Done.

  7. Klik Tambahkan subnet.

  8. Buat subnet lain untuk aturan penerusan load balancer di region yang berbeda. Di bagian New subnet, masukkan informasi berikut:

    • Nama: subnet-asia
    • Region: asia-east1
    • Rentang alamat IP: 10.1.3.0/24
  9. Klik Done.

  10. Klik Create.

gcloud

  1. Buat jaringan VPC kustom, bernama lb-network, dengan perintah gcloud compute networks create.

    gcloud compute networks create lb-network \
        --subnet-mode=custom \
        --project=HOST_PROJECT_ID
    
  2. Buat subnet, bernama subnet-us, di jaringan VPC lb-network di region us-east1 dengan perintah gcloud compute networks subnets create.

    gcloud compute networks subnets create subnet-us \
        --network=lb-network \
        --range=10.1.2.0/24 \
        --region=us-east1 \
        --project=HOST_PROJECT_ID
    
  3. Buat subnet, bernama subnet-asia, di jaringan VPC lb-network di region asia-east1 dengan perintah gcloud compute networks subnets create.

    gcloud compute networks subnets create subnet-asia \
        --network=lb-network \
        --range=10.1.3.0/24 \
        --region=asia-east1 \
        --project=HOST_PROJECT_ID
    

    Ganti HOST_PROJECT_ID dengan Google Cloud project ID yang ditetapkan ke project yang diaktifkan sebagai project host di lingkungan VPC Bersama.

Mengonfigurasi subnet khusus proxy

Subnet khusus proxy menyediakan serangkaian alamat IP yang digunakan Google Cloud untuk menjalankan proxy Envoy atas nama Anda. Proxy menghentikan koneksi dari klien dan membuat koneksi baru ke backend.

Subnet khusus proxy ini digunakan oleh semua load balancer regional berbasis Envoy di region yang sama dengan jaringan VPC. Hanya ada satu subnet khusus proxy yang aktif untuk tujuan tertentu, per region, per jaringan. Dalam contoh ini, kita membuat dua subnet khusus proxy—satu di region us-east1, dan yang lainnya di region asia-east1.

Konsol

  1. Di konsol Google Cloud , buka halaman VPC networks.

    Buka VPC networks

  2. Klik nama jaringan VPC yang Anda buat.

  3. Di tab Subnet, klik Tambahkan subnet.

  4. Masukkan informasi sebagai berikut:

    • Untuk Name, masukkan proxy-only-subnet-us.
    • Untuk Region, masukkan us-east1.
    • Untuk Purpose, pilih Cross-region Managed Proxy.
    • Untuk Rentang alamat IP, masukkan 10.129.0.0/23.
  5. Klik Tambahkan.

  6. Buat subnet khusus proxy lain di region asia-east1. Di tab Subnet, klik Tambahkan subnet.

  7. Masukkan informasi sebagai berikut:

    • Untuk Name, masukkan proxy-only-subnet-asia.
    • Untuk Region, masukkan asia-east1.
    • Untuk Purpose, pilih Cross-region Managed Proxy.
    • Untuk Rentang alamat IP, masukkan 10.130.0.0/23.
  8. Klik Tambahkan.

gcloud

  1. Buat subnet khusus proxy di region us-east1 dengan perintah gcloud compute networks subnets create.

    Dalam contoh ini, subnet khusus proxy diberi nama proxy-only-subnet-us.

    gcloud compute networks subnets create proxy-only-subnet-us \
        --purpose=GLOBAL_MANAGED_PROXY \
        --role=ACTIVE \
        --region=us-east1 \
        --network=lb-network \
        --range=10.129.0.0/23 \
        --project=HOST_PROJECT_ID
    
  2. Buat subnet khusus proxy di region asia-east1 dengan perintah gcloud compute networks subnets create.

    Dalam contoh ini, subnet khusus proxy diberi nama proxy-only-subnet-asia.

    gcloud compute networks subnets create proxy-only-subnet-asia \
        --purpose=GLOBAL_MANAGED_PROXY \
        --role=ACTIVE \
        --region=asia-east1 \
        --network=lb-network \
        --range=10.130.0.0/23 \
        --project=HOST_PROJECT_ID
    

    Ganti HOST_PROJECT_ID dengan Google Cloud project ID yang ditetapkan ke project host.

Mengonfigurasi aturan firewall

Contoh ini menggunakan aturan firewall masuk yang mengizinkan akses SSH di port 22 ke VM klien. Dalam contoh ini, aturan firewall ini diberi nama fw-allow-ssh.

Konsol

  1. Di konsol Google Cloud , buka halaman Firewall policies.

    Buka Firewall policies

  2. Klik Create firewall rule untuk membuat aturan yang mengizinkan koneksi SSH yang masuk di VM klien:

    • Nama: fw-allow-ssh
    • Network: lb-network
    • Direction of traffic: Ingress
    • Tindakan terhadap kecocokan: Izinkan
    • Targets: Tag target yang ditentukan
    • Tag target: allow-ssh
    • Filter sumber: Rentang IPv4
    • Rentang IPv4 sumber: 0.0.0.0/0
    • Protokol dan port:
      • Pilih Specified protocols and ports.
      • Pilih kotak centang TCP, lalu masukkan 22 untuk nomor port.
  3. Klik Create.

gcloud

  1. Buat aturan firewall untuk mengizinkan konektivitas SSH ke VM dengan tag jaringan allow-ssh. Jika Anda menghapus --source-ranges, Google Cloud akan menafsirkan aturan sebagai sumber apa pun.

    Dalam contoh ini, aturan firewall diberi nama fw-allow-ssh.

    gcloud compute firewall-rules create fw-allow-ssh \
        --network=lb-network \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-ssh \
        --rules=tcp:22 \
        --project=HOST_PROJECT_ID
    

    Ganti HOST_PROJECT_ID dengan Google Cloud project ID yang ditetapkan ke project host.

Menyiapkan VPC Bersama di project host

Anda dapat mengaktifkan project host VPC Bersama, membagikan subnet project host, dan melampirkan project layanan ke project host sehingga project layanan dapat menggunakan jaringan VPC Bersama. Untuk menyiapkan VPC Bersama di project host, lihat halaman berikut:

Setelah menyelesaikan langkah-langkah sebelumnya, Anda dapat melanjutkan salah satu penyiapan berikut:

Mengonfigurasi load balancer di project layanan

Contoh ini membuat Load Balancer Aplikasi internal lintas region dengan semua komponen load balancing (aturan penerusan, proxy target, peta URL, dan bucket backend) serta bucket Cloud Storage dibuat di project layanan.

Resource jaringan load balancer, seperti subnet VPC, subnet khusus proxy, dan aturan firewall, dibuat di project host.

Gambar 1. Load Balancer Aplikasi internal lintas region di lingkungan VPC Bersama dengan bucket Cloud Storage
Gambar 1. Load Balancer Aplikasi internal lintas region di lingkungan VPC Bersama dengan bucket Cloud Storage

Bagian ini menunjukkan cara menyiapkan load balancer dan backend.

Contoh penyiapan di halaman ini secara eksplisit mengonfigurasi alamat IP yang dicadangkan untuk aturan penerusan load balancer, bukan mengizinkan alokasi alamat IP sementara. Sebagai praktik terbaik, sebaiknya Anda mencadangkan alamat IP untuk aturan penerusan.

Mengonfigurasi bucket Cloud Storage

Proses untuk mengonfigurasi bucket Cloud Storage Anda adalah sebagai berikut:

  1. Buat bucket Cloud Storage.
  2. Salin konten ke bucket Cloud Storage.
  3. Jadikan bucket Cloud Storage dapat diakses secara publik.

Membuat bucket Cloud Storage

Dalam contoh ini, Anda membuat dua bucket Cloud Storage, satu di region us-east1 dan satu lagi di region asia-east1. Untuk deployment produksi, sebaiknya pilih bucket multi-region, yang otomatis mereplikasi objek ke beberapa region Google Cloud . Hal ini dapat meningkatkan ketersediaan konten Anda dan meningkatkan toleransi kegagalan di seluruh aplikasi Anda.

Konsol

  1. Di konsol Google Cloud , buka halaman Buckets Cloud Storage.

    Buka Buckets

  2. Klik Create .

  3. Di bagian Mulai, masukkan nama yang unik secara global yang mengikuti pedoman penamaan.

  4. Klik Pilih lokasi untuk menyimpan data Anda.

  5. Tetapkan Location type ke Region.

  6. Dari daftar region, pilih us-east1.

  7. Klik Create.

  8. Klik Buckets untuk kembali ke halaman Cloud Storage Buckets. Gunakan petunjuk ini untuk membuat bucket kedua, tetapi tetapkan Location ke asia-east1.

gcloud

  1. Buat bucket pertama di region us-east1 dengan perintah gcloud storage buckets create.

    gcloud storage buckets create gs://BUCKET1_NAME \
        --default-storage-class=standard \
        --location=us-east1 \
        --uniform-bucket-level-access \
        --project=SERVICE_PROJECT_ID
    
  2. Buat bucket kedua di region asia-east1 dengan perintah gcloud storage buckets create.

    gcloud storage buckets create gs://BUCKET2_NAME \
        --default-storage-class=standard \
        --location=asia-east1 \
        --uniform-bucket-level-access \
        --project=SERVICE_PROJECT_ID
    

    Ganti kode berikut:

    • BUCKET1_NAME dan BUCKET2_NAME: Nama bucket Cloud Storage

    • SERVICE_PROJECT_ID: Google Cloud project ID yang ditetapkan ke project layanan

Menyalin konten ke bucket Cloud Storage

Untuk mengisi bucket Cloud Storage, salin file grafik dari bucket Cloud Storage publik ke bucket Cloud Storage Anda sendiri.

Jalankan perintah berikut di Cloud Shell, dengan mengganti variabel nama bucket dengan nama bucket Cloud Storage unik Anda:

  gcloud storage cp gs://gcp-external-http-lb-with-bucket/three-cats.jpg gs://BUCKET1_NAME/love-to-purr/
  
  gcloud storage cp gs://gcp-external-http-lb-with-bucket/two-dogs.jpg gs://BUCKET2_NAME/love-to-fetch/
  

Ganti BUCKET1_NAME dan BUCKET2_NAME dengan nama bucket Cloud Storage.

Menjadikan bucket Cloud Storage dapat diakses secara publik

Agar semua objek dalam bucket dapat dibaca oleh semua orang di internet publik, berikan peran Storage Object Viewer (roles/storage.objectViewer) kepada akun utama allUsers.

Konsol

Untuk memberikan akses kepada semua pengguna untuk melihat objek di bucket Anda, ulangi prosedur berikut untuk setiap bucket:

  1. Di konsol Google Cloud , buka halaman Buckets Cloud Storage.

    Buka Buckets

  2. Dalam daftar bucket, klik nama bucket yang ingin Anda tampilkan kepada publik.

  3. Pilih tab Izin.

  4. Di bagian Permissions, klik tombol Grant access. Dialog Grant access akan muncul.

  5. Di kolom New principals, masukkan allUsers.

  6. Di kolom Select a role, masukkan Storage Object Viewer di kotak filter, lalu pilih Storage Object Viewer dari hasil yang difilter.

  7. Klik Simpan.

  8. Klik Allow public access.

gcloud

Untuk memberikan akses kepada semua pengguna agar dapat melihat objek di bucket Anda, jalankan perintah gcloud storage buckets add-iam-policy-binding.

gcloud storage buckets add-iam-policy-binding gs://BUCKET1_NAME --member=allUsers --role=roles/storage.objectViewer
gcloud storage buckets add-iam-policy-binding gs://BUCKET2_NAME --member=allUsers --role=roles/storage.objectViewer

Ganti BUCKET1_NAME dan BUCKET2_NAME dengan nama bucket Cloud Storage.

Mencadangkan alamat IP load balancer

Cadangkan alamat IP internal statis untuk hal berikut:

  • Aturan penerusan di region us-east1
  • Aturan penerusan di region asia-east1

Konsol

  1. Di konsol Google Cloud , buka halaman IP addresses.

    Buka Reserve a static address

  2. Klik Reserve internal.

  3. Untuk Name, masukkan nama untuk alamat baru.

  4. Untuk IP version, pilih IPv4.

  5. Klik Reserve untuk mereservasi alamat IP.

  6. Ikuti langkah-langkah ini lagi untuk mencadangkan alamat IP di region asia-east1.

gcloud

  1. Untuk mencadangkan alamat IP internal statis di region us-east1, gunakan perintah gcloud compute addresses create.

    gcloud compute addresses create ADDRESS1_NAME  \
       --region=us-east1 \
       --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \
       --project=SERVICE_PROJECT_ID
    

    Ganti kode berikut:

    • ADDRESS1_NAME: nama yang ingin Anda tetapkan ke alamat IP ini
    • HOST_PROJECT_ID: ID Google Cloud project yang ditetapkan ke project host
    • SERVICE_PROJECT_ID: ID Google Cloud project yang ditetapkan ke project layanan
  2. Untuk mencadangkan alamat IP internal statis di region asia-east1, gunakan perintah gcloud compute addresses create.

    gcloud compute addresses create ADDRESS2_NAME  \
       --region=asia-east1 \
       --subnet=projects/HOST_PROJECT_ID/regions/asia-east1/subnetworks/subnet-asia \
       --project=SERVICE_PROJECT_ID
    

    Ganti kode berikut:

    • ADDRESS2_NAME: nama yang ingin Anda tetapkan ke alamat IP ini
    • HOST_PROJECT_ID: ID Google Cloud project yang ditetapkan ke project host
    • SERVICE_PROJECT_ID: ID Google Cloud project yang ditetapkan ke project layanan
  3. Gunakan perintah gcloud compute addresses describe untuk melihat hasilnya:

    gcloud compute addresses describe ADDRESS1_NAME \
       --project=SERVICE_PROJECT_ID
    
    gcloud compute addresses describe ADDRESS2_NAME \
       --project=SERVICE_PROJECT_ID
    

    Ganti kode berikut:

    • ADDRESS1_NAME dan ADDRESS2_NAME: nama yang telah Anda tetapkan ke alamat IP
    • SERVICE_PROJECT_ID: ID Google Cloud project yang ditetapkan ke project layanan

    Alamat IP yang ditampilkan disebut sebagai RESERVED_IP_ADDRESS di bagian berikutnya.

Menyiapkan resource sertifikat SSL

Untuk Load Balancer Aplikasi internal lintas region yang menggunakan HTTPS sebagai protokol permintaan dan respons, buat resource sertifikat SSL menggunakan Pengelola Sertifikat seperti yang dijelaskan dalam salah satu dokumen berikut:

Setelah membuat sertifikat, Anda dapat melampirkan sertifikat ke proxy target HTTPS.

Sebaiknya gunakan sertifikat yang dikelola Google.

Mengonfigurasi load balancer dengan bucket backend

Bagian ini menunjukkan cara membuat resource berikut untuk Load Balancer Aplikasi internal lintas region:

Dalam contoh ini, Anda dapat menggunakan HTTP atau HTTPS sebagai protokol permintaan dan respons antara klien dan load balancer. Untuk membuat load balancer HTTPS, Anda harus menambahkan resource sertifikat SSL ke frontend load balancer.

Untuk membuat komponen load balancing yang disebutkan di atas menggunakan gcloud CLI, ikuti langkah-langkah berikut:

  1. Buat dua bucket backend, satu untuk setiap bucket Cloud Storage, dengan perintah gcloud compute backend-buckets create. Bucket backend memiliki skema load balancing INTERNAL_MANAGED.

    Dalam contoh ini, bucket backend diberi nama backend-bucket-cats dan backend-bucket-dogs, yang menunjukkan konten dalam bucket Cloud Storage.

    gcloud compute backend-buckets create backend-bucket-cats \
        --gcs-bucket-name=BUCKET1_NAME \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --project=SERVICE_PROJECT_ID
    
    gcloud compute backend-buckets create backend-bucket-dogs \
        --gcs-bucket-name=BUCKET2_NAME \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --project=SERVICE_PROJECT_ID
    

    Ganti kode berikut:

    • BUCKET1_NAME dan BUCKET2_NAME: Nama bucket Cloud Storage

    • SERVICE_PROJECT_ID: Google Cloud project ID yang ditetapkan ke project layanan

  2. Buat peta URL untuk mengarahkan permintaan masuk ke bucket backend dengan perintah gcloud compute url-maps create.

    Dalam contoh ini, peta URL diberi nama lb-map.

    gcloud compute url-maps create lb-map \
        --default-backend-bucket=backend-bucket-cats \
        --global \
        --project=SERVICE_PROJECT_ID
    

    Ganti SERVICE_PROJECT_ID dengan Google Cloud project ID yang ditetapkan ke project layanan.

  3. Konfigurasi aturan host dan jalur peta URL dengan perintah gcloud compute url-maps add-path-matcher.

    Dalam contoh ini, bucket backend default adalah backend-bucket-cats, yang menangani semua jalur yang ada di dalamnya. Namun, setiap permintaan yang menargetkan http://FORWARDING_RULE_IP_ADDRESS/love-to-fetch/two-dogs.jpg menggunakan backend backend-bucket-dogs. Misalnya, jika folder /love-to-fetch/ juga ada dalam backend default (backend-bucket-cats), load balancer akan memprioritaskan backend backend-bucket-dogs karena ada aturan jalur khusus untuk /love-to-fetch/*.

    gcloud compute url-maps add-path-matcher lb-map \
        --path-matcher-name=path-matcher-pets \
        --new-hosts=* \
        --backend-bucket-path-rules="/love-to-fetch/*=backend-bucket-dogs" \
        --default-backend-bucket=backend-bucket-cats
        --project=SERVICE_PROJECT_ID
    

    Ganti SERVICE_PROJECT_ID dengan Google Cloud project ID yang ditetapkan ke project layanan.

  4. Buat proxy target dengan perintah gcloud compute target-http-proxies create.

    Untuk traffic HTTP, buat proxy HTTP target, yang diberi nama http-proxy, untuk mengirim permintaan ke peta URL:

    gcloud compute target-http-proxies create http-proxy \
        --url-map=lb-map \
        --global \
        --project=SERVICE_PROJECT_ID
    

    Ganti SERVICE_PROJECT_ID dengan Google Cloud project ID yang ditetapkan ke project layanan.

    Untuk traffic HTTPS, buat proxy HTTPS target, yang diberi nama https-proxy, untuk merutekan permintaan ke peta URL. Proxy ini merupakan bagian dari load balancer yang menampung sertifikat SSL untuk load balancer HTTPS. Setelah membuat sertifikat, Anda dapat melampirkan sertifikat ke proxy target HTTPS.

    gcloud compute target-https-proxies create https-proxy \
        --url-map=lb-map \
        --certificate-manager-certificates=CERTIFICATE_NAME \
        --global \
        --project=SERVICE_PROJECT_ID
    

    Ganti kode berikut:

  5. Buat dua aturan penerusan global, satu dengan alamat IP di region us-east1 dan satu lagi dengan alamat IP di region asia-east1 dengan perintah gcloud compute forwarding-rules create.

    Untuk traffic HTTP, buat aturan penerusan global (http-fw-rule-1 dan http-fw-rule-2) untuk merutekan permintaan masuk ke proxy target HTTP:

    gcloud compute forwarding-rules create http-fw-rule-1 \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \
        --subnet-region=us-east1 \
        --address=RESERVED_IP_ADDRESS \
        --ports=80 \
        --target-http-proxy=http-proxy \
        --global-target-http-proxy \
        --global \
        --project=SERVICE_PROJECT_ID
    
    gcloud compute forwarding-rules create http-fw-rule-2 \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --subnet=projects/HOST_PROJECT_ID/regions/asia-east1/subnetworks/subnet-asia \
        --subnet-region=asia-east1 \
        --address=RESERVED_IP_ADDRESS \
        --ports=80 \
        --target-http-proxy=http-proxy \
        --global-target-http-proxy \
        --global \
        --project=SERVICE_PROJECT_ID
    

    Ganti kode berikut:

    • HOST_PROJECT_ID: Google Cloud project ID yang ditetapkan ke project host
    • RESERVED_IP_ADDRESS: alamat IP yang Anda pesan
    • SERVICE_PROJECT_ID: Google Cloud project ID yang ditetapkan ke project layanan

    Untuk traffic HTTPS, buat aturan penerusan global (https-fw-rule-1 dan https-fw-rule-2) untuk merutekan permintaan masuk ke proxy target HTTPS:

    gcloud compute forwarding-rules create https-fw-rule-1 \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \
        --subnet-region=us-east1 \
        --address=RESERVED_IP_ADDRESS \
        --ports=443 \
        --target-https-proxy=https-proxy \
        --global-target-https-proxy \
        --global \
        --project=SERVICE_PROJECT_ID
    
    gcloud compute forwarding-rules create https-fw-rule-2 \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --subnet=projects/HOST_PROJECT_ID/regions/asia-east1/subnetworks/subnet-asia \
        --subnet-region=asia-east1 \
        --address=RESERVED_IP_ADDRESS \
        --ports=443 \
        --target-https-proxy=https-proxy \
        --global-target-https-proxy \
        --global \
        --project=SERVICE_PROJECT_ID
    

    Ganti kode berikut:

    • HOST_PROJECT_ID: Google Cloud project ID yang ditetapkan ke project host
    • RESERVED_IP_ADDRESS: alamat IP yang Anda pesan
    • SERVICE_PROJECT_ID: Google Cloud project ID yang ditetapkan ke project layanan

Mengirim permintaan HTTP ke load balancer

Kirim permintaan dari VM klien internal ke aturan penerusan load balancer.

Dapatkan alamat IP aturan penerusan load balancer

Untuk mendapatkan alamat IP aturan penerusan load balancer, selesaikan langkah-langkah berikut:

  1. Dapatkan alamat IP aturan penerusan load balancer (http-fw-rule-1), yang berada di region us-east1.

    gcloud compute forwarding-rules describe http-fw-rule-1 \
        --global \
        --project=SERVICE_PROJECT_ID
    
  2. Dapatkan alamat IP aturan penerusan load balancer (http-fw-rule-2), yang berada di region asia-east1.

    gcloud compute forwarding-rules describe http-fw-rule-2 \
        --global \
        --project=SERVICE_PROJECT_ID
    

    Ganti SERVICE_PROJECT_ID dengan Google Cloud project ID yang ditetapkan ke project layanan.

    Salin alamat IP yang ditampilkan untuk digunakan sebagai FORWARDING_RULE_IP_ADDRESS di langkah berikutnya.

Buat VM klien untuk menguji konektivitas

Untuk membuat VM klien guna menguji konektivitas, selesaikan langkah-langkah berikut:

  1. Buat VM klien, bernama client-a, di region us-east1.

    gcloud compute instances create client-a \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \
        --zone=us-east1-c \
        --tags=allow-ssh \
        --project=SERVICE_PROJECT_ID
    

    Ganti kode berikut:

    • HOST_PROJECT_ID: Google Cloud project ID yang ditetapkan ke project host
    • SERVICE_PROJECT_ID: Google Cloud project ID yang ditetapkan ke project layanan
  2. Buat koneksi SSH ke VM klien.

     gcloud compute ssh client-a \
         --zone=us-east1-c \
         --project=SERVICE_PROJECT_ID
    

    Ganti SERVICE_PROJECT_ID dengan Google Cloud project ID yang ditetapkan ke project layanan.

  3. Dalam contoh ini, Load Balancer Aplikasi internal lintas region memiliki alamat IP virtual frontend (VIP) di region us-east1 dan asia-east1 dalam jaringan VPC. Buat permintaan HTTP ke VIP di salah satu region menggunakan curl.

    curl http://FORWARDING_RULE_IP_ADDRESS/love-to-fetch/two-dogs.jpg --output two-dogs.jpg
    
    curl http://FORWARDING_RULE_IP_ADDRESS/love-to-purr/three-cats.jpg --output three-cats.jpg
    

    Ganti FORWARDING_RULE_IP_ADDRESS dengan alamat IP aturan penerusan load balancer.

Menguji ketersediaan tinggi

Untuk menguji ketersediaan tinggi, selesaikan langkah-langkah berikut:

  1. Hapus aturan penerusan (http-fw-rule-1) di region us-east1 untuk mensimulasikan pemadaman regional dan periksa apakah klien di region us-east masih dapat mengakses data dari bucket backend.

    gcloud compute forwarding-rules delete http-fw-rule-1 \
        --global \
        --project=SERVICE_PROJECT_ID
    

    Ganti SERVICE_PROJECT_ID dengan Google Cloud project ID yang ditetapkan ke project layanan.

  2. Buat permintaan HTTP ke VIP aturan penerusan di salah satu region menggunakan curl.

    curl http://FORWARDING_RULE_IP_ADDRESS/love-to-fetch/two-dogs.jpg --output two-dogs.jpg
    
    curl http://FORWARDING_RULE_IP_ADDRESS/love-to-purr/three-cats.jpg --output three-cats.jpg
    

    Ganti FORWARDING_RULE_IP_ADDRESS dengan alamat IP aturan penerusan.

    Jika Anda membuat permintaan HTTP ke VIP di region us-east1, kebijakan pemilihan rute DNS akan mendeteksi bahwa VIP ini tidak merespons, dan menampilkan VIP paling optimal berikutnya kepada klien (dalam contoh ini, asia-east1). Perilaku ini membantu memastikan aplikasi Anda tetap aktif meskipun terjadi gangguan regional.

Mengonfigurasi load balancer dengan konfigurasi lintas project

Contoh sebelumnya di halaman ini menunjukkan cara menyiapkan deployment VPC Bersama dengan semua komponen load balancer dan backend-nya dibuat di project layanan.

Load Balancer Aplikasi internal lintas region juga memungkinkan Anda mengonfigurasi deployment VPC Bersama tempat peta URL di satu host atau project layanan dapat mereferensikan bucket backend yang terletak di beberapa project layanan di lingkungan VPC Bersama.

Anda dapat menggunakan langkah-langkah di bagian ini sebagai referensi untuk mengonfigurasi kombinasi yang didukung dan tercantum di sini:

  • Aturan penerusan, proxy target, dan peta URL di project host, serta bucket backend di project layanan
  • Aturan penerusan, proxy target, dan peta URL di project layanan, serta bucket backend di project layanan lain

Di bagian ini, konfigurasi kedua diuraikan sebagai contoh.

Ringkasan penyiapan

Contoh ini mengonfigurasi load balancer dengan frontend dan backend-nya di dua project layanan yang berbeda.

Jika belum melakukannya, Anda harus menyelesaikan semua langkah prasyarat untuk menyiapkan VPC Bersama dan mengonfigurasi jaringan, subnet, dan aturan firewall yang diperlukan untuk contoh ini. Untuk mengetahui petunjuknya, lihat bagian berikut di awal halaman ini:

Gambar 2. Frontend dan backend load balancer di project layanan yang berbeda
Gambar 2. Frontend dan backend load balancer di project layanan yang berbeda

Mengonfigurasi bucket Cloud Storage dan bucket backend di project layanan B

Semua langkah di bagian ini harus dilakukan di project layanan B

Untuk membuat bucket backend, Anda harus melakukan hal berikut:

  1. Buat bucket Cloud Storage.
  2. Salin konten ke bucket Cloud Storage.
  3. Jadikan bucket Cloud Storage dapat diakses secara publik.
  4. Buat bucket backend dan arahkan ke bucket Cloud Storage.

Membuat bucket Cloud Storage

Dalam contoh ini, Anda membuat dua bucket Cloud Storage, satu di region us-east1 dan satu lagi di region asia-east1. Untuk deployment produksi, sebaiknya pilih bucket multi-region, yang otomatis mereplikasi objek ke beberapa region Google Cloud . Hal ini dapat meningkatkan ketersediaan konten Anda dan meningkatkan toleransi kegagalan di seluruh aplikasi Anda.

Konsol

  1. Di konsol Google Cloud , buka halaman Buckets Cloud Storage.

    Buka Buckets

  2. Klik Create .

  3. Di bagian Mulai, masukkan nama yang unik secara global yang mengikuti pedoman penamaan.

  4. Klik Pilih lokasi untuk menyimpan data Anda.

  5. Tetapkan Location type ke Region.

  6. Dari daftar region, pilih us-east1.

  7. Klik Create.

  8. Klik Buckets untuk kembali ke halaman Cloud Storage Buckets. Gunakan petunjuk ini untuk membuat bucket kedua, tetapi tetapkan Location ke asia-east1.

gcloud

  1. Buat bucket pertama di region us-east1 dengan perintah gcloud storage buckets create.

    gcloud storage buckets create gs://BUCKET1_NAME \
        --default-storage-class=standard \
        --location=us-east1 \
        --uniform-bucket-level-access \
        --project=SERVICE_PROJECT_B_ID
    
  2. Buat bucket kedua di region asia-east1 dengan perintah gcloud storage buckets create.

    gcloud storage buckets create gs://BUCKET2_NAME \
        --default-storage-class=standard \
        --location=asia-east1 \
        --uniform-bucket-level-access \
        --project=SERVICE_PROJECT_B_ID
    

Ganti kode berikut:

  • BUCKET1_NAME dan BUCKET2_NAME: Nama bucket Cloud Storage.

  • SERVICE_PROJECT_B_ID: Google Cloud project ID yang ditetapkan ke project layanan B.

Menyalin konten ke bucket Cloud Storage

Untuk mengisi bucket Cloud Storage, salin file grafik dari bucket Cloud Storage publik ke bucket Cloud Storage Anda sendiri.

Jalankan perintah berikut di Cloud Shell, dengan mengganti variabel nama bucket dengan nama bucket Cloud Storage unik Anda:

  gcloud storage cp gs://gcp-external-http-lb-with-bucket/three-cats.jpg gs://BUCKET1_NAME/love-to-purr/
  
  gcloud storage cp gs://gcp-external-http-lb-with-bucket/two-dogs.jpg gs://BUCKET2_NAME/love-to-fetch/
  

Ganti BUCKET1_NAME dan BUCKET2_NAME dengan nama bucket Cloud Storage.

Menjadikan bucket Cloud Storage dapat diakses secara publik

Agar semua objek dalam bucket dapat dibaca oleh semua orang di internet publik, berikan peran Storage Object Viewer (roles/storage.objectViewer) kepada akun utama allUsers.

Konsol

Untuk memberikan akses kepada semua pengguna untuk melihat objek di bucket Anda, ulangi prosedur berikut untuk setiap bucket:

  1. Di konsol Google Cloud , buka halaman Buckets Cloud Storage.

    Buka Buckets

  2. Dalam daftar bucket, klik nama bucket yang ingin Anda tampilkan kepada publik.

  3. Pilih tab Izin.

  4. Di bagian Permissions, klik tombol Grant access. Dialog Grant access akan muncul.

  5. Di kolom New principals, masukkan allUsers.

  6. Di kolom Select a role, masukkan Storage Object Viewer di kotak filter, lalu pilih Storage Object Viewer dari hasil yang difilter.

  7. Klik Simpan.

  8. Klik Allow public access.

gcloud

Untuk memberikan akses kepada semua pengguna agar dapat melihat objek di bucket Anda, jalankan perintah gcloud storage buckets add-iam-policy-binding.

gcloud storage buckets add-iam-policy-binding gs://BUCKET1_NAME --member=allUsers --role=roles/storage.objectViewer
gcloud storage buckets add-iam-policy-binding gs://BUCKET2_NAME --member=allUsers --role=roles/storage.objectViewer

Ganti BUCKET1_NAME dan BUCKET2_NAME dengan nama bucket Cloud Storage.

Mengonfigurasi load balancer dengan bucket backend

Untuk membuat bucket backend, ikuti langkah-langkah berikut:

  1. Buat dua bucket backend, satu untuk setiap bucket Cloud Storage, dengan perintah gcloud compute backend-buckets create. Bucket backend memiliki skema load balancing INTERNAL_MANAGED.

    Dalam contoh ini, bucket backend diberi nama backend-bucket-cats dan backend-bucket-dogs, yang menunjukkan konten di bucket Cloud Storage.

    gcloud compute backend-buckets create backend-bucket-cats \
        --gcs-bucket-name=BUCKET1_NAME \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --project=SERVICE_PROJECT_B_ID
    
    gcloud compute backend-buckets create backend-bucket-dogs \
        --gcs-bucket-name=BUCKET2_NAME \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --project=SERVICE_PROJECT_B_ID
    

    Ganti kode berikut:

    • BUCKET1_NAME dan BUCKET2_NAME: Nama bucket Cloud Storage.

    • SERVICE_PROJECT_B_ID: Google Cloud project ID yang ditetapkan ke project layanan B.

Mengonfigurasi komponen frontend load balancer di project layanan A

Semua langkah di bagian ini harus dilakukan di project layanan A

Di project layanan A, Anda perlu membuat komponen load balancing frontend berikut:

  • Resource sertifikat SSL yang dilampirkan ke proxy target. Anda dapat mengikuti langkah-langkah yang diuraikan di bagian sebelumnya untuk membuat sertifikat SSL.
  • Dua alamat IP untuk dua aturan penerusan load balancer. Anda dapat mengikuti langkah-langkah yang diuraikan di bagian sebelumnya untuk membuat alamat IP bagi aturan penerusan.
  • Peta URL yang mereferensikan bucket backend di project layanan B
  • Proxy target
  • Dua aturan penerusan, masing-masing memiliki alamat IP regional.

Untuk membuat komponen frontend, lakukan hal berikut:

  1. Buat peta URL untuk mengarahkan permintaan masuk ke bucket backend dengan perintah gcloud compute url-maps create.

    Dalam contoh ini, peta URL diberi nama lb-map.

    gcloud compute url-maps create lb-map \
        --default-backend-bucket=projects/SERVICE_PROJECT_B_ID/global/backendBuckets/backend-bucket-cats \
        --global \
        --project=SERVICE_PROJECT_A_ID
    

    Ganti kode berikut:

    • SERVICE_PROJECT_B_ID: Google Cloud project ID yang ditetapkan ke project layanan B

    • SERVICE_PROJECT_A_ID: Google Cloud project ID yang ditetapkan ke project layanan A

  2. Konfigurasi aturan host dan jalur peta URL dengan perintah gcloud compute url-maps add-path-matcher.

    Dalam contoh ini, bucket backend default adalah backend-bucket-cats, yang menangani semua jalur yang ada di dalamnya. Namun, setiap permintaan yang menargetkan http://FORWARDING_RULE_IP_ADDRESS/love-to-fetch/two-dogs.jpg menggunakan backend backend-bucket-dogs. Misalnya, jika folder /love-to-fetch/ juga ada dalam backend default (backend-bucket-cats), load balancer akan memprioritaskan backend backend-bucket-dogs karena ada aturan jalur khusus untuk /love-to-fetch/*.

    gcloud compute url-maps add-path-matcher lb-map \
        --path-matcher-name=path-matcher-pets \
        --new-hosts=* \
        --backend-bucket-path-rules="/love-to-fetch/*=projects/SERVICE_PROJECT_B_ID/global/backendBuckets/backend-bucket-dogs" \
        --default-backend-bucket=projects/SERVICE_PROJECT_B_ID/global/backendBuckets/backend-bucket-cats \
        --project=SERVICE_PROJECT_A_ID
    

    Ganti kode berikut:

    • SERVICE_PROJECT_B_ID: Google Cloud project ID yang ditetapkan ke project layanan B

    • SERVICE_PROJECT_A_ID: Google Cloud project ID yang ditetapkan ke project layanan A

  3. Buat proxy target dengan perintah gcloud compute target-http-proxies create.

    Untuk traffic HTTP, buat proxy HTTP target, yang diberi nama http-proxy, untuk mengarahkan permintaan ke peta URL:

    gcloud compute target-http-proxies create http-proxy \
        --url-map=lb-map \
        --global \
        --project=SERVICE_PROJECT_A_ID
    

    Ganti SERVICE_PROJECT_A_ID dengan ID projectGoogle Cloud yang ditetapkan ke project layanan A.

    Untuk traffic HTTPS, buat proxy HTTPS target, yang diberi nama https-proxy, untuk merutekan permintaan ke peta URL. Proxy ini merupakan bagian dari load balancer yang menampung sertifikat SSL untuk load balancer HTTPS. Setelah membuat sertifikat, Anda dapat melampirkan sertifikat ke proxy target HTTPS.

    gcloud compute target-https-proxies create https-proxy \
        --url-map=lb-map \
        --certificate-manager-certificates=CERTIFICATE_NAME \
        --global \
        --project=SERVICE_PROJECT_A_ID
    

    Ganti kode berikut:

  4. Buat dua aturan penerusan global, satu dengan alamat IP di region us-east1 dan satu lagi dengan alamat IP di region asia-east1 dengan perintah gcloud compute forwarding-rules create.

    Untuk traffic HTTP, buat aturan penerusan global (http-fw-rule-1 dan http-fw-rule-2) untuk merutekan permintaan masuk ke proxy target HTTP:

      gcloud compute forwarding-rules create http-fw-rule-1 \
          --load-balancing-scheme=INTERNAL_MANAGED \
          --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
          --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \
          --subnet-region=us-east1 \
          --address=RESERVED_IP_ADDRESS \
          --ports=80 \
          --target-http-proxy=http-proxy \
          --global-target-http-proxy \
          --global \
          --project=SERVICE_PROJECT_A_ID
    
      gcloud compute forwarding-rules create http-fw-rule-2 \
          --load-balancing-scheme=INTERNAL_MANAGED \
          --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
          --subnet=projects/HOST_PROJECT_ID/regions/asia-east1/subnetworks/subnet-asia \
          --subnet-region=asia-east1 \
          --address=RESERVED_IP_ADDRESS \
          --ports=80 \
          --target-http-proxy=http-proxy \
          --global-target-http-proxy \
          --global \
          --project=SERVICE_PROJECT_A_ID
    

    Ganti kode berikut:

    • HOST_PROJECT_ID: Google Cloud project ID yang ditetapkan ke project host
    • RESERVED_IP_ADDRESS: alamat IP yang Anda pesan
    • SERVICE_PROJECT_A_ID: Google Cloud project ID yang ditetapkan ke project layanan A

    Untuk traffic HTTPS, buat aturan penerusan global (https-fw-rule-1 dan https-fw-rule-2) untuk merutekan permintaan masuk ke proxy target HTTPS:

    gcloud compute forwarding-rules create https-fw-rule-1 \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \
        --subnet-region=us-east1 \
        --address=RESERVED_IP_ADDRESS \
        --ports=443 \
        --target-https-proxy=https-proxy \
        --global-target-https-proxy \
        --global \
        --project=SERVICE_PROJECT_A_ID
    
    gcloud compute forwarding-rules create https-fw-rule-2 \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --subnet=projects/HOST_PROJECT_ID/regions/asia-east1/subnetworks/subnet-asia \
        --subnet-region=asia-east1 \
        --address=RESERVED_IP_ADDRESS \
        --ports=443 \
        --target-https-proxy=https-proxy \
        --global-target-https-proxy \
        --global \
        --project=SERVICE_PROJECT_A_ID
    

    Ganti kode berikut:

    • HOST_PROJECT_ID: Google Cloud project ID yang ditetapkan ke project host
    • RESERVED_IP_ADDRESS: alamat IP yang Anda pesan
    • SERVICE_PROJECT_A_ID: Google Cloud project ID yang ditetapkan ke project layanan A

Memberikan izin kepada Admin Load Balancer untuk menggunakan bucket backend

Jika Anda ingin load balancer mereferensikan bucket backend di project layanan lain, administrator load balancer harus memiliki izin compute.backendBuckets.use. Untuk memberikan izin ini, Anda dapat menggunakan peran IAM bawaan yang disebut Compute Load Balancer Services User (roles/compute.loadBalancerServiceUser). Peran ini harus diberikan oleh Service Project Admin dan dapat diterapkan di tingkat project layanan atau di tingkat bucket backend individual.

Dalam contoh ini, Service Project Admin dari project layanan B harus menjalankan salah satu perintah berikut untuk memberikan izin compute.backendBuckets.use kepada Admin Load Balancer dari project layanan A. Hal ini dapat dilakukan di tingkat project (untuk semua bucket backend dalam project) atau per bucket backend.

Konsol

Izin tingkat project

Gunakan langkah-langkah berikut untuk memberikan izin ke semua bucket backend di project Anda.

Anda memerlukan izin compute.backendBuckets.setIamPolicy dan resourcemanager.projects.setIamPolicy untuk menyelesaikan langkah ini.

  1. Di konsol Google Cloud , buka halaman IAM.

    Buka IAM

  2. Pilih project Anda.

  3. Klik Grant access.

  4. Di kolom New principals, masukkan alamat email atau ID lain akun utama.

  5. Di bagian Tetapkan peran, klik Tambahkan peran.

  6. Dalam dialog Select roles, di kolom Search for roles, masukkan Compute Load Balancer Services User.

  7. Pilih kotak centang Compute Load Balancer Services User.

  8. Klik Terapkan.

  9. Opsional: Tambahkan kondisi ke peran.

  10. Klik Simpan.

Izin tingkat resource untuk setiap bucket backend

Gunakan langkah-langkah berikut untuk memberikan izin ke bucket backend individual di project Anda.

Anda memerlukan izin compute.backendBuckets.setIamPolicy untuk menyelesaikan langkah ini.

  1. Di konsol Google Cloud , buka halaman Backends.

    Buka Backend

  2. Dari daftar backend, pilih bucket backend yang ingin Anda beri akses, lalu klik Izin.

  3. Klik Add principal.

  4. Di kolom New principals, masukkan alamat email atau ID lain akun utama.

  5. Dalam daftar Pilih peran, pilih Compute Load Balancer Services User.

  6. Klik Simpan.

gcloud

Izin tingkat project

Gunakan langkah-langkah berikut untuk memberikan izin ke semua bucket backend di project Anda.

Anda memerlukan izin compute.backendBuckets.setIamPolicy dan resourcemanager.projects.setIamPolicy untuk menyelesaikan langkah ini.

  gcloud projects add-iam-policy-binding SERVICE_PROJECT_B_ID \
      --member="user:LOAD_BALANCER_ADMIN" \
      --role="roles/compute.loadBalancerServiceUser"

Ganti kode berikut:

  • SERVICE_PROJECT_B_ID: ID Google Cloud project yang ditetapkan ke project layanan B
  • LOAD_BALANCER_ADMIN: principal yang akan ditambahkan binding-nya

Izin tingkat resource untuk setiap bucket backend

Di tingkat bucket backend, Service Project Admin dapat menggunakan salah satu perintah berikut untuk memberikan peran Pengguna Layanan Load Balancer Compute (roles/compute.loadBalancerServiceUser):

Gunakan perintah gcloud projects add-iam-policy-binding untuk memberikan peran Compute Load Balancer Services User.

Anda memerlukan izin compute.backendBuckets.setIamPolicy untuk menyelesaikan langkah ini.

  gcloud projects add-iam-policy-binding SERVICE_PROJECT_B_ID \
      --member="user:LOAD_BALANCER_ADMIN" \
      --role="roles/compute.loadBalancerServiceUser" \
      --condition='expression=resource.name=="projects/SERVICE_PROJECT_B_ID/global/backendBuckets/BACKEND_BUCKET_NAME",title=Shared VPC condition'
Ganti kode berikut:
  • SERVICE_PROJECT_B_ID: ID project yang ditetapkan ke project layanan B Google Cloud
  • LOAD_BALANCER_ADMIN: principal yang akan ditambahkan binding-nya
  • BACKEND_BUCKET_NAME: nama bucket backend
Atau, gunakan perintah gcloud compute backend-buckets add-iam-policy-binding untuk memberikan peran Compute Load Balancer Services User.
  gcloud compute backend-buckets add-iam-policy-binding BACKEND_BUCKET_NAME \
      --member="user:LOAD_BALANCER_ADMIN" \
      --role="roles/compute.loadBalancerServiceUser" \
      --project=SERVICE_PROJECT_B_ID \

Mengirim permintaan HTTP ke load balancer

Kirim permintaan dari VM klien internal ke aturan penerusan load balancer.

Dapatkan alamat IP aturan penerusan load balancer

Untuk mendapatkan alamat IP aturan penerusan load balancer, selesaikan langkah-langkah berikut:

  1. Dapatkan alamat IP aturan penerusan load balancer (http-fw-rule-1), yang berada di region us-east1.

    gcloud compute forwarding-rules describe http-fw-rule-1 \
        --global \
        --project=SERVICE_PROJECT_A_ID
    
  2. Dapatkan alamat IP aturan penerusan load balancer (http-fw-rule-2), yang berada di region asia-east1.

    gcloud compute forwarding-rules describe http-fw-rule-2 \
        --global \
        --project=SERVICE_PROJECT_A_ID
    

    Ganti SERVICE_PROJECT_A_ID dengan ID projectGoogle Cloud yang ditetapkan ke project layanan A.

    Salin alamat IP yang ditampilkan untuk digunakan sebagai FORWARDING_RULE_IP_ADDRESS di langkah berikutnya.

Buat VM klien untuk menguji konektivitas

Untuk membuat VM klien guna menguji konektivitas, selesaikan langkah-langkah berikut:

  1. Buat VM klien, bernama client-a, di region us-east1.

    gcloud compute instances create client-a \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \
        --zone=us-east1-c \
        --tags=allow-ssh \
        --project=SERVICE_PROJECT_A_ID
    

    Ganti kode berikut:

    • HOST_PROJECT_ID: Google Cloud project ID yang ditetapkan ke project host
    • SERVICE_PROJECT_A_ID: Google Cloud project ID yang ditetapkan ke project layanan A
  2. Buat koneksi SSH ke VM klien.

     gcloud compute ssh client-a \
         --zone=us-east1-c \
         --project=SERVICE_PROJECT_A_ID
    

    Ganti SERVICE_PROJECT_A_ID dengan ID projectGoogle Cloud yang ditetapkan ke project layanan A.

  3. Dalam contoh ini, Load Balancer Aplikasi internal lintas region memiliki alamat IP virtual frontend (VIP) di region us-east1 dan asia-east1 dalam jaringan VPC. Buat permintaan HTTP ke VIP di salah satu region menggunakan curl.

    curl http://FORWARDING_RULE_IP_ADDRESS/love-to-fetch/two-dogs.jpg --output two-dogs.jpg
    
    curl http://FORWARDING_RULE_IP_ADDRESS/love-to-purr/three-cats.jpg --output three-cats.jpg
    

    Ganti FORWARDING_RULE_IP_ADDRESS dengan alamat IP aturan penerusan load balancer.

Untuk menguji ketersediaan tinggi, lihat bagian Menguji ketersediaan tinggi dalam dokumen ini.

Langkah berikutnya