Dokumen ini berisi petunjuk cara mengonfigurasi Load Balancer Aplikasi eksternal regional untuk layanan Anda yang dijalankan di VM Compute Engine.
Karena Load Balancer Aplikasi eksternal regional memungkinkan Anda membuat load balancer di region tertentu, load balancer tersebut sering kali digunakan untuk beban kerja yang memiliki persyaratan kepatuhan wilayah hukum. Workload yang memerlukan akses ke Standard Network Tier adalah kasus penggunaan umum lainnya untuk Load Balancer Aplikasi eksternal regional, karena Load Balancer Aplikasi eksternal regional mendukung Standard Network Service Tier.
Sebelum mengikuti panduan ini, biasakan diri Anda dengan hal-hal berikut:
Izin
Untuk mengikuti panduan ini, Anda harus dapat membuat instance dan mengubah jaringan dalam sebuah project. Anda harus menjadi pemilik atau editor project, atau Anda harus memiliki semua peran IAM Compute Engine berikut.
Tugas | Peran yang diperlukan |
---|---|
Membuat jaringan, subnet, dan komponen load balancer | Admin Jaringan |
Menambahkan dan menghapus aturan firewall | Security Admin |
Membuat instance | Admin Instance |
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-angka dalam diagram.
Seperti yang ditunjukkan dalam diagram, contoh ini membuat Load Balancer Aplikasi eksternal regional di jaringan VPC di region us-west1
, dengan satu layanan backend dan dua grup instance backend.
Diagram menampilkan 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 region dibagikan ke semua load balancer regional di region tersebut. Alamat sumber paket yang dikirim dari load balancer ke backend layanan akan dialokasikan dari subnet khusus proxy. Dalam contoh ini, subnet khusus proxy untuk region memiliki rentang alamat IP utama10.129.0.0/23
, yang merupakan ukuran subnet yang direkomendasikan. Untuk mengetahui informasi selengkapnya, lihat Subnet khusus proxy.
Aturan firewall yang mengizinkan aliran traffic subnet khusus proxy di jaringan Anda. Ini berarti menambahkan 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 Certificate Manager untuk mendekripsi traffic SSL jika Anda mengonfigurasi load balancing HTTPS. Proxy target dapat meneruskan traffic ke instance 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 di bagian Memesan 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 akan 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 adalah jaringan VPC mode kustom yang bernama
lb-network
.Subnet untuk backend. Subnet bernama
backend-subnet
di regionus-west1
menggunakan10.1.2.0/24
untuk rentang IP utamanya.Subnet untuk proxy. Subnet bernama
proxy-only-subnet
di regionus-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:
- Setel Subnet creation mode ke Custom.
- Di bagian Subnet baru, masukkan informasi berikut:
- Name:
backend-subnet
- Region:
us-west1
- Rentang alamat IP:
10.1.2.0/24
- Name:
- 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 dalam 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 memberikan sekumpulan alamat IP yang digunakan Google untuk menjalankan proxy Envoy atas nama Anda. Proxy tersebut 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 aktif per region, per jaringan.
Konsol
Jika menggunakan Google Cloud Console, 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 Destination ke Regional Managed Proxy.
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
, yang menggantikan 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, berlaku untuk instance yang di-load balanced, yang memungkinkan semua traffic TCP dari sistem health check Google Cloud (di130.211.0.0/22
dan35.191.0.0/16
). Contoh ini menggunakan tag targetload-balanced-backend
untuk mengidentifikasi VM yang menjadi tempat penerapan aturan firewall.fw-allow-proxies
. Aturan ingress, yang berlaku untuk instance yang di-load balanced, yang memungkinkan 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 backend instance 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 guna mengizinkan health check Google Cloud:
- Name:
fw-allow-health-check
- Jaringan:
lb-network
- Arah traffic: Ingress
- Tindakan jika kecocokan: Izinkan
- 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 Specified protocols and ports.
- Pilih kotak centang TCP, lalu masukkan
80
untuk nomor port.
Sebagai praktik terbaik, batasi aturan ini hanya untuk 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 pada port80
untuk menghubungi VM Anda, tetapi tidak dapat menggunakan HTTPS pada port443
untuk menghubungi VM.
- Name:
Klik Create.
Klik Create firewall rule untuk membuat aturan guna mengizinkan server proxy load balancer menghubungkan backend:
- Name:
fw-allow-proxies
- Jaringan:
lb-network
- Arah traffic: Ingress
- Tindakan jika kecocokan: Izinkan
- 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 Specified protocols and ports.
- Centang kotak TCP, lalu masukkan
80, 443, 8080
untuk nomor port.
- Name:
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 pada subnet khusus proxy, 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
, yang 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
, yang menggantikan 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 menunjukkan konfigurasi yang diperlukan untuk layanan yang berjalan di VM Compute Engine. VM klien terhubung ke alamat IP dan port yang Anda konfigurasi di aturan penerusan. Saat aplikasi klien Anda mengirim traffic ke alamat IP dan port ini, permintaannya akan diteruskan ke virtual machine (VM) backend 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 alokasi alamat IP eksternal sementara. Sebagai praktik terbaik, sebaiknya Anda melakukan reservasi 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 contoh Load Balancer Aplikasi eksternal regional. Traffic dari klien di-load balanced ke server backend ini. Untuk tujuan demonstrasi, backend menyediakan nama host mereka sendiri.
Konsol
Membuat template instance. Di konsol Google Cloud, buka halaman Instance templates.
- Klik Create instance template.
- Untuk Name, masukkan
l7-xlb-backend-template
. - Pastikan Boot disk disetel ke image Debian, seperti Debian GNU/Linux 10 (buster). Petunjuk ini menggunakan perintah yang
hanya tersedia di Debian, seperti
apt-get
. - Klik Advanced options.
- Klik Networking dan konfigurasikan kolom berikut:
- Untuk Tag jaringan, masukkan
load-balanced-backend
. - Untuk Network interfaces, pilih opsi berikut:
- Jaringan:
lb-network
- Subnet:
backend-subnet
- Jaringan:
- Untuk Tag jaringan, masukkan
Klik Management. Masukkan skrip berikut ke 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 grup instance.
- Pilih New managed instance group (stateless). Untuk mengetahui 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 Autoscaling mode, pilih On: add and remove instances to the group.
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 yang menginstal bash.
Buat template instance VM dengan server HTTP menggunakan 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-10 \ --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 tersebut 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
, dan gantiPROJECT_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-10" }, "autoDelete":true } ] } }
Buat grup instance terkelola di setiap zona dengan metode
instanceGroupManagers.insert
, dan gantiPROJECT_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, tentukan layanan HTTP dan petakan nama port ke port yang relevan. Layanan backend load balancer meneruskan traffic ke port tertentu.
Konsol
Di Konsol Google Cloud, buka halaman Instance groups.
Klik nama grup instance Anda (dalam contoh ini
l7-xlb-backend-example
).Di halaman Overview grup instance, klik Edit
.Klik Tentukan pemetaan nama port.
Klik Tambahkan item.
Untuk nama port, masukkan
http
. Untuk nomor port, masukkan80
.Klik Save.
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 eksternal untuk load balancer. Prosedur ini membuat alamat IP load balancer di Paket Standar. Load Balancer Aplikasi eksternal regional mendukung Tingkat Layanan Jaringan Premium dan Standar. Namun, pembuatan load balancer ini di Paket Premium tidak didukung di Konsol Google Cloud. Gunakan gcloud atau REST API sebagai gantinya.
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 hanya bisa bersifat global dan hanya dapat digunakan dengan load balancer global.
Untuk Type, pilih Regional.
Untuk Region, pilih us-west1.
Biarkan opsi Attached to ditetapkan ke None. 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 panggil alamat ini.REGION
: region tempat Anda ingin mencadangkan alamat ini. Region ini harus memiliki 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 suatu wilayah 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 dapat direferensikan oleh aturan proxy target regional hanya di region yang sama.
- Sertifikat SSL (untuk HTTPS)
- Proxy target
- Aturan penerusan
Ketersediaan proxy
Terkadang region Google Cloud tidak memiliki kapasitas proxy yang cukup untuk load balancer baru. Jika hal ini terjadi, Google Cloud Console akan memberikan pesan peringatan ketersediaan proxy saat Anda membuat load balancer. Untuk mengatasi masalah ini, Anda dapat melakukan salah satu tindakan berikut:
- Pilih region lain untuk load balancer Anda. Ini bisa menjadi opsi praktis jika Anda memiliki backend di region lain.
- Pilih jaringan VPC yang sudah memiliki alokasi subnet khusus proxy.
Tunggu hingga masalah kapasitas selesai.
Konsol
Memulai konfigurasi Anda
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 (eksternal), lalu klik Next.
- Untuk Global or single region deployment, pilih Best for regional beban kerja, 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
.
Mencadangkan subnet khusus proxy
Untuk Load Balancer Aplikasi eksternal regional, cadangkan 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.
- Tetapkan Nama ke
l7-xlb-forwarding-rule
. - Setel Protocol ke
HTTP
. - Tetapkan Port ke
80
. - Pilih IP address yang Anda buat di bagian Reserving the load balancer's IP address.
- Klik Done.
Untuk HTTPS:
- Klik Frontend configuration.
- Di kolom Name, masukkan
l7-xlb-forwarding-rule
. - Pada kolom Protocol, pilih
HTTPS (includes HTTP/2)
. - Pastikan Port disetel ke
443
. - Pilih IP address yang Anda buat di bagian Reserving the load balancer's IP address.
- Dalam daftar Certificate, lakukan hal 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 dari daftar Sertifikat.
- Opsional: Klik Buat sertifikat baru dan ikuti petunjuk seperti yang ditentukan pada langkah sebelumnya.
- Pilih kebijakan SSL dari daftar Kebijakan SSL. 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 Port Bernama, masukkan
http
. - Setel Backend type ke Instance group.
- Di bagian New backend:
- Setel Instance group ke
l7-xlb-backend-example
. - Setel Transfer nomor ke
80
. - Setel Mode penyeimbangan ke Pemanfaatan.
- Klik Done.
- Setel Instance group ke
- Di daftar Health check, klik Create a health check.
- Tetapkan Nama ke
l7-xlb-basic-check
. - Setel Protocol ke
HTTP
. - Tetapkan Port ke
80
. - Klik Save.
- Tetapkan Nama ke
- Klik Create.
Mengonfigurasi aturan pemilihan rute
- Klik Routing rules.
- Untuk Mode, pilih Simple host and path rule.
- Pastikan bahwa
l7-xlb-backend-service
adalah satu-satunya layanan backend untuk host yang tidak cocok 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 Certificate Manager:
- Sertifikat regional yang dikelola sendiri. Untuk mengetahui 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 Certificate Manager:
- Sertifikat regional yang dikelola Google dengan otorisasi DNS per project. Untuk informasi selengkapnya, lihat Men-deploy sertifikat regional yang dikelola Google.
- Sertifikat regional yang dikelola Google (pribadi) dengan Certificate Authority Service. Untuk informasi selengkapnya, lihat Men-deploy sertifikat regional yang dikelola Google dengan CA Service.
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 Anda membuat sertifikat, lampirkan sertifikat tersebut 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
, yang menggantikan 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
, yang 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
, lalu ganti 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
, yang menggantikan PROJECT_ID
dengan project ID 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
, yang menggantikan 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 tersebar ke berbagai instance.
Konsol
Di konsol Google Cloud, buka halaman Load balancing.
- Pilih load balancer yang baru saja dibuat.
- Di bagian Backend, pastikan bahwa VM responsif. Kolom
Healthy akan diisi, yang menunjukkan bahwa kedua VM
responsif (
2/2
). Jika Anda melihat sebaliknya, coba muat ulang halaman terlebih dahulu. Diperlukan waktu beberapa saat bagi Google Cloud Console untuk menunjukkan bahwa VM responsif. Jika backend tidak terlihat responsif setelah beberapa menit, tinjau konfigurasi firewall dan tag jaringan yang ditetapkan ke VM backend Anda. - Setelah konsol Google Cloud menunjukkan bahwa backend instance responsif, 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 dengan konten yang menampilkan nama
instance yang menampilkan halaman tersebut, beserta zonanya (misalnya,
Page served from: lb-backend-example-xxxx
). Jika browser 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 sedikit informasi tentang backend instance. 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 Load Balancer Aplikasi eksternal regional, sehingga layanan backend menggunakan afinitas cookie yang dihasilkan, afinitas kolom header, atau afinitas cookie HTTP yang dihasilkan.
Saat 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 tersebut ke VM backend atau endpoint yang sama. Untuk
Load Balancer Aplikasi eksternal regional, cookie diberi nama GCILB
.
Jika afinitas kolom header diaktifkan, load balancer akan merutekan permintaan ke VM backend atau endpoint di NEG berdasarkan nilai header HTTP yang dinamai dalam flag --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.
Saat afinitas cookie HTTP diaktifkan, load balancer akan merutekan permintaan ke VM backend atau endpoint di NEG, berdasarkan cookie HTTP yang dinamai dalam flag HTTP_COOKIE
dengan flag --affinity-cookie-ttl
opsional. Jika klien tidak menyediakan cookie dalam permintaan HTTP-nya, proxy akan menghasilkan cookie dan menampilkannya ke klien dalam header Set-Cookie
. Afinitas cookie HTTP hanya valid jika kebijakan lokalitas load balancing adalah RING_HASH
atau MAGLEV
dan hash konsisten dari layanan backend menentukan cookie HTTP tersebut.
Konsol
Untuk mengaktifkan atau mengubah afinitas sesi untuk layanan backend:
Di Konsol Google Cloud, buka halaman Load balancing.
Pilih load balancer yang baru saja dibuat.
Click Backends.
Klik l7-xlb-backend-service (nama layanan backend yang Anda buat untuk contoh ini), lalu klik Edit.
Di halaman Backend service details, klik Advanced configuration.
Untuk Afinitas sesi, pilih jenis afinitas sesi yang Anda inginkan dari menu.
Klik Perbarui.
gcloud
Gunakan perintah gcloud berikut untuk memperbarui 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/[PROJECT_ID]/regions/us-west1/regionBackendServices/l7-xlb-backend-service
{
"sessionAffinity": ["GENERATED_COOKIE" | "HEADER_FIELD" | "HTTP_COOKIE" | "CLIENT_IP" ]
}
Langkah selanjutnya
Untuk mempelajari fitur pengelolaan traffic, baca Ringkasan pengelolaan traffic untuk Load Balancer Aplikasi eksternal regional.
Untuk mengelola resource subnet khusus proxy yang diperlukan oleh Load Balancer Aplikasi eksternal regional, lihat Subnet khusus proxy.
Untuk mempelajari cara memperbarui sertifikat SSL Load Balancer Aplikasi eksternal regional Anda, lihat Menggunakan sertifikat SSL yang dikelola sendiri.