Dokumen ini menunjukkan cara membuat Load Balancer Aplikasi eksternal regional 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 Google Cloud CLI. Untuk menginstalnya, lihat Menginstal gcloud 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 Anda perlukan guna membuat bucket Cloud Storage dan resource jaringan, minta administrator Anda untuk memberi Anda peran IAM berikut di project Anda:
-
Buat jaringan VPC dan komponen load balancing:
Peran Compute Network Admin (
roles/compute.networkAdmin) -
Buat bucket Cloud Storage:
Peran 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 akses bersyarat untuk aturan penerusan, lihat Kondisi IAM untuk aturan penerusan.
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 Pengelola Sertifikat.
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 Certificate Authority Service
- 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.
Batasan
Batasan berikut berlaku untuk bucket Cloud Storage saat berfungsi sebagai backend untuk Load Balancer Aplikasi eksternal regional:
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 untuk Load Balancer Aplikasi eksternal regional.
Saat menggunakan Load Balancer Aplikasi eksternal regional untuk mengakses bucket backend, hanya metode
GETHTTP yang didukung. Anda dapat mendownload konten dari bucket, tetapi mengupload konten ke bucket melalui Load Balancer Aplikasi eksternal regional tidak tersedia.Untuk Load Balancer Aplikasi eksternal regional, bucket Cloud Storage hanya didukung di region tempat load balancer dikonfigurasi. Bucket dual-region atau multi-region tidak didukung.
Ringkasan penyiapan
Diagram berikut menunjukkan Load Balancer Aplikasi eksternal regional dengan bucket backend yang berada di region yang sama dengan load balancer.
Aturan penerusan Load Balancer Aplikasi eksternal regional memiliki alamat IP eksternal.
Di bagian berikutnya, Anda akan mengonfigurasi berbagai resource seperti yang ditunjukkan dalam diagram sebelumnya.
Mengonfigurasi jaringan dan subnet khusus proxy
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 Buat.
gcloud
Buat jaringan VPC kustom, bernama
lb-network, dengan perintahgcloud compute networks create.gcloud compute networks create lb-network --subnet-mode=custom
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: Proxy Terkelola Regional
- 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
Mengonfigurasi bucket Cloud Storage
Proses untuk mengonfigurasi bucket Cloud Storage Anda adalah sebagai berikut:
- Buat bucket.
- Salin konten ke bucket.
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 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-accessBuat 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
Ganti variabel BUCKET1_NAME
dan BUCKET2_NAME
dengan 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.
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/
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, 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
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.
Pilih 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 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
Ganti kode berikut:
ADDRESS_NAME: nama yang ingin Anda beri untuk alamat ini.
Gunakan perintah
gcloud compute addresses describeuntuk melihat hasilnya:gcloud compute addresses describe ADDRESS_NAME
Alamat IP yang ditampilkan disebut sebagai
RESERVED_IP_ADDRESS di bagian berikut.
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 di region
us-east1dengan perintahgcloud beta 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-east1gcloud beta compute backend-buckets create backend-bucket-dogs \ --gcs-bucket-name=BUCKET2_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --region=us-east1Ganti variabel
BUCKET1_NAMEdanBUCKET2_NAMEdengan nama bucket Cloud Storage Anda.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-east1Ganti variabel
URL_MAP_NAMEdengan nama peta URL.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 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 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-catsGanti variabel
URL_MAP_NAMEdengan nama peta URL.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 http-proxy \ --url-map=URL_MAP_NAME \ --region=us-east1Ganti variabel
URL_MAP_NAMEdengan nama peta URL.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 https-proxy \ --url-map=URL_MAP_NAME \ --certificate-manager-certificates=CERTIFICATE_NAME \ --region=us-east1Ganti kode berikut:
URL_MAP_NAME: nama peta URLCERTIFICATE_NAME: nama sertifikat SSL yang Anda buat menggunakan Certificate Manager.
Buat aturan penerusan dengan alamat IP di region
us-east1menggunakan 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 http-fw-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network=lb-network \ --address=RESERVED_IP_ADDRESS \ --ports=80 \ --region=us-east1 \ --target-http-proxy=http-proxy \ --target-http-proxy-region=us-east1Untuk traffic HTTPS, buat aturan penerusan regional untuk merutekan permintaan masuk ke proxy target HTTPS:
gcloud compute forwarding-rules create https-fw-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network=lb-network \ --address=RESERVED_IP_ADDRESS \ --ports=443 \ --region=us-east1 \ --target-https-proxy=https-proxy \ --target-https-proxy-region=us-east1
Mengirim permintaan HTTP ke load balancer
Setelah layanan load balancing berjalan, Anda dapat mengirim permintaan ke aturan penerusan load balancer.
Dapatkan alamat IP aturan penerusan load balancer (
http-fw-rule), yang berada di regionus-east1.gcloud compute forwarding-rules describe http-fw-rule \ --region=us-east1Salin 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
Langkah berikutnya
- Ringkasan Load Balancer Aplikasi Eksternal
- Subnet khusus proxy untuk load balancer berbasis Envoy
- Mengelola sertifikat
- Membersihkan penyiapan load balancing