Dokumen ini memberikan petunjuk untuk mengonfigurasi Load Balancer Aplikasi eksternal regional untuk layanan Anda yang berjalan di VM Compute Engine.
Karena Load Balancer Aplikasi eksternal regional memungkinkan Anda membuat load balancer di region tertentu, load balancer ini sering digunakan untuk beban kerja yang memiliki persyaratan kepatuhan hukum. Beban kerja yang memerlukan akses ke ekspor Paket Jaringan Standar adalah kasus penggunaan umum lainnya untuk Load Balancer Aplikasi eksternal regional, karena Load Balancer Aplikasi eksternal regional mendukung Paket Layanan Jaringan Premium dan Standar.
Sebelum mengikuti panduan ini, pahami hal-hal berikut:
Izin
Untuk mengikuti panduan ini, Anda harus dapat membuat instance dan mengubah jaringan dalam project. Anda harus menjadi pemilik atau editor project, atau Anda harus memiliki semua peran IAM Compute Engine berikut.
Tugas | Peran yang diperlukan |
---|---|
Membuat komponen jaringan, subnet, dan load balancer | Admin Jaringan |
Menambahkan dan menghapus aturan firewall | Security Admin |
Membuat instance | Instance Admin |
Untuk informasi selengkapnya, lihat panduan berikut:
Ringkasan penyiapan
Anda dapat mengonfigurasi Load Balancer Aplikasi eksternal regional seperti yang dijelaskan dalam alur konfigurasi tingkat tinggi berikut. Langkah-langkah yang diberi nomor mengacu pada angka dalam diagram.
Seperti yang ditunjukkan dalam diagram, contoh ini membuat Application Load Balancer eksternal regional di jaringan VPC di region us-west1
, dengan satu layanan backend dan dua grup instance backend.
Diagram menunjukkan hal berikut:
Jaringan VPC dengan dua subnet:
Satu subnet digunakan untuk backend (grup instance). Rentang alamat IP utamanya adalah
10.1.2.0/24
.Satu subnet adalah subnet khusus proxy di region
us-west1
. Anda harus membuat satu subnet khusus proxy di setiap region jaringan VPC tempat Anda menggunakan Load Balancer Aplikasi eksternal regional. Subnet khusus proxy di region dibagikan di antara semua load balancer regional di region tersebut. Alamat sumber paket yang dikirim dari load balancer ke backend layanan Anda dialokasikan dari subnet khusus proxy. Dalam contoh ini, subnet khusus proxy untuk region tersebut memiliki rentang alamat IP utama10.129.0.0/23
, yang merupakan ukuran subnet yang direkomendasikan. Untuk informasi selengkapnya, lihat Subnet khusus proxy.
Aturan firewall yang mengizinkan alur traffic subnet khusus proxy di jaringan Anda. Artinya, tambahkan satu aturan yang mengizinkan traffic port TCP
80
,443
, dan8080
dari10.129.0.0/23
(rentang subnet khusus proxy dalam contoh ini). Aturan firewall lain untuk pemeriksaan health check.Instance backend.
Grup instance:
- Grup instance terkelola atau tidak terkelola untuk deployment VM Compute Engine
- NEG untuk deployment GKE
Di setiap zona, Anda dapat memiliki kombinasi jenis grup backend berdasarkan persyaratan deployment Anda.
Health check regional yang melaporkan kesiapan backend Anda.
Layanan backend regional yang memantau penggunaan dan kondisi backend.
Peta URL regional yang mengurai URL permintaan dan meneruskan permintaan ke layanan backend tertentu berdasarkan host dan jalur URL permintaan.
Proxy HTTP atau HTTPS target regional, yang menerima permintaan dari pengguna dan meneruskannya ke peta URL. Untuk HTTPS, konfigurasikan resource sertifikat SSL regional. Proxy target dapat menggunakan sertifikat SSL atau sertifikat Pengelola Sertifikat untuk mendekripsi traffic SSL jika Anda mengonfigurasi load balancing HTTPS. Proxy target dapat meneruskan traffic ke instance Anda menggunakan HTTP atau HTTPS.
Aturan penerusan, yang memiliki alamat IP eksternal load balancer Anda untuk meneruskan setiap permintaan masuk ke proxy target.
Alamat IP eksternal yang terkait dengan aturan penerusan dicadangkan menggunakan perintah
gcloud compute addresses create
, seperti yang dijelaskan dalam Mencadangkan alamat IP load balancer.
Mengonfigurasi jaringan dan subnet
Anda memerlukan jaringan VPC dengan dua subnet: satu untuk backend load balancer dan satu lagi untuk proxy load balancer. Load Balancer Aplikasi eksternal regional bersifat regional. Traffic dalam jaringan VPC dirutekan ke load balancer jika sumber traffic berada di subnet di region yang sama dengan load balancer.
Contoh ini menggunakan jaringan, region, dan subnet VPC berikut:
Jaringan. Jaringan ini adalah jaringan VPC mode kustom bernama
lb-network
.Subnet untuk backend. Subnet bernama
backend-subnet
di wilayahus-west1
menggunakan10.1.2.0/24
untuk rentang IP utamanya.Subnet untuk proxy. Subnet bernama
proxy-only-subnet
di wilayahus-west1
menggunakan10.129.0.0/23
untuk rentang IP utamanya.
Mengonfigurasi jaringan dan subnet untuk backend
Konsol
Di Konsol Google Cloud, buka halaman jaringan VPC.
Klik Create VPC network.
Untuk Name, masukkan
lb-network
.Di bagian Subnet:
- Tetapkan Subnet creation mode ke Custom.
- Di bagian New subnet, masukkan informasi berikut:
- Nama:
backend-subnet
- Region:
us-west1
- Rentang alamat IP:
10.1.2.0/24
- Nama:
- Klik Done.
Klik Create.
gcloud
Buat jaringan VPC kustom dengan perintah
gcloud compute networks create
:gcloud compute networks create lb-network --subnet-mode=custom
Buat subnet di jaringan
lb-network
di regionus-west1
dengan perintahgcloud compute networks subnets create
:gcloud compute networks subnets create backend-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-west1
Terraform
Untuk membuat jaringan VPC, gunakan resource google_compute_network
.
Untuk membuat subnet VPC di jaringan lb-network
, gunakan resource google_compute_subnetwork
.
API
Buat permintaan
POST
ke metodenetworks.insert
, dengan mengganti PROJECT_ID dengan project ID Anda.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks { "routingConfig": { "routingMode": "REGIONAL" }, "name": "lb-network", "autoCreateSubnetworks": false }
Buat permintaan
POST
ke metodesubnetworks.insert
, dengan mengganti PROJECT_ID dengan project ID Anda.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks { "name": "backend-subnet", "network": "projects/PROJECT_ID/global/networks/lb-network", "ipCidrRange": "10.1.2.0/24", "region": "projects/PROJECT_ID/regions/us-west1", }
Mengonfigurasi subnet khusus proxy
Subnet khusus proxy menyediakan kumpulan alamat IP yang digunakan Google 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 pada jaringan VPC lb-network
. Hanya boleh ada satu subnet khusus proxy yang aktif per region, per jaringan.
Konsol
Jika menggunakan konsol Google Cloud, Anda juga dapat menunggu dan membuat subnet khusus proxy nanti di halaman Load balancing.
Jika Anda ingin membuat subnet khusus proxy sekarang, gunakan langkah-langkah berikut:
Di konsol Google Cloud, buka halaman jaringan VPC.
Klik nama jaringan VPC:
lb-network
.Klik Tambahkan subnet.
Untuk Name, masukkan
proxy-only-subnet
.Untuk Region, pilih
us-west1
.Tetapkan Tujuan ke Proxy yang Dikelola Berdasarkan Wilayah.
Untuk Rentang alamat IP, masukkan
10.129.0.0/23
.Klik Tambahkan.
gcloud
Buat subnet khusus proxy dengan perintah gcloud compute networks subnets
create
.
gcloud compute networks subnets create proxy-only-subnet \ --purpose=REGIONAL_MANAGED_PROXY \ --role=ACTIVE \ --region=us-west1 \ --network=lb-network \ --range=10.129.0.0/23
Terraform
Untuk membuat subnet khusus proxy VPC di jaringan lb-network
, gunakan resource google_compute_subnetwork
.
API
Buat subnet khusus proxy dengan metode subnetworks.insert
, dengan mengganti PROJECT_ID dengan project ID Anda.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks { "name": "proxy-only-subnet", "ipCidrRange": "10.129.0.0/23", "network": "projects/PROJECT_ID/global/networks/lb-network", "region": "projects/PROJECT_ID/regions/us-west1", "purpose": "REGIONAL_MANAGED_PROXY", "role": "ACTIVE" }
Mengonfigurasi aturan firewall
Contoh ini menggunakan aturan firewall berikut:
fw-allow-health-check
. Aturan ingress, yang berlaku untuk instance yang di-load balance, yang mengizinkan semua traffic TCP dari sistem health check Google Cloud (dalam130.211.0.0/22
dan35.191.0.0/16
). Contoh ini menggunakan tag targetload-balanced-backend
untuk mengidentifikasi VM yang menerapkan aturan firewall.fw-allow-proxies
. Aturan ingress, yang berlaku untuk instance yang di-load balance, yang mengizinkan traffic TCP pada port80
,443
, dan8080
dari proxy terkelola Load Balancer Aplikasi eksternal regional. Contoh ini menggunakan tag targetload-balanced-backend
untuk mengidentifikasi VM yang menerapkan aturan firewall.
Tanpa aturan firewall ini, aturan tolak ingress default akan memblokir traffic masuk ke instance backend.
Tag target menentukan instance backend. Tanpa tag target, aturan firewall akan berlaku untuk semua instance backend Anda di jaringan VPC. Saat membuat VM backend, pastikan untuk menyertakan tag target yang ditentukan, seperti yang ditunjukkan dalam Membuat grup instance terkelola.
Konsol
Pada konsol Google Cloud, buka halaman Kebijakan Firewall.
Klik Create firewall rule untuk membuat aturan yang mengizinkan health check Google Cloud:
- Nama:
fw-allow-health-check
- Jaringan:
lb-network
- Direction of traffic: Ingress
- Action on match: Allow
- Targets: Tag target yang ditentukan
- Tag target:
load-balanced-backend
- Filter sumber: Rentang IPv4
- Rentang IPv4 sumber:
130.211.0.0/22
dan35.191.0.0/16
- Protokol dan port:
- Pilih Protokol dan port yang ditentukan.
- Pilih kotak centang TCP, lalu masukkan
80
untuk nomor port.
Sebagai praktik terbaik, batasi aturan ini hanya pada protokol dan port yang cocok dengan yang digunakan oleh health check Anda. Jika Anda menggunakantcp:80
untuk protokol dan port, Google Cloud dapat menggunakan HTTP di port80
untuk menghubungi VM Anda, tetapi tidak dapat menggunakan HTTPS di port443
untuk menghubunginya.
- Nama:
Klik Create.
Klik Create firewall rule untuk membuat aturan yang mengizinkan server proxy load balancer menghubungkan backend:
- Nama:
fw-allow-proxies
- Jaringan:
lb-network
- Direction of traffic: Ingress
- Action on match: Allow
- Targets: Tag target yang ditentukan
- Tag target:
load-balanced-backend
- Filter sumber: Rentang IPv4
- Rentang IPv4 sumber:
10.129.0.0/23
- Protokol dan port:
- Pilih Protokol dan port yang ditentukan.
- Pilih kotak centang TCP, lalu masukkan
80, 443, 8080
untuk nomor port.
- Nama:
Klik Create.
gcloud
Buat aturan
fw-allow-health-check
untuk mengizinkan health check Google Cloud. Contoh ini mengizinkan semua traffic TCP dari penguji health check; namun, Anda juga dapat mengonfigurasi kumpulan port yang lebih sempit untuk memenuhi kebutuhan Anda.gcloud compute firewall-rules create fw-allow-health-check \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --target-tags=load-balanced-backend \ --rules=tcp
Buat aturan
fw-allow-proxies
untuk mengizinkan proxy Load Balancer Aplikasi eksternal regional terhubung ke backend Anda. Tetapkansource-ranges
ke rentang yang dialokasikan untuk subnet khusus proxy Anda, misalnya,10.129.0.0/23
.gcloud compute firewall-rules create fw-allow-proxies \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=source-range \ --target-tags=load-balanced-backend \ --rules=tcp:80,tcp:443,tcp:8080
Terraform
Untuk membuat aturan firewall, gunakan resource google_compute_firewall
.
API
Buat aturan firewall fw-allow-health-check
dengan membuat permintaan POST
ke metode firewalls.insert
, dengan mengganti PROJECT_ID dengan project ID Anda.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "name": "fw-allow-health-check", "network": "projects/PROJECT-ID/global/networks/lb-network", "sourceRanges": [ "130.211.0.0/22", "35.191.0.0/16" ], "targetTags": [ "load-balanced-backend" ], "allowed": [ { "IPProtocol": "tcp" } ], "direction": "INGRESS" }
Buat aturan firewall fw-allow-proxies
untuk mengizinkan traffic TCP dalam
subnet proxy untuk metode
firewalls.insert
, dengan mengganti PROJECT_ID dengan project ID Anda.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "name": "fw-allow-proxies", "network": "projects/PROJECT_ID/global/networks/lb-network", "sourceRanges": [ "10.129.0.0/23" ], "targetTags": [ "load-balanced-backend" ], "allowed": [ { "IPProtocol": "tcp", "ports": [ "80" ] }, { "IPProtocol": "tcp", "ports": [ "443" ] }, { "IPProtocol": "tcp", "ports": [ "8080" ] } ], "direction": "INGRESS" }
Mengonfigurasi Load Balancer Aplikasi eksternal regional dengan layanan berbasis VM
Bagian ini menampilkan konfigurasi yang diperlukan untuk layanan yang berjalan di VM Compute Engine. VM klien terhubung ke alamat IP dan port yang Anda konfigurasikan dalam aturan penerusan. Saat aplikasi klien Anda mengirim traffic ke alamat IP dan port ini, permintaannya akan diteruskan ke virtual machine (VM) backend Anda sesuai dengan peta URL Load Balancer Aplikasi eksternal regional Anda.
Contoh di halaman ini secara eksplisit membuat alamat IP eksternal yang dicadangkan untuk aturan penerusan Load Balancer Aplikasi eksternal regional, bukan mengizinkan alamat IP eksternal sementara dialokasikan. Sebagai praktik terbaik, sebaiknya pesan alamat IP untuk aturan penerusan.
Membuat backend grup instance terkelola
Bagian ini menunjukkan cara membuat template dan grup instance terkelola. Grup instance terkelola menyediakan instance VM yang menjalankan server backend dari contoh Load Balancer Aplikasi eksternal regional. Traffic dari klien di-load balance ke server backend ini. Untuk tujuan demonstrasi, backend menayangkan nama host-nya sendiri.
Konsol
Membuat template instance. Di konsol Google Cloud, buka halaman Instance templates.
Buka halaman Template instance
- Klik Create instance template.
- Untuk Name, masukkan
l7-xlb-backend-template
. - Pastikan Boot disk disetel ke image Debian, seperti
Debian GNU/Linux 12 (bookworm). Petunjuk ini menggunakan perintah yang
hanya tersedia di Debian, seperti
apt-get
. - Klik Advanced options.
- Klik Networking dan konfigurasikan kolom berikut:
- Untuk Network tags, masukkan
load-balanced-backend
. - Untuk Network interfaces, pilih dari daftar berikut:
- Jaringan:
lb-network
- Subnet:
backend-subnet
- Jaringan:
- Untuk Network tags, masukkan
Klik Management. Masukkan skrip berikut ke dalam kolom Skrip startup.
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2
Klik Create.
Membuat grup instance terkelola. Di konsol Google Cloud, buka halaman Instance groups.
- Klik Create instance group.
- Pilih New managed instance group (stateless). Untuk informasi selengkapnya, lihat MIG stateless atau stateful.
- Untuk Name, masukkan
l7-xlb-backend-example
. - Untuk Location, pilih Single zone.
- Untuk Region, pilih
us-west1
. - Untuk Zone, pilih
us-west1-a
. - Untuk Instance template, pilih
l7-xlb-backend-template
. Untuk Mode penskalaan otomatis, pilih Aktif: tambahkan dan hapus instance ke grup.
Tetapkan Minimum number of instances ke
2
, dan tetapkan Maximum number of instances ke2
atau lebih.Klik Create.
gcloud
Petunjuk gcloud
dalam panduan ini mengasumsikan bahwa Anda menggunakan Cloud
Shell atau lingkungan lain dengan bash yang diinstal.
Buat template instance VM dengan server HTTP dengan perintah
gcloud compute instance-templates create
.gcloud compute instance-templates create l7-xlb-backend-template \ --region=us-west1 \ --network=lb-network \ --subnet=backend-subnet \ --tags=load-balanced-backend \ --image-family=debian-12 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2'
Buat grup instance terkelola di zona dengan perintah
gcloud compute instance-groups managed create
.gcloud compute instance-groups managed create l7-xlb-backend-example \ --zone=us-west1-a \ --size=2 \ --template=l7-xlb-backend-template
Terraform
Untuk membuat template instance, gunakan resource google_compute_instance_template
.
Untuk membuat grup instance terkelola, gunakan resource google_compute_instance_group_manager
.
API
Buat template instance dengan metode
instanceTemplates.insert
, dengan menggantiPROJECT_ID
dengan project ID Anda.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates { "name":"l7-xlb-backend-template", "properties": { "machineType":"e2-standard-2", "tags": { "items":[ "load-balanced-backend" ] }, "metadata": { "kind":"compute#metadata", "items":[ { "key":"startup-script", "value":"#! /bin/bash\napt-get update\napt-get install apache2 -y\na2ensite default-ssl\na2enmod ssl\nvm_hostname=\"$(curl -H \"Metadata-Flavor:Google\" \\\nhttp://metadata.google.internal/computeMetadata/v1/instance/name)\"\necho \"Page served from: $vm_hostname\" | \\\ntee /var/www/html/index.html\nsystemctl restart apache2" } ] }, "networkInterfaces":[ { "network":"projects/PROJECT_ID/global/networks/lb-network", "subnetwork":"regions/us-west1/subnetworks/backend-subnet", "accessConfigs":[ { "type":"ONE_TO_ONE_NAT" } ] } ], "disks": [ { "index":0, "boot":true, "initializeParams": { "sourceImage":"projects/debian-cloud/global/images/family/debian-12" }, "autoDelete":true } ] } }
Buat grup instance terkelola di setiap zona dengan metode
instanceGroupManagers.insert
, dengan menggantiPROJECT_ID
dengan project ID Anda.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/{zone}/instanceGroupManagers { "name": "l7-xlb-backend-example", "zone": "projects/PROJECT_ID/zones/us-west1-a", "instanceTemplate": "projects/PROJECT_ID/global/instanceTemplates/l7-xlb-backend-template", "baseInstanceName": "l7-xlb-backend-example", "targetSize": 2 }
Menambahkan port bernama ke grup instance
Untuk grup instance Anda, tentukan layanan HTTP dan petakan nama port ke port yang relevan. Layanan backend load balancer meneruskan traffic ke port bernama.
Konsol
Di Konsol Google Cloud, buka halaman Instance groups.
Klik nama grup instance Anda (dalam contoh ini,
l7-xlb-backend-example
).Di halaman Ringkasan grup instance, klik Edit
.Klik Specify port name mapping.
Klik Tambahkan item.
Untuk nama port, masukkan
http
. Untuk nomor port, masukkan80
.Klik Simpan.
gcloud
Gunakan perintah
gcloud compute instance-groups
set-named-ports
.
gcloud compute instance-groups set-named-ports l7-xlb-backend-example \ --named-ports http:80 \ --zone us-west1-a
Terraform
Atribut named_port
disertakan dalam
contoh grup instance terkelola.
Mencadangkan alamat IP load balancer
Cadangkan alamat IP statis untuk load balancer.
Konsol
Di konsol Google Cloud, buka halaman Reserve a static address.
Pilih Nama untuk alamat baru.
Untuk Network Service Tier, pilih Standard.
Untuk IP version, pilih IPv4. Alamat IPv6 bersifat global dan hanya dapat digunakan dengan load balancer global.
Untuk Jenis, pilih Regional.
Untuk Region, pilih us-west1.
Biarkan opsi Lampirkan 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-west1 \ --network-tier=STANDARD
Ganti kode berikut:
ADDRESS_NAME
: nama yang ingin Anda beri untuk alamat ini.REGION
: region tempat Anda ingin mencadangkan alamat ini. Region ini harus berupa region yang sama dengan load balancer. Semua alamat IP regional adalahIPv4
.
Gunakan perintah
compute addresses describe
untuk melihat hasilnya:gcloud compute addresses describe ADDRESS_NAME
Terraform
Untuk mencadangkan alamat IP, gunakan resource google_compute_address
.
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
API
Untuk membuat alamat IPv4 regional, panggil metode addresses.insert
regional:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses
Isi permintaan Anda harus berisi informasi berikut:
{ "name": "ADDRESS_NAME" "networkTier": "STANDARD" "region": "us-west1" }
Ganti kode berikut:
ADDRESS_NAME
: nama untuk alamatREGION
: nama region untuk permintaan iniPROJECT_ID
: project ID untuk permintaan ini
Mengonfigurasi load balancer
Contoh ini menunjukkan cara membuat resource Load Balancer Aplikasi eksternal regional berikut:
- Health check HTTP
- Layanan backend dengan grup instance terkelola sebagai backend
- Peta URL
- Pastikan untuk merujuk ke peta URL regional jika region ditentukan untuk proxy HTTP(S) target. Peta URL regional merutekan permintaan ke layanan backend regional berdasarkan aturan yang Anda tentukan untuk host dan jalur URL masuk. Peta URL regional hanya dapat direferensikan oleh aturan proxy target regional di region yang sama.
- Sertifikat SSL (untuk HTTPS)
- Proxy target
- Aturan penerusan
Ketersediaan proxy
Terkadang region Google Cloud tidak memiliki kapasitas proxy yang memadai untuk load balancer baru. Jika hal ini terjadi, konsol Google Cloud akan memberikan pesan peringatan ketersediaan proxy saat Anda membuat load balancer. Untuk menyelesaikan masalah ini, Anda dapat melakukan salah satu tindakan berikut:
- Pilih region lain untuk load balancer Anda. Hal ini dapat menjadi opsi yang praktis jika Anda memiliki backend di region lain.
- Pilih jaringan VPC yang sudah memiliki subnet khusus proxy yang dialokasikan.
Tunggu hingga masalah kapasitas teratasi.
Konsol
Memulai konfigurasi
Di konsol Google Cloud, buka halaman Load balancing.
- Klik Create load balancer.
- Untuk Type of load balancer, pilih Application Load Balancer (HTTP/HTTPS), lalu klik Next.
- Untuk Public facing or internal, pilih Public facing (external), lalu klik Next.
- Untuk Global or single region deployment, pilih Best for regional workloads, lalu klik Next.
- Klik Konfigurasikan.
Konfigurasi dasar
- Untuk nama load balancer, masukkan
regional-l7-xlb
. - Untuk Region, pilih
us-west1
. - Untuk Network, pilih
lb-network
.
Mereservasi subnet khusus proxy
Untuk Load Balancer Aplikasi eksternal regional, reservasi subnet khusus proxy:
- Klik Reserve subnet.
- Untuk Name, masukkan
proxy-only-subnet
. - Untuk Rentang alamat IP, masukkan
10.129.0.0/23
. - Klik Tambahkan.
Mengonfigurasi frontend
Untuk HTTP:
- Klik Frontend configuration.
- Setel Nama ke
l7-xlb-forwarding-rule
. - Tetapkan Protocol ke
HTTP
. - Tetapkan Network service tier ke Standard.
- Tetapkan Port ke
80
. - Pilih IP address yang Anda buat di bagian Mencadangkan alamat IP load balancer.
- Klik Done.
Untuk HTTPS:
- Klik Frontend configuration.
- Di kolom Name, masukkan
l7-xlb-forwarding-rule
. - Pada kolom Protocol, pilih
HTTPS (includes HTTP/2)
. - Tetapkan Network service tier ke Standard.
- Pastikan Port disetel ke
443
. - Pilih IP address yang Anda buat di bagian Mencadangkan alamat IP load balancer.
- Dalam daftar Certificate, lakukan tindakan berikut:
- Jika Anda sudah memiliki resource sertifikat SSL yang dikelola sendiri Compute Engine, pilih sertifikat SSL utama.
- Klik Buat sertifikat baru.
- Di kolom Name, masukkan
l7-xlb-cert
. - Di kolom yang sesuai, upload file berformat PEM:
- Certificate
- Private key
- Klik Create.
- Di kolom Name, masukkan
- Opsional: Untuk menambahkan sertifikat selain sertifikat SSL utama:
- Klik Add certificate.
- Jika Anda sudah memiliki sertifikat, pilih sertifikat tersebut dari daftar Certificates.
- Opsional: Klik Create a new certificate, lalu ikuti petunjuk seperti yang ditentukan pada langkah sebelumnya.
Pilih kebijakan SSL dari daftar Kebijakan SSL. Secara opsional, untuk membuat kebijakan SSL, lakukan hal berikut:
- Di daftar SSL policy, pilih Create a policy.
- Masukkan nama untuk kebijakan SSL.
- Pilih versi TLS minimum. Nilai defaultnya adalah TLS 1.0.
- Pilih salah satu profil yang dikelola Google dan telah dikonfigurasi sebelumnya atau pilih profil Kustom yang memungkinkan Anda memilih fitur SSL satu per satu. Fitur yang diaktifkan dan Fitur yang dinonaktifkan akan ditampilkan.
- Klik Simpan.
Jika Anda belum membuat kebijakan SSL, kebijakan SSL Google Cloud default akan diterapkan.
Klik Done.
Mengonfigurasi layanan backend
- Klik Backend configuration.
- Dari menu Create or select backend services, pilih Create a backend service.
- Tetapkan nama layanan backend ke
l7-xlb-backend-service
. - Untuk Protocol, pilih HTTP.
- Untuk Named Port, masukkan
http
. - Tetapkan Backend type ke Instance group.
- Di bagian New backend:
- Setel Instance group ke
l7-xlb-backend-example
. - Setel Transfer nomor ke
80
. - Tetapkan Balancing mode ke Utilization.
- Klik Done.
- Setel Instance group ke
- Di daftar Health check, klik Create a health check.
- Setel Nama ke
l7-xlb-basic-check
. - Tetapkan Protocol ke
HTTP
. - Tetapkan Port ke
80
. - Klik Simpan.
- Setel Nama ke
- Klik Create.
Mengonfigurasi aturan pemilihan rute
- Klik Routing rules.
- Untuk Mode, pilih Simple host and path rule.
- Pastikan
l7-xlb-backend-service
adalah satu-satunya layanan backend untuk semua host dan jalur yang tidak cocok.
Meninjau konfigurasi
- Klik Review and finalize.
- Tinjau setelan konfigurasi load balancer Anda.
- Opsional: Klik Equivalent code untuk melihat permintaan REST API yang akan digunakan untuk membuat load balancer.
- Klik Create.
gcloud
Tentukan health check HTTP dengan perintah
gcloud compute health-checks create http
.gcloud compute health-checks create http l7-xlb-basic-check \ --region=us-west1 \ --request-path='/' \ --use-serving-port
Tentukan layanan backend dengan perintah
gcloud compute backend-services create
.gcloud compute backend-services create l7-xlb-backend-service \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --port-name=http \ --health-checks=l7-xlb-basic-check \ --health-checks-region=us-west1 \ --region=us-west1
Tambahkan backend ke layanan backend dengan perintah
gcloud compute backend-services add-backend
.gcloud compute backend-services add-backend l7-xlb-backend-service \ --balancing-mode=UTILIZATION \ --instance-group=l7-xlb-backend-example \ --instance-group-zone=us-west1-a \ --region=us-west1
Buat peta URL dengan perintah
gcloud compute url-maps create
.gcloud compute url-maps create regional-l7-xlb-map \ --default-service=l7-xlb-backend-service \ --region=us-west1
Buat proxy target.
Untuk HTTP:
Untuk load balancer HTTP, buat proxy target dengan perintah
gcloud compute target-http-proxies create
.gcloud compute target-http-proxies create l7-xlb-proxy \ --url-map=regional-l7-xlb-map \ --url-map-region=us-west1 \ --region=us-west1
Untuk HTTPS:
Anda dapat membuat sertifikat Compute Engine atau Certificate Manager. Gunakan salah satu metode berikut untuk membuat sertifikat menggunakan Pengelola Sertifikat:
- Sertifikat yang dikelola sendiri secara regional. Untuk informasi tentang cara membuat dan menggunakan sertifikat yang dikelola sendiri secara regional, lihat men-deploy sertifikat yang dikelola sendiri secara regional. Peta sertifikat tidak didukung.
Sertifikat regional yang dikelola Google. Peta sertifikat tidak didukung.
Jenis sertifikat regional yang dikelola Google berikut didukung oleh Pengelola Sertifikat:
- Sertifikat regional yang dikelola Google dengan otorisasi DNS per project. Untuk mengetahui informasi selengkapnya, lihat Men-deploy sertifikat yang dikelola Google secara regional.
- Sertifikat (pribadi) regional yang dikelola Google dengan Certificate Authority Service. Untuk mengetahui informasi selengkapnya, lihat Men-deploy sertifikat yang dikelola Google regional dengan Layanan CA.
Menetapkan jalur file ke nama variabel.
export LB_CERT=path to PEM-formatted file
export LB_PRIVATE_KEY=path to PEM-formatted file
Buat sertifikat SSL regional menggunakan perintah
gcloud compute ssl-certificates create
.gcloud compute ssl-certificates create l7-xlb-cert \ --certificate=$LB_CERT \ --private-key=$LB_PRIVATE_KEY \ --region=us-west1
Gunakan sertifikat SSL regional untuk membuat proxy target dengan perintah
gcloud compute target-https-proxies create
.gcloud compute target-https-proxies create l7-xlb-proxy \ --url-map=regional-l7-xlb-map \ --region=us-west1 \ --ssl-certificates=l7-xlb-cert
Membuat aturan penerusan.
Untuk HTTP:
Gunakan perintah
gcloud compute forwarding-rules create
dengan flag yang benar.gcloud compute forwarding-rules create l7-xlb-forwarding-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=STANDARD \ --network=lb-network \ --address=ADDRESS_NAME \ --ports=80 \ --region=us-west1 \ --target-http-proxy=l7-xlb-proxy \ --target-http-proxy-region=us-west1
Untuk HTTPS:
Buat aturan penerusan dengan perintah
gcloud compute forwarding-rules create
dengan flag yang benar.gcloud compute forwarding-rules create l7-xlb-forwarding-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=STANDARD \ --network=lb-network \ --address=ADDRESS_NAME \ --ports=443 \ --region=us-west1 \ --target-https-proxy=l7-xlb-proxy \ --target-https-proxy-region=us-west1
Setelah membuat sertifikat, lampirkan sertifikat langsung ke proxy target.
Terraform
Untuk membuat health check, gunakan resource google_compute_region_health_check
.
Untuk membuat layanan backend, gunakan resource google_compute_region_backend_service
.
Untuk membuat peta URL, gunakan resource google_compute_region_url_map
.
Untuk membuat proxy HTTP target, gunakan resource google_compute_region_target_http_proxy
.
Untuk membuat aturan penerusan, gunakan resource google_compute_forwarding_rule
.
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
API
Buat health check dengan membuat permintaan POST
ke metode regionHealthChecks.insert
, dengan mengganti PROJECT_ID
dengan project ID Anda.
POST https://compute.googleapis.com/compute/v1/projects/<var>PROJECT_ID</var>/regions/{region}/healthChecks
{
"name": "l7-xlb-basic-check",
"type": "HTTP",
"httpHealthCheck": {
"portSpecification": "USE_SERVING_PORT"
}
}
Buat layanan backend regional dengan membuat permintaan POST
ke
metode
regionBackendServices.insert
, dengan mengganti PROJECT_ID
dengan project ID Anda.
POST https://compute.googleapis.com/compute/v1/projects/<var>PROJECT_ID</var>/regions/us-west1/backendServices
{
"name": "l7-xlb-backend-service",
"backends": [
{
"group": "projects/<var>PROJECT_ID</var>/zones/us-west1-a/instanceGroups/l7-xlb-backend-example",
"balancingMode": "UTILIZATION"
}
],
"healthChecks": [
"projects/<var>PROJECT_ID</var>/regions/us-west1/healthChecks/l7-xlb-basic-check"
],
"loadBalancingScheme": "EXTERNAL_MANAGED"
}
Buat peta URL dengan membuat permintaan POST
ke metode regionUrlMaps.insert
, dengan mengganti PROJECT_ID
dengan project ID Anda.
POST https://compute.googleapis.com/compute/v1/projects/<var>PROJECT_ID</var>/regions/us-west1/urlMaps
{
"name": "regional-l7-xlb-map",
"defaultService": "projects/<var>PROJECT_ID</var>/regions/us-west1/backendServices/l7-xlb-backend-service"
}
Buat proxy HTTP target dengan membuat permintaan POST
ke metode regionTargetHttpProxies.insert
, dengan mengganti PROJECT_ID
dengan ID project Anda.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/targetHttpProxy { "name": "l7-xlb-proxy", "urlMap": "projects/PROJECT_ID/global/urlMaps/regional-l7-xlb-map", "region": "us-west1" }
Buat aturan penerusan dengan membuat permintaan POST
ke metode forwardingRules.insert
, dengan mengganti PROJECT_ID
dengan project ID Anda.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules { "name": "l7-xlb-forwarding-rule", "IPAddress": "10.1.2.99", "IPProtocol": "TCP", "portRange": "80-80", "target": "projects/PROJECT_ID/regions/us-west1/targetHttpProxies/l7-xlb-proxy", "loadBalancingScheme": "EXTERNAL_MANAGED", "network": "projects/PROJECT_ID/global/networks/lb-network", "networkTier": "STANDARD", }
Menghubungkan domain ke load balancer
Setelah load balancer dibuat, catat alamat IP yang terkait dengan load balancer, misalnya, 30.90.80.100
. Untuk mengarahkan domain ke load balancer, buat data A
menggunakan layanan pendaftaran domain. Jika
Anda menambahkan beberapa domain ke sertifikat SSL, Anda harus menambahkan data A
untuk setiap domain, yang semuanya mengarah ke alamat IP load balancer. Misalnya, untuk
membuat data A
bagi www.example.com
dan example.com
, gunakan string berikut:
NAME TYPE DATA www A 30.90.80.100 @ A 30.90.80.100
Jika Anda menggunakan Cloud DNS sebagai penyedia DNS, lihat Menambahkan, mengubah, dan menghapus data.
Menguji load balancer
Setelah layanan load balancing berjalan, Anda dapat mengirim traffic ke aturan penerusan dan melihat traffic tersebut disebar ke berbagai instance.
Konsol
Di konsol Google Cloud, buka halaman Load balancing.
- Pilih load balancer yang baru saja Anda buat.
- Di bagian Backend, konfirmasi bahwa VM responsif. Kolom
Healthy harus diisi, yang menunjukkan bahwa kedua VM
responsif (
2/2
). Jika Anda melihat sebaliknya, coba muat ulang halaman terlebih dahulu. Diperlukan waktu beberapa saat hingga konsol Google Cloud menunjukkan bahwa VM tersebut responsif. Jika backend tidak terlihat sehat setelah beberapa menit, tinjau konfigurasi firewall dan tag jaringan yang ditetapkan ke VM backend Anda. - Setelah Konsol Google Cloud menunjukkan bahwa instance backend berfungsi dengan baik, Anda dapat menguji load balancer menggunakan browser web dengan membuka
https://IP_ADDRESS
(atauhttp://IP_ADDRESS
). GantiIP_ADDRESS
dengan alamat IP load balancer. - Jika Anda menggunakan sertifikat yang ditandatangani sendiri untuk menguji HTTPS, browser akan menampilkan peringatan. Anda harus secara eksplisit memerintahkan browser untuk menerima sertifikat yang ditandatangani sendiri.
- Browser akan merender halaman berisi konten yang menampilkan nama instance yang menampilkan halaman tersebut, bersama dengan zonanya (misalnya,
Page served from: lb-backend-example-xxxx
). Jika browser Anda tidak merender halaman ini, tinjau setelan konfigurasi dalam panduan ini.
gcloud
Perhatikan alamat IPv4 yang dicadangkan:
gcloud beta compute addresses describe ADDRESS_NAME \ --format="get(address)" \ --region="us-west1"
Anda dapat menguji load balancer menggunakan browser web dengan membuka
https://IP_ADDRESS
(atau
http://IP_ADDRESS
). Ganti
IP_ADDRESS
dengan
alamat IP load balancer.
Jika Anda menggunakan sertifikat yang ditandatangani sendiri untuk menguji HTTPS, browser akan menampilkan peringatan. Anda harus secara eksplisit memerintahkan browser untuk menerima sertifikat yang ditandatangani sendiri.
Browser Anda akan merender halaman dengan informasi minimal tentang instance backend. Jika browser Anda tidak merender halaman ini, tinjau setelan konfigurasi dalam panduan ini.
Opsi konfigurasi tambahan
Bagian ini memperluas contoh konfigurasi untuk memberikan opsi konfigurasi alternatif dan tambahan. Semua tugas bersifat opsional. Anda dapat melakukannya dalam urutan apa pun.
Mengaktifkan afinitas sesi
Prosedur ini menunjukkan cara mengupdate layanan backend untuk contoh Application Load Balancer eksternal regional sehingga layanan backend menggunakan afinitas cookie yang dihasilkan, afinitas kolom header, atau afinitas cookie HTTP.
Jika afinitas cookie yang dihasilkan diaktifkan, load balancer akan mengeluarkan cookie
pada permintaan pertama. Untuk setiap permintaan berikutnya dengan cookie yang sama, load
balancer akan mengarahkan permintaan ke VM atau endpoint backend yang sama. Untuk
Load Balancer Aplikasi eksternal regional, cookie diberi nama GCILB
.
Jika afinitas kolom header diaktifkan, load balancer akan merutekan permintaan ke VM atau endpoint backend di NEG berdasarkan nilai header HTTP yang diberi nama di tanda --custom-request-header
. Afinitas kolom header hanya valid jika
kebijakan lokalitas load balancing adalah RING_HASH
atau MAGLEV
dan
hash konsisten layanan backend menentukan nama header HTTP.
Jika afinitas cookie HTTP diaktifkan, load balancer akan merutekan permintaan ke VM atau endpoint backend dalam NEG, berdasarkan cookie HTTP yang diberi nama dalam flag HTTP_COOKIE
dengan flag --affinity-cookie-ttl
opsional. Jika klien
tidak memberikan cookie dalam permintaan HTTP-nya, proxy akan membuat
cookie dan menampilkannya kepada klien dalam header Set-Cookie
. Afinitas cookie HTTP
hanya valid jika kebijakan lokalitas load balancing adalah
RING_HASH
atau MAGLEV
dan hash konsisten layanan backend menentukan
cookie HTTP.
Konsol
Untuk mengaktifkan atau mengubah afinitas sesi untuk layanan backend:
Di konsol Google Cloud, buka halaman Load balancing.
Pilih load balancer yang baru saja Anda buat.
Klik Backend.
Klik l7-xlb-backend-service (nama layanan backend yang Anda buat untuk contoh ini) dan klik Edit.
Di halaman Detail layanan backend, klik Konfigurasi lanjutan.
Untuk Afinitas sesi, pilih jenis afinitas sesi yang Anda inginkan dari menu.
Klik Perbarui.
gcloud
Gunakan perintah berikut untuk mengupdate layanan backend l7-xlb-backend-service
ke berbagai jenis afinitas sesi:
gcloud compute backend-services update l7-xlb-backend-service \ --session-affinity=GENERATED_COOKIE | HEADER_FIELD | HTTP_COOKIE | CLIENT_IP --region=us-west1
API
Untuk menetapkan afinitas sesi, buat permintaan PATCH
ke metode
regionBackendServices/patch
.
PATCH https://compute.googleapis.com/compute/v1/projects/<var>PROJECT_ID</var>/regions/us-west1/regionBackendServices/l7-xlb-backend-service
{
"sessionAffinity": <var>"GENERATED_COOKIE" | "HEADER_FIELD" | "HTTP_COOKIE" | "CLIENT_IP"</var>
}
Memperbarui waktu tunggu keepalive HTTP klien
Load balancer yang dibuat pada langkah sebelumnya telah dikonfigurasi dengan nilai default untuk waktu tunggu keepalive HTTP klien.Untuk memperbarui waktu tunggu keepalive HTTP klien, gunakan petunjuk berikut.
Konsol
Di konsol Google Cloud, buka halaman Load balancing.
- Klik nama load balancer yang ingin diubah.
- Klik Edit.
- Klik Frontend configuration.
- Luaskan Fitur lanjutan. Untuk Timeout keepalive HTTP, masukkan nilai waktu tunggu.
- Klik Perbarui.
- Untuk meninjau perubahan, klik Tinjau dan selesaikan, lalu klik Perbarui.
gcloud
Untuk load balancer HTTP, perbarui proxy HTTP target menggunakan
perintah gcloud compute target-http-proxies update
.
gcloud compute target-http-proxies update TARGET_HTTP_PROXY_NAME \ --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \ --region=REGION
Untuk load balancer HTTPS, perbarui proxy HTTPS target menggunakan
perintah gcloud compute target-https-proxies update
.
gcloud compute target-https-proxies update TARGET_HTTP_PROXY_NAME \ --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \ --region REGION
Ganti kode berikut:
TARGET_HTTP_PROXY_NAME
: nama proxy HTTP target.TARGET_HTTPS_PROXY_NAME
: nama proxy HTTPS target.HTTP_KEEP_ALIVE_TIMEOUT_SEC
: nilai waktu tunggu keepalive HTTP dari 5 hingga 600 detik.
Mengaktifkan IAP di Load Balancer Aplikasi eksternal
Anda dapat mengonfigurasi IAP agar
diaktifkan atau dinonaktifkan (default). Jika diaktifkan, Anda harus memberikan nilai untuk
oauth2-client-id
dan oauth2-client-secret
.
Untuk mengaktifkan IAP, perbarui layanan backend
agar menyertakan flag --iap=enabled
dengan oauth2-client-id
dan
oauth2-client-secret
.
Secara opsional, Anda dapat mengaktifkan IAP untuk resource Compute Engine menggunakan konsol Google Cloud, gcloud CLI, atau API.
Langkah selanjutnya
- Mengonversi Load Balancer Aplikasi ke IPv6
- Ringkasan pengelolaan traffic untuk Load Balancer Aplikasi eksternal regional
- Subnet khusus proxy
- Menggunakan sertifikat SSL yang dikelola sendiri
- Membersihkan penyiapan load balancer