Dokumen ini menunjukkan dua contoh konfigurasi untuk menyiapkan Load Balancer Aplikasi eksternal regional 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 load balancer dan peta URL dibuat di project host, serta bucket backend, bersama dengan 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 eksternal regional 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 menyiapkan VPC Bersama:
Compute Shared VPC Admin (
roles/compute.xpnAdmin) di project host -
Untuk memberikan akses kepada administrator project layanan agar dapat menggunakan jaringan VPC Bersama:
Compute Network User (
roles/compute.networkUser) di project host -
Untuk membuat bucket Cloud Storage:
Storage Object Admin (
roles/storage.objectAdmin) di project layanan -
Untuk membuat resource load balancing:
Compute Network Admin (
roles/compute.networkAdmin) di project layanan -
Untuk membuat instance Compute Engine:
Compute Instance Admin (
roles/compute.instanceAdmin.v1) di project layanan -
Untuk membuat dan mengubah sertifikat SSL Compute Engine:
Compute Security Admin (
roles/compute.securityAdmin) di project layanan -
Untuk membuat dan mengubah sertifikat SSL Pengelola Sertifikat:
Pemilik Pengelola Sertifikat (
roles/certificatemanager.owner) di project layanan -
Untuk mereferensikan bucket backend di project layanan lain:
Pengguna Layanan Load Balancer Compute (
roles/compute.loadBalancerServiceUser) di project layanan
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:
- Konfigurasi jaringan VPC mode kustom.
- Konfigurasi subnet khusus proxy.
- 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.
Contoh ini menggunakan jaringan VPC, region, dan subnet khusus proxy berikut:
Jaringan. Jaringan ini adalah jaringan VPC mode kustom bernama
lb-network.Subnet untuk proxy Envoy. Subnet bernama
proxy-only-subnet-usdi regionus-east1menggunakan10.129.0.0/23untuk rentang IP utamanya.
Mengonfigurasi jaringan VPC mode kustom
Konsol
Di konsol Google Cloud , buka halaman VPC networks.
Klik Create VPC network.
Untuk Name, masukkan
lb-network.Klik Create.
gcloud
Buat jaringan VPC kustom, bernama
lb-network, dengan perintahgcloud compute networks create.gcloud compute networks create lb-network \ --subnet-mode=custom \ --project=HOST_PROJECT_IDGanti
HOST_PROJECT_IDdengan 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.
Konsol
Di konsol Google Cloud , buka halaman VPC networks.
Klik nama jaringan VPC yang Anda buat.
Di tab Subnet, klik Tambahkan subnet.
Masukkan informasi sebagai berikut:
- Nama:
proxy-only-subnet-us - Region:
us-east1 - Tujuan: Regional Managed Proxy
- Rentang alamat IP:
10.129.0.0/23
- Nama:
Klik Tambahkan.
gcloud
Buat subnet khusus proxy di region
us-east1dengan perintahgcloud compute networks subnets create.gcloud compute networks subnets create proxy-only-subnet-us \ --purpose=REGIONAL_MANAGED_PROXY \ --role=ACTIVE \ --region=us-east1 \ --network=lb-network \ --range=10.129.0.0/23 \ --project=HOST_PROJECT_IDGanti
HOST_PROJECT_IDdengan Google Cloud project ID yang ditetapkan ke project host.
Menyiapkan VPC Bersama di project host
Anda dapat mengaktifkan project host VPC Bersama 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
- Mengonfigurasi load balancer dengan konfigurasi lintas project
Mengonfigurasi load balancer di project layanan
Contoh ini membuat Load Balancer Aplikasi eksternal regional tempat 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 Aplikasi eksternal regional seperti subnet khusus proxy dibuat di project host.
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 Aplikasi eksternal regional, bukan mengizinkan alamat IP sementara dialokasikan. 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:
- Buat bucket Cloud Storage.
- Salin konten ke bucket Cloud Storage.
- Jadikan bucket Cloud Storage dapat diakses secara publik.
Membuat bucket Cloud Storage
Dalam contoh ini, Anda membuat dua bucket Cloud Storage di region us-east1.
Konsol
- Di konsol Google Cloud , buka halaman Buckets Cloud Storage.
Klik Create .
Di bagian Mulai, masukkan nama yang unik secara global yang mengikuti pedoman penamaan.
Klik Pilih lokasi untuk menyimpan data Anda.
Tetapkan Location type ke Region.
Dari daftar region, pilih us-east1.
Klik Create.
Klik Buckets untuk kembali ke halaman Cloud Storage Buckets. Gunakan petunjuk ini untuk membuat bucket kedua di region us-east1.
gcloud
Buat bucket pertama di region
us-east1dengan perintahgcloud storage buckets create.gcloud storage buckets create gs://BUCKET1_NAME \ --default-storage-class=standard \ --location=us-east1 \ --uniform-bucket-level-access \ --project=SERVICE_PROJECT_IDBuat bucket kedua juga di region
us-east1dengan perintahgcloud storage buckets create.gcloud storage buckets create gs://BUCKET2_NAME \ --default-storage-class=standard \ --location=us-east1 \ --uniform-bucket-level-access \ --project=SERVICE_PROJECT_ID
Ganti kode berikut:
BUCKET1_NAMEdanBUCKET2_NAME: nama bucket Cloud Storage AndaSERVICE_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.
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 Anda.
Menjadikan bucket Cloud Storage dapat diakses secara publik
Agar semua objek dalam bucket dapat diakses 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:
- Di konsol Google Cloud , buka halaman Buckets Cloud Storage.
Dalam daftar bucket, klik nama bucket yang ingin Anda tampilkan kepada publik.
Pilih tab Izin.
Di bagian Permissions, klik tombol Grant access. Dialog Grant access akan muncul.
Di kolom New principals, masukkan
allUsers.Di kolom Select a role, masukkan
Storage Object Viewerdi kotak filter, lalu pilih Storage Object Viewer dari hasil yang difilter.Klik Simpan.
Klik Allow public access.
gcloud
Untuk memberikan akses kepada semua pengguna agar dapat melihat objek di bucket Anda, jalankan perintah 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 Anda.
Mencadangkan alamat IP load balancer
Cadangkan alamat IP eksternal statis untuk aturan penerusan load balancer.
Konsol
Di konsol Google Cloud , buka halaman Reserve a static address.
Untuk Name, masukkan nama untuk alamat baru.
Untuk IP version, pilih IPv4.
Untuk Jenis, pilih Regional.
Untuk Region, pilih us-east1.
Biarkan opsi Dilampirkan ke ditetapkan ke Tidak ada. Setelah Anda membuat load balancer, alamat IP ini akan dilampirkan ke aturan penerusan load balancer.
Klik Reserve untuk mereservasi alamat IP.
gcloud
Untuk mereservasi alamat IP eksternal statis menggunakan
gcloud compute, gunakan perintahcompute addresses create.gcloud compute addresses create ADDRESS_NAME \ --region=us-east1 \ --project=SERVICE_PROJECT_IDGanti kode berikut:
ADDRESS_NAME: nama yang ingin Anda tetapkan ke alamat IP ini.REGION: region tempat Anda ingin mencadangkan alamat ini. Region ini harus berupa region yang sama dengan load balancer.SERVICE_PROJECT_ID: ID Google Cloud project yang ditetapkan ke project layanan.
Gunakan perintah
compute addresses describeuntuk melihat hasilnya:gcloud compute addresses describe ADDRESS_NAME
Ganti
ADDRESS_NAMEdengan nama yang telah Anda tetapkan ke alamat IP.Alamat IP yang ditampilkan disebut sebagai
RESERVED_IP_ADDRESSdi bagian berikutnya.
Menyiapkan resource sertifikat SSL
Untuk Load Balancer Aplikasi eksternal regional yang menggunakan HTTPS sebagai protokol permintaan dan respons, Anda dapat membuat resource sertifikat SSL menggunakan sertifikat SSL Compute Engine atau sertifikat Certificate Manager.
Untuk contoh ini, buat resource sertifikat SSL menggunakan Pengelola Sertifikat seperti yang dijelaskan dalam salah satu dokumen berikut:
- Men-deploy sertifikat yang dikelola Google regional dengan otorisasi DNS
- Men-deploy sertifikat yang dikelola Google regional dengan Layanan CA
- Men-deploy sertifikat yang dikelola sendiri secara regional
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 eksternal regional:
- Dua bucket backend. Bucket backend berfungsi sebagai wrapper untuk bucket Cloud Storage yang Anda buat sebelumnya.
- Peta URL
- Proxy target
- Aturan penerusan dengan alamat IP regional. Aturan penerusan memiliki alamat IP eksternal.
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:
Buat dua bucket backend dengan perintah
gcloud compute backend-buckets create. Bucket backend memiliki skema load balancingEXTERNAL_MANAGED.gcloud beta compute backend-buckets create backend-bucket-cats \ --gcs-bucket-name=BUCKET1_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --region=us-east1 \ --project=SERVICE_PROJECT_IDgcloud beta compute backend-buckets create backend-bucket-dogs \ --gcs-bucket-name=BUCKET2_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --region=us-east1 \ --project=SERVICE_PROJECT_IDGanti kode berikut:
BUCKET1_NAMEdanBUCKET2_NAME: nama bucket Cloud StorageSERVICE_PROJECT_ID: ID Google Cloud project yang ditetapkan ke project layanan
Buat peta URL untuk mengarahkan permintaan masuk ke bucket backend dengan perintah
gcloud compute url-maps create.gcloud beta compute url-maps create URL_MAP_NAME \ --default-backend-bucket=backend-bucket-cats \ --region=us-east1 \ --project=SERVICE_PROJECT_IDGanti kode berikut:
URL_MAP_NAME: nama peta URLSERVICE_PROJECT_ID: ID Google Cloud project yang ditetapkan ke project layanan
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 menargetkanhttp://FORWARDING_RULE_IP_ADDRESS/love-to-fetch/two-dogs.jpgmenggunakan backendbackend-bucket-dogs. Misalnya, jika folder/love-to-fetch/juga ada dalam backend default (backend-bucket-cats), load balancer akan memprioritaskan backendbackend-bucket-dogskarena ada aturan jalur khusus untuk/love-to-fetch/*.gcloud beta compute url-maps add-path-matcher URL_MAP_NAME \ --path-matcher-name=path-matcher-pets \ --new-hosts=* \ --backend-bucket-path-rules="/love-to-fetch/*=backend-bucket-dogs" \ --default-backend-bucket=backend-bucket-cats \ --region=us-east1 \ --project=SERVICE_PROJECT_IDGanti kode berikut:
URL_MAP_NAME: nama peta URLSERVICE_PROJECT_ID: ID Google Cloud project yang ditetapkan ke project layanan
Buat proxy target dengan perintah
gcloud compute target-http-proxies create.Untuk traffic HTTP, buat proxy HTTP target untuk mengarahkan permintaan ke peta URL:
gcloud compute target-http-proxies create TARGET_HTTP_PROXY_NAME \ --url-map=URL_MAP_NAME \ --region=us-east1 \ --project=SERVICE_PROJECT_IDGanti kode berikut:
TARGET_HTTP_PROXY_NAME: nama proxy HTTP targetURL_MAP_NAME: nama peta URLSERVICE_PROJECT_ID: ID Google Cloud project yang ditetapkan ke project layanan
Untuk traffic HTTPS, buat proxy HTTPS target 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.
Untuk melampirkan sertifikat Certificate Manager, jalankan perintah berikut:
gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \ --url-map=URL_MAP_NAME \ --certificate-manager-certificates=CERTIFICATE_NAME \ --region=us-east1 \ --project=SERVICE_PROJECT_IDGanti kode berikut:
TARGET_HTTPS_PROXY_NAME: nama proxy HTTPS targetURL_MAP_NAME: nama peta URLCERTIFICATE_NAME: nama sertifikat SSL Certificate ManagerSERVICE_PROJECT_ID: ID project Google Cloud yang ditetapkan ke project layanan
Buat aturan penerusan dengan alamat IP di region
us-east1dengan perintahgcloud compute forwarding-rules create.Untuk traffic HTTP, buat aturan penerusan regional untuk merutekan permintaan masuk ke proxy target HTTP:
gcloud compute forwarding-rules create FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --address=RESERVED_IP_ADDRESS \ --ports=80 \ --region=us-east1 \ --target-http-proxy=TARGET_HTTP_PROXY_NAME \ --target-http-proxy-region=us-east1 \ --project=SERVICE_PROJECT_IDGanti kode berikut:
FORWARDING_RULE_NAME: nama aturan penerusanHOST_PROJECT_ID: ID project Google Cloud yang ditetapkan ke project hostRESERVED_IP_ADDRESS: alamat IP yang dicadangkanTARGET_HTTP_PROXY_NAME: nama proxy HTTP targetSERVICE_PROJECT_ID: ID Google Cloud project yang ditetapkan ke project layanan
Untuk traffic HTTPS, buat aturan penerusan regional untuk merutekan permintaan masuk ke proxy target HTTPS:
gcloud compute forwarding-rules create FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --address=RESERVED_IP_ADDRESS \ --ports=443 \ --region=us-east1 \ --target-https-proxy=TARGET_HTTPS_PROXY_NAME \ --target-https-proxy-region=us-east1 \ --project=SERVICE_PROJECT_IDGanti kode berikut:
FORWARDING_RULE_NAME: nama aturan penerusanHOST_PROJECT_ID: ID Google Cloud project yang ditetapkan ke project hostRESERVED_IP_ADDRESS: alamat IP yang dicadangkanTARGET_HTTPS_PROXY_NAME: nama proxy HTTPS targetSERVICE_PROJECT_ID: ID Google Cloud project yang ditetapkan ke project layanan
Mengirim permintaan HTTP ke load balancer
Setelah layanan load balancing berjalan, Anda dapat mengirimkan traffic ke aturan penerusan load balancer.
Dapatkan alamat IP aturan penerusan load balancer, yang berada di region
us-east1.gcloud compute forwarding-rules describe FORWARDING_RULE_NAME \ --region=us-east1 \ --project=SERVICE_PROJECT_IDGanti kode berikut:
FORWARDING_RULE_NAME: nama aturan penerusanSERVICE_PROJECT_ID: ID Google Cloud project yang ditetapkan ke project layanan
Salin alamat IP yang ditampilkan untuk digunakan sebagai
FORWARDING_RULE_IP_ADDRESSdi langkah berikutnya.Buat permintaan HTTP ke alamat IP virtual (VIP) aturan penerusan menggunakan curl.
curl http://FORWARDING_RULE_IP_ADDRESS/love-to-purr/three-cats.jpg --output three-cats.jpg
curl http://FORWARDING_RULE_IP_ADDRESS/love-to-fetch/two-dogs.jpg --output two-dogs.jpg
Ganti
FORWARDING_RULE_IP_ADDRESSdengan alamat IP aturan penerusan load balancer.
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 eksternal regional 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 mengonfigurasi peran yang diperlukan dan menyiapkan lingkungan VPC Bersama. Untuk mengetahui petunjuknya, lihat bagian berikut di awal halaman ini:
Mengonfigurasi bucket Cloud Storage dan bucket backend di project layanan B
Semua langkah di bagian ini harus dilakukan di project layanan B.
Proses untuk mengonfigurasi bucket Cloud Storage dan bucket backend adalah sebagai berikut:
- Buat bucket Cloud Storage.
- Salin konten ke bucket Cloud Storage.
- Jadikan bucket Cloud Storage dapat diakses secara publik.
- Buat bucket backend dan arahkan ke bucket Cloud Storage.
Membuat bucket Cloud Storage
Konsol
- Di konsol Google Cloud , buka halaman Buckets Cloud Storage.
Klik Create .
Di bagian Mulai, masukkan nama yang unik secara global yang mengikuti pedoman penamaan.
Klik Pilih lokasi untuk menyimpan data Anda.
Tetapkan Location type ke Region.
Dari daftar region, pilih us-east1.
Klik Create.
Klik Buckets untuk kembali ke halaman Cloud Storage Buckets. Gunakan petunjuk ini untuk membuat bucket kedua di region us-east1.
gcloud
Buat bucket pertama di region
us-east1dengan perintahgcloud 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_IDBuat bucket kedua juga di region
us-east1dengan perintahgcloud storage buckets create.gcloud storage buckets create gs://BUCKET2_NAME \ --default-storage-class=standard \ --location=us-east1 \ --uniform-bucket-level-access \ --project=SERVICE_PROJECT_B_ID
Ganti kode berikut:
BUCKET1_NAMEdanBUCKET2_NAME: nama bucket Cloud Storage AndaSERVICE_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.
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 Anda.
Menjadikan bucket Cloud Storage dapat diakses secara publik
Agar semua objek dalam bucket dapat diakses 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:
- Di konsol Google Cloud , buka halaman Buckets Cloud Storage.
Dalam daftar bucket, klik nama bucket yang ingin Anda tampilkan kepada publik.
Pilih tab Izin.
Di bagian Permissions, klik tombol Grant access. Dialog Grant access akan muncul.
Di kolom New principals, masukkan
allUsers.Di kolom Select a role, masukkan
Storage Object Viewerdi kotak filter, lalu pilih Storage Object Viewer dari hasil yang difilter.Klik Simpan.
Klik Allow public access.
gcloud
Untuk memberikan akses kepada semua pengguna agar dapat melihat objek di bucket Anda, jalankan perintah 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 Anda.
Buat bucket backend dan arahkan ke bucket Cloud Storage
Untuk membuat bucket backend, ikuti langkah-langkah berikut:
Buat dua bucket backend dengan perintah
gcloud compute backend-buckets create. Bucket backend memiliki skema load balancingEXTERNAL_MANAGED.gcloud beta compute backend-buckets create backend-bucket-cats \ --gcs-bucket-name=BUCKET1_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --region=us-east1 \ --project=SERVICE_PROJECT_B_IDgcloud beta compute backend-buckets create backend-bucket-dogs \ --gcs-bucket-name=BUCKET2_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --region=us-east1 \ --project=SERVICE_PROJECT_B_IDGanti kode berikut:
BUCKET1_NAMEdanBUCKET2_NAME: nama bucket Cloud StorageSERVICE_PROJECT_ID: ID Google Cloud project yang ditetapkan ke project layanan
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.
- Alamat IP untuk aturan penerusan load balancer. Anda dapat mengikuti langkah-langkah yang diuraikan di bagian sebelumnya untuk membuat alamat IP.
- Peta URL yang mereferensikan bucket backend di project layanan B
- Proxy target
- Aturan penerusan dengan alamat IP regional. Aturan penerusan memiliki alamat IP eksternal.
Untuk membuat peta URL, proxy target, dan aturan penerusan, lakukan hal berikut:
Buat peta URL untuk mengarahkan permintaan masuk ke bucket backend dengan perintah
gcloud beta compute url-maps create.gcloud beta compute url-maps create URL_MAP_NAME \ --default-backend-bucket=backend-bucket-cats \ --region=us-east1 \ --project=SERVICE_PROJECT_A_IDGanti kode berikut:
URL_MAP_NAME: nama peta URLSERVICE_PROJECT_A_ID: ID project Google Cloud yang ditetapkan ke project layanan A
Konfigurasi aturan host dan jalur peta URL dengan perintah
gcloud beta 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 menargetkanhttp://FORWARDING_RULE_IP_ADDRESS/love-to-fetch/two-dogs.jpgmenggunakan backendbackend-bucket-dogs. Misalnya, jika folder/love-to-fetch/juga ada dalam backend default (backend-bucket-cats), load balancer akan memprioritaskan backendbackend-bucket-dogskarena ada aturan jalur khusus untuk/love-to-fetch/*.gcloud beta compute url-maps add-path-matcher URL_MAP_NAME \ --path-matcher-name=path-matcher-pets \ --new-hosts=* \ --backend-bucket-path-rules="/love-to-fetch/*=projects/SERVICE_PROJECT_B_ID/regional/backendBuckets/backend-bucket-dogs" \ --default-backend-bucket=projects/SERVICE_PROJECT_B_ID/regional/backendBuckets/backend-bucket-cats \ --region=us-east1 \ --project=SERVICE_PROJECT_A_IDGanti kode berikut:
URL_MAP_NAME: nama peta URLSERVICE_PROJECT_A_ID: ID project Google Cloud yang ditetapkan ke project layanan A
Buat proxy target dengan perintah
gcloud compute target-http-proxies create.Untuk traffic HTTP, buat proxy HTTP target untuk mengarahkan permintaan ke peta URL:
gcloud compute target-http-proxies create TARGET_HTTP_PROXY_NAME \ --url-map=URL_MAP_NAME \ --region=us-east1 \ --project=SERVICE_PROJECT_A_IDGanti kode berikut:
TARGET_HTTP_PROXY_NAME: nama proxy HTTP targetURL_MAP_NAME: nama peta URLSERVICE_PROJECT_A_ID: ID project Google Cloud yang ditetapkan ke project layanan A
Untuk traffic HTTPS, buat proxy HTTPS target 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.
Untuk melampirkan sertifikat Certificate Manager, jalankan perintah berikut:
gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \ --url-map=lb-map \ --certificate-manager-certificates=CERTIFICATE_NAME \ --region=us-east1 \ --project=SERVICE_PROJECT_A_IDGanti kode berikut:
TARGET_HTTPS_PROXY_NAME: nama proxy HTTPS targetURL_MAP_NAME: nama peta URLCERTIFICATE_NAME: nama sertifikat SSL Certificate ManagerSERVICE_PROJECT_A_ID: ID project Google Cloud yang ditetapkan ke project layanan A
Buat aturan penerusan dengan alamat IP di region
asia-east1dengan perintahgcloud compute forwarding-rules create.Untuk traffic HTTP, buat aturan penerusan regional untuk merutekan permintaan masuk ke proxy target HTTP:
gcloud compute forwarding-rules create FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --address=RESERVED_IP_ADDRESS \ --ports=80 \ --region=us-east1 \ --target-http-proxy=TARGET_HTTP_PROXY_NAME \ --target-http-proxy-region=us-east1 \ --project=SERVICE_PROJECT_A_IDGanti kode berikut:
FORWARDING_RULE_NAME: nama aturan penerusanHOST_PROJECT_ID: ID Google Cloud project yang ditetapkan ke project hostRESERVED_IP_ADDRESS: alamat IP yang dicadangkanTARGET_HTTP_PROXY_NAME: nama proxy HTTP targetSERVICE_PROJECT_A_ID: ID project Google Cloud yang ditetapkan ke project layanan A
Untuk traffic HTTPS, buat aturan penerusan regional untuk merutekan permintaan masuk ke proxy target HTTPS:
gcloud compute forwarding-rules create FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --address=RESERVED_IP_ADDRESS \ --ports=443 \ --region=us-east1 \ --target-https-proxy=TARGET_HTTPS_PROXY_NAME \ --target-https-proxy-region=us-east1 \ --project=SERVICE_PROJECT_A_IDGanti kode berikut:
FORWARDING_RULE_NAME: nama aturan penerusanHOST_PROJECT_ID: ID Google Cloud project yang ditetapkan ke project hostRESERVED_IP_ADDRESS: alamat IP yang dicadangkanTARGET_HTTPS_PROXY_NAME: nama proxy HTTPS targetSERVICE_PROJECT_A_ID: ID project Google Cloud yang ditetapkan ke project layanan A
Memberikan izin kepada Admin Load Balancer Compute untuk menggunakan bucket backend di project layanan
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.regionBackendBuckets.setIamPolicy dan
resourcemanager.projects.setIamPolicy untuk menyelesaikan langkah ini.
Di konsol Google Cloud , buka halaman IAM.
Pilih project Anda.
Klik Grant access.
Di kolom New principals, masukkan alamat email atau ID lain akun utama.
Di bagian Tetapkan peran, klik Tambahkan peran.
Dalam dialog Select roles, di kolom Search for roles, masukkan
Compute Load Balancer Services User.Pilih kotak centang Compute Load Balancer Services User.
Klik Terapkan.
Opsional: Tambahkan kondisi ke peran.
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.regionBackendBuckets.setIamPolicy untuk
menyelesaikan langkah ini.
Di konsol Google Cloud , buka halaman Backends.
Dari daftar backend, pilih bucket backend yang ingin Anda beri akses, lalu klik Izin.
Klik Add principal.
Di kolom New principals, masukkan alamat email atau ID lain akun utama.
Dalam daftar Pilih peran, pilih Compute Load Balancer Services User.
Klik Simpan.
gcloud
Izin tingkat project
Gunakan langkah-langkah berikut untuk memberikan izin ke semua bucket backend di project Anda.
Anda memerlukan izin compute.regionBackendBuckets.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 BLOAD_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):
- Perintah
gcloud projects add-iam-policy-binding - Perintah
gcloud compute backend-buckets add-iam-policy-binding
Gunakan perintah gcloud projects add-iam-policy-binding untuk memberikan peran Compute Load Balancer Services User.
Anda memerlukan izin compute.regionBackendBuckets.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/regions/REGION/backendBuckets/BACKEND_BUCKET_NAME",title=Shared VPC condition'
SERVICE_PROJECT_B_ID: ID project yang ditetapkan ke project layanan B Google CloudLOAD_BALANCER_ADMIN: principal yang akan ditambahkan binding-nyaREGION: region Google Cloud tempat bucket backend beradaBACKEND_BUCKET_NAME: nama bucket backend
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 \
--region=REGION
Mengirim permintaan HTTP ke load balancer
Setelah layanan load balancing berjalan, Anda dapat mengirimkan traffic ke aturan penerusan load balancer.
Dapatkan alamat IP aturan penerusan load balancer, yang berada di region
us-east1.gcloud compute forwarding-rules describe FORWARDING_RULE_NAME \ --region=us-east1 \ --project=SERVICE_PROJECT_A_IDGanti kode berikut:
FORWARDING_RULE_NAME: nama aturan penerusanSERVICE_PROJECT_ID: ID Google Cloud project yang ditetapkan ke project layanan
Salin alamat IP yang ditampilkan untuk digunakan sebagai
FORWARDING_RULE_IP_ADDRESSdi langkah berikutnya.Buat permintaan HTTP ke VIP aturan penerusan menggunakan curl.
curl http://FORWARDING_RULE_IP_ADDRESS/love-to-purr/three-cats.jpg --output three-cats.jpg
curl http://FORWARDING_RULE_IP_ADDRESS/love-to-fetch/two-dogs.jpg --output two-dogs.jpg
Ganti
FORWARDING_RULE_IP_ADDRESSdengan alamat IP aturan penerusan load balancer.
Langkah berikutnya
- Ringkasan Load Balancer Aplikasi Eksternal
- Subnet khusus proxy untuk load balancer berbasis Envoy
- Mengelola sertifikat
- Membersihkan penyiapan load balancing