Dokumen ini menunjukkan cara membuat regional internal Application Load Balancer untuk merutekan permintaan konten statis ke bucket Cloud Storage.
Sebelum memulai
Pastikan penyiapan Anda memenuhi prasyarat berikut.
Menginstal Google Cloud CLI
Beberapa petunjuk dalam panduan ini hanya dapat dilakukan menggunakan gcloud CLI. Untuk menginstalnya, lihat bagian Menginstal Google Cloud CLI.
Anda dapat menemukan perintah terkait load balancing dalam dokumen referensi API dan gcloud CLI.
Peran yang diperlukan
Jika Anda adalah project creator, Anda diberi
peran Pemilik
(roles/owner). Secara default, peran Pemilik (roles/owner) atau
peran Editor (roles/editor) mencakup izin yang diperlukan untuk mengikuti dokumen ini.
Jika Anda bukan project creator, izin yang diperlukan harus diberikan pada project kepada akun utama yang sesuai. Misalnya, akun utama dapat berupa Akun Google (untuk pengguna akhir) atau akun layanan.
Untuk mendapatkan izin yang diperlukan untuk membuat bucket Cloud Storage dan resource jaringan, minta administrator Anda untuk memberi Anda peran IAM berikut di project Anda:
-
Membuat jaringan, subnet, dan komponen load balancer:
Compute Network Admin (
roles/compute.networkAdmin) -
Menambahkan dan menghapus aturan firewall:
Compute Security Admin (
roles/compute.securityAdmin) -
Membuat bucket Cloud Storage:
Storage Object Admin (
roles/storage.objectAdmin)
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.
Untuk mengetahui informasi selengkapnya tentang peran dan izin untuk Cloud Load Balancing, lihat Peran dan izin. Untuk mengetahui informasi selengkapnya tentang cara menentukan kebijakan IAM dengan pemberian bersyarat, lihat Kondisi IAM untuk aturan penerusan.
Menyiapkan resource sertifikat SSL
Untuk regional internal Application Load Balancer yang menggunakan HTTPS sebagai protokol permintaan dan respons, buat resource sertifikat SSL menggunakan Pengelola Sertifikat seperti yang dijelaskan dalam salah satu dokumen berikut:
- Men-deploy sertifikat regional yang dikelola Google yang dikeluarkan oleh instance Layanan CA Anda
- Men-deploy sertifikat yang dikelola Google regional dengan otorisasi DNS
- Men-deploy sertifikat regional yang dikelola sendiri
Sebaiknya gunakan sertifikat yang dikelola Google.
Batasan
Batasan berikut berlaku untuk bucket Cloud Storage saat berfungsi sebagai backend untuk regional internal Application Load Balancer:
Akses bucket pribadi tidak didukung, sehingga bucket backend harus dapat diakses secara publik melalui internet.
URL bertanda tangan tidak didukung.
Integrasi Cloud CDN tidak tersedia saat membuat bucket backend untukregional internal Application Load Balancer.
Saat menggunakan regional internal Application Load Balancer untuk mengakses bucket backend, hanya metode HTTP
GETyang didukung. Anda dapat mendownload konten dari bucket, tetapi mengupload konten ke bucket melalui regional internal Application Load Balancer tidak tersedia.Untuk regional internal Application Load Balancer, bucket Cloud Storage hanya didukung di region tempat load balancer dikonfigurasi. Bucket dual-region atau multi-region tidak didukung.
Ringkasan penyiapan
Anda dapat mengonfigurasi regional internal Application Load Balancer di suatu region seperti yang ditunjukkan dalam diagram arsitektur berikut:
Seperti yang ditunjukkan dalam diagram arsitektur, contoh ini membuat
regional internal Application Load Balancer di jaringan
Virtual Private Cloud (VPC) dengan dua bucket backend, di mana setiap bucket backend
mereferensikan bucket Cloud Storage. Bucket Cloud Storage berada di region us-east1 dan Anda dapat menyeimbangkan beban traffic di antara setiap bucket.
Mengonfigurasi jaringan dan subnet
Dalam jaringan VPC, konfigurasikan subnet di region,
us-east1 tempat aturan penerusan load balancer Anda akan dikonfigurasi.
Selain itu, konfigurasi subnet khusus proxy di region, us-east1 tempat Anda ingin mengonfigurasi load balancer.
Contoh ini 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-usdi regionus-east1menggunakan10.1.2.0/24untuk rentang IP utamanya.Subnet untuk proxy Envoy. Subnet bernama
proxy-only-subnet-usdi regionus-east1yang menggunakan10.129.0.0/23untuk rentang IP utamanya.
Mengonfigurasi subnet untuk aturan penerusan load balancer
Buat subnet di region yang sama dengan tempat aturan penerusan load balancer Anda akan dikonfigurasi.
Konsol
Di konsol Google Cloud , buka halaman VPC networks.
Klik Create VPC network.
Untuk Name, masukkan
lb-network.Di bagian Subnets, setel Subnet creation mode ke Custom.
Di bagian New subnet, masukkan informasi berikut:
- Nama:
subnet-us - Pilih Wilayah:
us-east1 - Rentang alamat IP:
10.1.2.0/24 - Klik Selesai.
- Nama:
Klik Create.
gcloud
Buat jaringan VPC kustom, bernama
lb-network, dengan perintahgcloud compute networks create.gcloud compute networks create lb-network --subnet-mode=custom
Buat subnet di jaringan VPC
lb-networkdi regionus-east1dengan perintahgcloud compute networks subnets create.gcloud compute networks subnets create subnet-us \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-east1
Mengonfigurasi subnet khusus proxy
Subnet khusus proxy menyediakan serangkaian alamat IP yang digunakan Google Cloud untuk menjalankan proxy Envoy atas nama Anda. Proxy mengakhiri koneksi dari klien dan membuat koneksi 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 subnet khusus proxy di region us-east1.
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:
- Untuk Name, masukkan
proxy-only-subnet-us. - Untuk Region, masukkan
us-east1. - Untuk Tujuan, pilih Regional Managed Proxy.
- Untuk Rentang alamat IP, masukkan
10.129.0.0/23.
- Untuk Name, masukkan
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
Mengonfigurasi aturan firewall
Contoh ini menggunakan aturan firewall masuk, fw-allow-ssh yang mengizinkan akses SSH di port 22 ke VM klien.
Konsol
Di konsol Google Cloud , buka halaman Firewall policies.
Klik Create firewall rule untuk membuat aturan yang mengizinkan koneksi SSH yang masuk di VM klien:
Di halaman Create a firewall rule, masukkan informasi berikut:
- 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
22untuk nomor port.
- Nama:
Klik Buat.
gcloud
Buat aturan firewall
fw-allow-sshuntuk mengizinkan konektivitas SSH ke VM dengan tag jaringanallow-ssh. Jika Anda menghapus--source-ranges,Google Cloud akan menafsirkan aturan sebagai sumber apa pun.gcloud compute firewall-rules create fw-allow-ssh \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22
Mengonfigurasi bucket Cloud Storage
Proses untuk mengonfigurasi bucket Cloud Storage Anda adalah sebagai berikut:
- Buat bucket.
- Salin konten ke bucket.
- Jadikan bucket dapat dibaca oleh 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 Buat.
Klik Buckets untuk kembali ke halaman Cloud Storage Buckets. Gunakan petunjuk sebelumnya untuk membuat bucket kedua, di region yang sama, us-east1.
gcloud
Buat bucket 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-accessgcloud storage buckets create gs://BUCKET2_NAME \ --default-storage-class=standard \ --location=us-east1 \ --uniform-bucket-level-accessGanti
BUCKET1_NAMEdanBUCKET2_NAMEdengan nama bucket Cloud Storage Anda.
Menyalin file grafik ke bucket Cloud Storage Anda
Agar Anda dapat menguji penyiapan, salin file grafis 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/
Menjadikan bucket Cloud Storage Anda dapat dibaca oleh 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:
- Di konsol Google Cloud , buka halaman Buckets Cloud Storage.
Dalam daftar bucket, centang kotak untuk setiap bucket yang ingin Anda tampilkan kepada publik.
Klik tombol Izin. Dialog Permissions akan muncul.
Di dialog Izin, klik tombol Tambahkan akun utama. 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.objectViewergcloud storage buckets add-iam-policy-binding gs://BUCKET2_NAME \
--member=allUsers \
--role=roles/storage.objectViewerMencadangkan alamat IP internal statis
Cadangkan alamat IPv4 internal statis untuk aturan penerusan load balancer. Untuk mengetahui informasi selengkapnya, lihat Mencadangkan alamat IP internal statis.
Konsol
Di konsol Google Cloud , buka halaman Reserve internal static IP address.
Di kolom Name, masukkan nama untuk alamat baru.
Dalam daftar IP version, pilih IPv4.
Dalam daftar Network, pilih lb-network.
Dalam daftar Subnetwork, pilih subnet-us.
Untuk Region, pilih us-east1.
Dalam daftar Static IP address, pilih Assign automatically. Setelah Anda membuat load balancer, alamat IP ini dilampirkan ke aturan penerusan load balancer.
Klik Reserve untuk mereservasi alamat IP.
gcloud
Untuk mencadangkan alamat IP eksternal statis, gunakan perintah
gcloud compute addresses create.gcloud compute addresses create ADDRESS_NAME \ --region=us-east1 \ --subnet=subnet-usGanti
ADDRESS_NAMEdengan nama untuk alamat baru.Untuk melihat informasi tentang alamat, gunakan perintah
gcloud compute addresses describe.gcloud compute addresses describe ADDRESS_NAME
Salin alamat IP yang ditampilkan untuk digunakan sebagai
RESERVED_IP_ADDRESSdi bagian berikut.
Mengonfigurasi load balancer dengan bucket backend
Bagian ini menunjukkan cara membuat resource berikut untuk regional internal Application Load Balancer:
- 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 diberi alamat IP dari subnet yang dibuat untuk aturan penerusan load balancer. Jika Anda mencoba menetapkan alamat IP ke aturan penerusan dari subnet khusus proxy, pembuatan aturan penerusan akan gagal.
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 sebelumnya menggunakan gcloud CLI, ikuti langkah-langkah berikut:
Buat dua bucket backend di region
us-east1dengan perintahgcloud beta compute backend-buckets create. Bucket backend memiliki skema load balancingINTERNAL_MANAGED.gcloud beta compute backend-buckets create backend-bucket-cats \ --gcs-bucket-name=BUCKET1_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --region=us-east1gcloud beta compute backend-buckets create backend-bucket-dogs \ --gcs-bucket-name=BUCKET2_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --region=us-east1Buat peta URL untuk mengarahkan permintaan masuk ke bucket backend dengan perintah
gcloud beta compute url-maps create.gcloud beta compute url-maps create lb-map \ --default-backend-bucket=backend-bucket-cats \ --region=us-east1Konfigurasi 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 Anda (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 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 \ --region=us-east1Buat 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 http-proxy \ --url-map=lb-map \ --region=us-east1Untuk 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.
gcloud compute target-https-proxies create https-proxy \ --url-map=lb-map \ --certificate-manager-certificates=CERTIFICATE_NAME \ --region=us-east1Ganti
CERTIFICATE_NAMEdengan nama sertifikat SSL yang Anda buat menggunakan Pengelola Sertifikat.Buat aturan penerusan dengan alamat IP di region
us-east1dengan perintahgcloud compute forwarding-rules create.Mencadangkan alamat IP bersifat opsional untuk aturan penerusan HTTP; namun, Anda perlu mencadangkan alamat IP untuk aturan penerusan HTTPS.
Dalam contoh ini, alamat IP ephemeral dikaitkan dengan aturan penerusan HTTP load balancer Anda. Alamat IP sementara akan tetap konstan selama ada aturan penerusan. Jika Anda perlu menghapus aturan penerusan dan membuatnya ulang, aturan penerusan tersebut dapat menerima alamat IP baru.
Untuk traffic HTTP, buat aturan penerusan untuk merutekan permintaan masuk ke proxy target HTTP:
gcloud compute forwarding-rules create http-fw-rule-1 \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=lb-network \ --subnet=subnet-us \ --subnet-region=us-east1 \ --ports=80 \ --target-http-proxy=http-proxy \ --target-http-proxy-region=us-east1 \ --region=us-east1Untuk traffic HTTPS, buat aturan penerusan global untuk merutekan permintaan masuk ke proxy target HTTPS:
gcloud compute forwarding-rules create https-fw-rule-1 \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=lb-network \ --subnet=subnet-us \ --subnet-region=us-east1 \ --address=RESERVED_IP_ADDRESS \ --ports=443 \ --target-https-proxy=https-proxy \ --target-http-proxy-region=us-east1 \ --region=us-east1Ganti
RESERVED_IP_ADDRESSdengan nama alamat yang Anda salin di bagian Mencadangkan alamat IP internal statis.
Mengirim permintaan HTTP ke load balancer
Kirim permintaan dari VM klien internal ke aturan penerusan load balancer.
Dapatkan alamat IP aturan penerusan load balancer
Dapatkan alamat IP aturan penerusan load balancer (http-fw-rule-1)
di region us-east1 untuk membuat permintaan HTTP ke alamat IP virtual (VIP)
di region menggunakan curl.
gcloud compute forwarding-rules describe http-fw-rule-1 \
--region=us-east1
Salin alamat IP yang ditampilkan untuk digunakan sebagai
FORWARDING_RULE_IP_ADDRESS di langkah berikutnya.
Buat VM klien untuk menguji konektivitas
Buat VM klien dan kirim permintaan HTTP ke VIP di jaringan VPC. VM klien dapat berada di zona mana pun di region yang sama dengan load balancer, dan dapat menggunakan subnet mana pun di jaringan VPC yang sama. Dalam contoh ini, Anda membuat VM klien di subnet yang sama dengan aturan penerusan load balancer.
Buat VM klien di region
us-east1.gcloud compute instances create client-a \ --image-family=debian-12 \ --image-project=debian-cloud \ --network=lb-network \ --subnet=subnet-us \ --zone=us-east1-c \ --tags=allow-sshBuat koneksi SSH ke VM klien.
gcloud compute ssh client-a --zone=us-east1-c
Dalam contoh ini, regional internal Application Load Balancer memiliki VIP frontend di region
us-east1dalam jaringan VPC. Buat permintaan HTTP ke VIP di region tersebut 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 yang Anda salin di bagian Mendapatkan alamat IP aturan penerusan load balancer.
Langkah berikutnya
- Ringkasan Load Balancer Aplikasi Internal
- Subnet khusus proxy untuk load balancer berbasis Envoy
- Mengelola sertifikat
- Membersihkan penyiapan load balancing