Dokumen ini memberikan petunjuk untuk mengonfigurasi Load Balancer Aplikasi internal regional untuk layanan Anda yang berjalan di VM Compute Engine.
Untuk mengonfigurasi load balancing untuk layanan yang berjalan di Pod Google Kubernetes Engine (GKE), lihat Load balancing berbasis container dengan NEG mandiri dan bagian Melampirkan Load Balancer Aplikasi internal regional ke NEG mandiri.
Untuk mengonfigurasi load balancing guna mengakses Google API dan layanan menggunakan Private Service Connect, lihat Mengonfigurasi Private Service Connect dengan kontrol layanan HTTP(S) konsumen.
Penyiapan untuk Load Balancer Aplikasi internal memiliki dua bagian:
- Lakukan tugas prasyarat, seperti memastikan bahwa akun yang diperlukan memiliki izin yang benar dan menyiapkan jaringan Virtual Private Cloud (VPC).
- Siapkan resource load balancer.
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 jaringan, subnet, dan komponen load balancer | Compute Network Admin (roles/compute.networkAdmin )
|
Menambahkan dan menghapus aturan firewall | Compute Security Admin (roles/compute.securityAdmin )
|
Membuat instance | Compute Instance Admin (roles/compute.instanceAdmin.v1 )
|
Untuk informasi selengkapnya, lihat panduan berikut:
Ringkasan penyiapan
Anda dapat mengonfigurasi Load Balancer Aplikasi internal seperti yang dijelaskan dalam alur konfigurasi tingkat tinggi berikut. Langkah-langkah bernomor mengacu pada angka dalam diagram.
Seperti yang ditunjukkan dalam diagram, contoh ini membuat Load Balancer Aplikasi internal di
jaringan VPC di region us-west1
, dengan satu layanan backend
dan dua grup backend.
Diagram menunjukkan hal berikut:
Jaringan VPC dengan dua subnet:
Satu subnet digunakan untuk backend (grup instance) dan aturan penerusan. 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 internal. Subnet khusus proxy region dibagikan di antara semua Load Balancer Aplikasi internal di region tersebut. Alamat sumber paket yang dikirim dari Load Balancer Aplikasi internal ke backend layanan Anda 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 untuk load balancer berbasis Envoy.
Dua aturan firewall:
- 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.
- Aturan firewall yang mengizinkan alur traffic subnet khusus proxy di jaringan Anda. Artinya, tambahkan satu aturan yang mengizinkan traffic port TCP
Instance VM Compute Engine backend.
Grup instance terkelola atau tidak terkelola untuk deployment VM Compute Engine.
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, konfigurasi resource sertifikat SSL regional. Proxy target menggunakan sertifikat SSL 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 internal load balancer Anda, untuk meneruskan setiap permintaan masuk ke proxy target.
Alamat IP internal yang terkait dengan aturan penerusan dapat berasal dari subnet mana pun di jaringan dan region yang sama. Perhatikan kondisi berikut:
- Alamat IP dapat (tetapi tidak harus) berasal dari subnet yang sama dengan grup instance backend.
- Alamat IP tidak boleh berasal dari subnet khusus proxy yang dicadangkan yang memiliki setelan flag
--purpose
keREGIONAL_MANAGED_PROXY
. - Jika Anda ingin membagikan alamat IP internal dengan beberapa aturan penerusan, tetapkan tanda
--purpose
alamat IP keSHARED_LOADBALANCER_VIP
.
Contoh di halaman ini menggunakan alamat IP internal yang dicadangkan untuk aturan penerusan Load Balancer Aplikasi internal regional, bukan mengizinkan alamat IP internal sementara dialokasikan. Sebagai praktik terbaik, sebaiknya Anda mencadangkan alamat IP untuk aturan penerusan.
Mengonfigurasi jaringan dan subnet
Anda memerlukan jaringan VPC dengan dua subnet: satu untuk backend load balancer dan yang lainnya untuk proxy load balancer. Load Balancer Aplikasi internal 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 VPC, region, dan subnet berikut:
Jaringan. Jaringan ini adalah jaringan VPC mode kustom 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.
Untuk mendemonstrasikan akses global, contoh ini juga membuat VM klien pengujian kedua di region dan subnet yang berbeda:
- Region:
europe-west1
- Subnet:
europe-subnet
, dengan rentang alamat IP utama10.3.4.0/24
Mengonfigurasi jaringan dan subnet
Konsol
Di Trusted Cloud konsol, buka halaman VPC networks.
Klik Create VPC network.
Untuk Name, masukkan
lb-network
.Di bagian Subnets, setel Subnet creation mode ke Custom.
Buat subnet untuk backend load balancer. Di bagian New subnet, masukkan informasi berikut:
- Nama:
backend-subnet
- Region:
us-west1
- Rentang alamat IP:
10.1.2.0/24
- Nama:
Klik Selesai.
Klik Tambahkan subnet.
Buat subnet untuk mendemonstrasikan akses global. Di bagian New subnet, masukkan informasi berikut:
- Nama:
europe-subnet
- Region:
europe-west1
- Rentang alamat IP:
10.3.4.0/24
- Nama:
Klik Selesai.
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
Buat subnet di jaringan
lb-network
di regioneurope-west1
dengan perintahgcloud compute networks subnets create
:gcloud compute networks subnets create europe-subnet \ --network=lb-network \ --range=10.3.4.0/24 \ --region=europe-west1
API
Buat permintaan POST
ke metode networks.insert
.
Ganti PROJECT_ID
dengan project ID Anda.
POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/global/networks { "routingConfig": { "routingMode": "REGIONAL" }, "name": "lb-network", "autoCreateSubnetworks": false }
Buat permintaan POST
ke metode subnetworks.insert
.
Ganti PROJECT_ID
dengan project ID Anda.
POST https://compute.s3nsapis.fr/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", }
Buat permintaan POST
ke metode subnetworks.insert
.
Ganti PROJECT_ID
dengan project ID Anda.
POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/regions/europe-west1/subnetworks { "name": "europe-subnet", "network": "projects/PROJECT_ID/global/networks/lb-network", "ipCidrRange": "10.3.4.0/24", "region": "projects/PROJECT_ID/regions/europe-west1", }
Konfigurasi subnet khusus proxy
Subnet khusus proxy ini ditujukan untuk semua load balancer berbasis Envoy regional di region us-west1
dari lb-network
.
Konsol
Jika menggunakan konsol Trusted Cloud , Anda dapat menunggu dan membuat subnet khusus proxy nanti di halaman Load balancing.
Jika Anda ingin membuat subnet khusus proxy sekarang, ikuti langkah-langkah berikut:
Di Trusted Cloud konsol, buka halaman VPC networks.
Klik nama jaringan VPC:
lb-network
.Klik Tambahkan subnet.
Untuk Name, masukkan
proxy-only-subnet
.Untuk Region, pilih
us-west1
.Tetapkan Purpose 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
API
Buat subnet khusus proxy dengan
metode subnetworks.insert
,
dengan mengganti PROJECT_ID
dengan project ID Anda.
POST https://compute.s3nsapis.fr/compute/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-ssh
. Aturan ingress, yang berlaku untuk instance yang di-load balance, yang memungkinkan konektivitas SSH yang masuk pada TCP port22
dari alamat mana pun. Anda dapat memilih rentang IP sumber yang lebih ketat untuk aturan ini; misalnya, Anda dapat menentukan hanya rentang IP sistem tempat Anda memulai sesi SSH. Contoh ini menggunakan tag targetallow-ssh
untuk mengidentifikasi VM yang menerapkan aturan firewall.fw-allow-health-check
. Aturan ingress, yang berlaku untuk instance yang di-load balance, yang mengizinkan semua traffic TCP dari sistem health check Trusted 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 internal. 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.
Target tag menentukan instance backend. Tanpa tag target, aturan firewall 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 backend grup instance VM terkelola.
Konsol
Di konsol Trusted Cloud , buka halaman Firewall policies.
Klik Create firewall rule untuk membuat aturan yang mengizinkan koneksi SSH yang masuk:
- Nama:
fw-allow-ssh
- Jaringan:
lb-network
- Direction of traffic: Ingress
- Tindakan terhadap kecocokan: Izinkan
- Targets: Tag target yang ditentukan
- Tag target:
allow-ssh
- Filter sumber: Rentang IPv4
- Rentang IPv4 sumber:
0.0.0.0/0
- Protokol dan port:
- Pilih Specified protocols and ports.
- Pilih kotak centang TCP, lalu masukkan
22
untuk nomor port.
- Nama:
Klik Buat.
Klik Create firewall rule untuk kedua kalinya guna membuat aturan yang mengizinkan Trusted Cloud health check:
- Nama:
fw-allow-health-check
- Jaringan:
lb-network
- Direction of traffic: Ingress
- Tindakan terhadap 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 pada protokol dan port yang cocok dengan yang digunakan oleh health check Anda. Jika Anda menggunakantcp:80
untuk protokol dan port, Trusted Cloud dapat menggunakan HTTP di port80
untuk menghubungi VM Anda, tetapi tidak dapat menggunakan HTTPS di port443
untuk menghubungi VM.
- Nama:
Klik Buat.
Klik Create firewall rule untuk ketiga kalinya guna membuat aturan yang mengizinkan server proxy load balancer terhubung ke backend:
- Nama:
fw-allow-proxies
- Jaringan:
lb-network
- Direction of traffic: Ingress
- Tindakan terhadap 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.
- Nama:
Klik Buat.
gcloud
Buat aturan firewall
fw-allow-ssh
untuk mengizinkan konektivitas SSH ke VM dengan tag jaringanallow-ssh
. Jika Anda menghapussource-ranges
, Trusted Cloud akan menafsirkan aturan sebagai sumber apa pun.gcloud compute firewall-rules create fw-allow-ssh \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22
Buat aturan
fw-allow-health-check
untuk mengizinkan health check Trusted 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 internal terhubung ke backend Anda. Tetapkansource-ranges
ke rentang yang dialokasikan dari 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
API
Buat aturan firewall fw-allow-ssh
dengan membuat permintaan POST
ke
metode firewalls.insert
,
ganti PROJECT_ID
dengan project ID Anda.
POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/global/firewalls { "name": "fw-allow-ssh", "network": "projects/PROJECT_ID/global/networks/lb-network", "sourceRanges": [ "0.0.0.0/0" ], "targetTags": [ "allow-ssh" ], "allowed": [ { "IPProtocol": "tcp", "ports": [ "22" ] } ], "direction": "INGRESS" }
Buat aturan firewall fw-allow-health-check
dengan membuat permintaan POST
ke
metode firewalls.insert
,
ganti PROJECT_ID
dengan project ID Anda.
POST https://compute.s3nsapis.fr/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.s3nsapis.fr/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" }
Mencadangkan alamat IP load balancer
Secara default, satu alamat IP digunakan untuk setiap aturan penerusan. Anda dapat mencadangkan alamat IP bersama, yang memungkinkan Anda menggunakan alamat IP yang sama dengan beberapa aturan penerusan. Namun, jika Anda ingin memublikasikan load balancer menggunakan Private Service Connect, jangan gunakan alamat IP bersama untuk aturan penerusan.
Untuk alamat IP aturan penerusan, gunakan backend-subnet
. Jika Anda
mencoba menggunakan subnet
khusus proxy, pembuatan aturan
penerusan akan gagal.
Konsol
Anda dapat mencadangkan alamat IP internal mandiri menggunakan konsolTrusted Cloud .
- Buka halaman VPC networks.
- Klik jaringan yang digunakan untuk mengonfigurasi konektivitas hibrida antara lingkungan.
- Klik Static internal IP addresses, lalu klik Reserve static address.
- Untuk Name, masukkan
l7-ilb-ip-address
. - Untuk Subnet, pilih
backend-subnet
. - Jika Anda ingin menentukan alamat IP yang akan dicadangkan, di bagian Static IP address, pilih Let me choose, lalu isi Custom IP address. Jika tidak, sistem akan otomatis menetapkan alamat IP di subnet untuk Anda.
- Jika Anda ingin menggunakan alamat IP ini dengan beberapa aturan penerusan, di bagian Purpose, pilih Shared.
- Klik Pesan untuk menyelesaikan proses.
gcloud
Menggunakan gcloud CLI, jalankan perintah
gcloud compute addresses create
:gcloud compute addresses create l7-ilb-ip-address \ --region=us-west1 \ --subnet=backend-subnet
Jika Anda ingin menggunakan alamat IP yang sama dengan beberapa aturan penerusan, tentukan
--purpose=SHARED_LOADBALANCER_VIP
.Gunakan perintah
gcloud compute addresses describe
untuk melihat alamat IP yang dialokasikan:gcloud compute addresses describe l7-ilb-ip-address \ --region=us-west1
Membuat backend grup instance VM terkelola
Bagian ini menunjukkan cara membuat template grup instance dan grup instance terkelola. Grup instance terkelola menyediakan instance VM yang menjalankan server backend contoh Load Balancer Aplikasi internal regional. Untuk grup instance, Anda dapat menentukan layanan HTTP dan memetakan nama port ke port yang relevan. Layanan backend load balancer meneruskan traffic ke port bernama. Traffic dari klien di-load balance ke server backend. Untuk tujuan demonstrasi, backend akan menyajikan nama host-nya sendiri.
Konsol
Membuat template instance. Di konsol Trusted Cloud , buka halaman Instance templates.
Buka halaman Template instance
- Klik Create instance template.
- Untuk Name, masukkan
l7-ilb-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, lalu konfigurasi kolom berikut:
- Untuk Tag jaringan, masukkan
allow-ssh
danload-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 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 Buat.
Membuat grup instance terkelola. Di konsol Trusted Cloud , buka halaman Instance groups.
- Klik Create instance group.
- Pilih New managed instance group (stateless). Untuk mengetahui informasi selengkapnya, lihat MIG stateless atau stateful.
- Untuk Name, masukkan
l7-ilb-backend-example
. - Untuk Location, pilih Single zone.
- Untuk Region, pilih
us-west1
. - Untuk Zone, pilih
us-west1-a
. - Untuk Instance template, pilih
l7-ilb-backend-template
. Tentukan jumlah instance yang ingin Anda buat dalam grup.
Untuk contoh ini, tentukan opsi berikut di bagian Penskalaan otomatis:
- Untuk Autoscaling mode, pilih
Off:do not autoscale
. - Untuk Maximum number of instances, masukkan
2
.
Secara opsional, di bagian Autoscaling pada UI, Anda dapat mengonfigurasi grup instance untuk menambahkan atau menghapus instance secara otomatisberdasarkan penggunaan CPU instance.
- Untuk Autoscaling mode, pilih
Klik Buat.
gcloud
Petunjuk gcloud
dalam panduan ini mengasumsikan bahwa Anda menggunakan Cloud Shell atau lingkungan lain dengan bash yang terinstal.
Buat template instance VM dengan server HTTP menggunakan perintah
gcloud compute instance-templates create
.gcloud compute instance-templates create l7-ilb-backend-template \ --region=us-west1 \ --network=lb-network \ --subnet=backend-subnet \ --tags=allow-ssh,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-ilb-backend-example \ --zone=us-west1-a \ --size=2 \ --template=l7-ilb-backend-template
API
Buat template instance dengan metode
instanceTemplates.insert
, ganti PROJECT_ID
dengan project ID Anda.
POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/global/instanceTemplates { "name":"l7-ilb-backend-template", "properties":{ "machineType":"e2-standard-2", "tags":{ "items":[ "allow-ssh", "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\n vm_hostname=\"$(curl -H \"Metadata-Flavor:Google\" \\\nhttp://metadata.google.internal/computeMetadata/v1/instance/name)\"\n echo \"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
, ganti PROJECT_ID
dengan project ID Anda.
POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/{zone}/instanceGroupManagers { "name": "l7-ilb-backend-example", "zone": "projects/PROJECT_ID/zones/us-west1-a", "instanceTemplate": "projects/PROJECT_ID/global/instanceTemplates/l7-ilb-backend-template", "baseInstanceName": "l7-ilb-backend-example", "targetSize": 2 }
Mengonfigurasi load balancer
Contoh ini menunjukkan cara membuat resource Load Balancer Aplikasi internal 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, Trusted Cloud region tidak memiliki kapasitas proxy yang cukup untuk load balancer baru. Jika hal ini terjadi, konsol Trusted Cloud 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. Hal ini dapat menjadi opsi 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
Pilih jenis load balancer
Di konsol Trusted 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 Internal, lalu klik Next.
- Untuk Cross-region or single region deployment, pilih Best for regional workloads, lalu klik Next.
- Klik Configure.
Konfigurasi dasar
- Untuk Name load balancer, masukkan
l7-ilb-map
. - Untuk Region, pilih
us-west1
. - Untuk Network, pilih
lb-network
.
Mereservasi subnet khusus proxy
Mereservasi subnet khusus proxy:
- Klik Reserve a Subnet.
- Untuk Name, masukkan
proxy-only-subnet
. - Untuk Rentang alamat IP, masukkan
10.129.0.0/23
. - Klik Tambahkan.
Mengonfigurasi layanan backend
- Klik Backend configuration.
- Dari menu Create or select backend services, pilih Create a backend service.
- Tetapkan nama layanan backend ke
l7-ilb-backend-service
. - Tetapkan Backend type ke Instance group.
- Di bagian New backend:
- Setel Instance group ke
l7-ilb-backend-example
. - Setel Transfer nomor ke
80
. - Tetapkan Balancing mode ke Utilization.
- Klik Selesai.
- Setel Instance group ke
- Dari daftar Health check, klik Create a health check dengan
parameter berikut:
- Nama:
l7-ilb-basic-check
- Protokol:
HTTP
- Port:
80
- Klik Simpan.
- Nama:
- Klik Buat.
Mengonfigurasi peta URL
Klik Host and path rules.
Untuk Mode, pilih Simple host and path rule.
Pastikan
l7-ilb-backend-service
adalah satu-satunya layanan backend untuk semua host dan jalur yang tidak cocok.
Untuk informasi tentang pengelolaan traffic, lihat Menyiapkan pengelolaan traffic.
Mengonfigurasi frontend
Untuk HTTP:
- Klik Frontend configuration.
- Tetapkan nama aturan penerusan ke
l7-ilb-forwarding-rule
. - Tetapkan Protocol ke
HTTP
. - Tetapkan Subnetwork ke
backend-subnet
. - Tetapkan Port ke
80
. - Dari daftar IP address, pilih
l7-ilb-ip-address
. - Klik Selesai.
Untuk HTTPS:
- Klik Frontend configuration.
- Tetapkan nama aturan penerusan ke
l7-ilb-forwarding-rule
. - Tetapkan Protocol ke
HTTPS (includes HTTP/2)
. - Tetapkan Subnetwork ke
backend-subnet
. - Pastikan Port ditetapkan ke
443
untuk mengizinkan traffic HTTPS. - Dari daftar IP address, pilih
l7-ilb-ip-address
. - Klik menu drop-down Certificate.
- Jika Anda sudah memiliki resource sertifikat SSL yang dikelola sendiri yang ingin digunakan sebagai sertifikat SSL utama, pilih sertifikat tersebut dari daftar.
- Jika tidak, pilih Create a new certificate.
- Tetapkan nama sertifikat ke
l7-ilb-cert
. - Di kolom yang sesuai, upload file berformat PEM:
- Sertifikat kunci publik
- Rantai sertifikat
- Kunci pribadi
- Klik Create.
- Tetapkan nama sertifikat ke
- Untuk menambahkan resource sertifikat selain
resource sertifikat SSL utama:
- Klik Add certificate.
- Pilih sertifikat dari daftar Certificates, atau klik Create a new certificate, lalu ikuti petunjuknya.
Pilih kebijakan SSL dari daftar Kebijakan SSL. Sebagai opsi, 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 yang 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 Trusted Cloud default akan diterapkan.
Klik Selesai.
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 Buat.
gcloud
Tentukan health check HTTP dengan perintah
gcloud compute health-checks create http
.gcloud compute health-checks create http l7-ilb-basic-check \ --region=us-west1 \ --use-serving-port
Tentukan layanan backend dengan perintah
gcloud compute backend-services create
.gcloud compute backend-services create l7-ilb-backend-service \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTP \ --health-checks=l7-ilb-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-ilb-backend-service \ --balancing-mode=UTILIZATION \ --instance-group=l7-ilb-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 l7-ilb-map \ --default-service=l7-ilb-backend-service \ --region=us-west1
Buat proxy target.
Untuk HTTP:
Untuk load balancer HTTP internal, buat proxy target dengan perintah
gcloud compute target-http-proxies create
.gcloud compute target-http-proxies create l7-ilb-proxy \ --url-map=l7-ilb-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 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 yang dikelola Google regional. Peta sertifikat tidak didukung.
Jenis sertifikat regional yang dikelola Google berikut didukung oleh Certificate Manager:
- Sertifikat yang dikelola Google regional dengan otorisasi DNS per project. Untuk mengetahui informasi selengkapnya, lihat Men-deploy sertifikat yang dikelola Google regional dengan otorisasi DNS.
- Sertifikat regional yang dikelola Google (pribadi) dengan Certificate Authority Service. Untuk mengetahui informasi selengkapnya, lihat Men-deploy sertifikat yang dikelola Google regional dengan Certificate Authority Service.
Setelah membuat sertifikat, lampirkan sertifikat langsung ke proxy target.
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-ilb-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-ilb-proxy \ --url-map=l7-ilb-map \ --region=us-west1 \ --ssl-certificates=l7-ilb-cert
Membuat aturan penerusan.
Untuk jaringan kustom, Anda harus mereferensikan subnet dalam aturan penerusan. Perhatikan bahwa ini adalah subnet VM, bukan subnet proxy.
Untuk HTTP:
Gunakan perintah
gcloud compute forwarding-rules create
dengan flag yang benar.gcloud compute forwarding-rules create l7-ilb-forwarding-rule \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=lb-network \ --subnet=backend-subnet \ --address=l7-ilb-ip-address \ --ports=80 \ --region=us-west1 \ --target-http-proxy=l7-ilb-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-ilb-forwarding-rule \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=lb-network \ --subnet=backend-subnet \ --address=l7-ilb-ip-address \ --ports=443 \ --region=us-west1 \ --target-https-proxy=l7-ilb-proxy \ --target-https-proxy-region=us-west1
API
Buat health check dengan membuat permintaan POST
ke metode regionHealthChecks.insert
, dengan mengganti PROJECT_ID
dengan project ID Anda.
POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/regions/{region}/healthChecks { "name": "l7-ilb-basic-check", "type": "HTTP", "httpHealthCheck": { "portSpecification": "USE_SERVING_PORT" } }
Buat layanan backend regional dengan membuat permintaan POST
ke
metode
regionBackendServices.insert
, ganti PROJECT_ID
dengan project ID Anda.
POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices { "name": "l7-ilb-backend-service", "backends": [ { "group": "projects/PROJECT_ID/zones/us-west1-a/instanceGroups/l7-ilb-backend-example", "balancingMode": "UTILIZATION" } ], "healthChecks": [ "projects/PROJECT_ID/regions/us-west1/healthChecks/l7-ilb-basic-check" ], "loadBalancingScheme": "INTERNAL_MANAGED" }
Buat peta URL dengan membuat permintaan POST
ke metode
regionUrlMaps.insert
, dengan mengganti PROJECT_ID
dengan project ID Anda.
POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/regions/us-west1/urlMaps { "name": "l7-ilb-map", "defaultService": "projects/PROJECT_ID/regions/us-west1/backendServices/l7-ilb-backend-service" }
Untuk HTTP:
Buat proxy HTTP target dengan membuat permintaan POST
ke
metode
regionTargetHttpProxies.insert
, dengan mengganti PROJECT_ID
dengan ID project Anda.
POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/regions/us-west1/targetHttpProxy { "name": "l7-ilb-proxy", "urlMap": "projects/PROJECT_ID/global/urlMaps/l7-ilb-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.s3nsapis.fr/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules { "name": "l7-ilb-forwarding-rule", "IPAddress": "IP_ADDRESS", "IPProtocol": "TCP", "portRange": "80-80", "target": "projects/PROJECT_ID/regions/us-west1/targetHttpProxies/l7-ilb-proxy", "loadBalancingScheme": "INTERNAL_MANAGED", "subnetwork": "projects/PROJECT_ID/regions/us-west1/subnetworks/backend-subnet", "network": "projects/PROJECT_ID/global/networks/lb-network", "networkTier": "PREMIUM" }
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 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 yang dikelola Google regional. Peta sertifikat tidak didukung.
Jenis sertifikat regional yang dikelola Google berikut didukung oleh Certificate Manager:
- Sertifikat yang dikelola Google regional dengan otorisasi DNS per project. Untuk mengetahui informasi selengkapnya, lihat Men-deploy sertifikat yang dikelola Google regional dengan otorisasi DNS.
- Sertifikat regional yang dikelola Google (pribadi) dengan Certificate Authority Service. Untuk mengetahui informasi selengkapnya, lihat Men-deploy sertifikat yang dikelola Google regional dengan Certificate Authority Service.
Setelah membuat sertifikat, lampirkan sertifikat langsung ke proxy target.
Baca file sertifikat dan kunci pribadi, lalu buat sertifikat SSL. Contoh berikut menunjukkan cara melakukannya dengan Python.
Buat proxy HTTPS target dengan membuat permintaan POST
ke metode
regionTargetHttpsProxies.insert
, mengganti PROJECT_ID
dengan ID project Anda.
POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/regions/us-west1/regionTargetHttpsProxy { "name": "l7-ilb-proxy", "urlMap": "projects/PROJECT_ID/regions/us-west1/urlMaps/l7-ilb-map", "sslCertificates": /projects/PROJECT_ID/regions/us-west1/sslCertificates/SSL_CERT_NAME }
Buat aturan penerusan dengan membuat permintaan POST
ke metode
forwardingRules.insert
, dengan mengganti PROJECT_ID
dengan project ID Anda.
POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules { "name": "l7-ilb-forwarding-rule", "IPAddress": "IP_ADDRESS", "IPProtocol": "TCP", "portRange": "80-80", "target": "projects/PROJECT_ID/regions/us-west1/targetHttpsProxies/l7-ilb-proxy", "loadBalancingScheme": "INTERNAL_MANAGED", "subnetwork": "projects/PROJECT_ID/regions/us-west1/subnetworks/backend-subnet", "network": "projects/PROJECT_ID/global/networks/lb-network", "networkTier": "PREMIUM", }
Menguji load balancer
Untuk menguji load balancer, buat VM klien. Kemudian, buat sesi SSH dengan VM dan kirim traffic dari VM ke load balancer.
Membuat instance VM untuk menguji konektivitas
Konsol
Di konsol Trusted Cloud , buka halaman VM instances.
Klik Create instance.
Setel Nama ke
l7-ilb-client-us-west1-a
.Setel Zona ke
us-west1-a
.Klik Advanced options.
Klik Networking dan konfigurasi kolom berikut:
- Untuk Network tags, masukkan
allow-ssh
. - Untuk Network interfaces, pilih opsi berikut:
- Jaringan:
lb-network
- Subnet:
backend-subnet
- Jaringan:
- Untuk Network tags, masukkan
Klik Buat.
gcloud
gcloud compute instances create l7-ilb-client-us-west1-a \ --image-family=debian-12 \ --image-project=debian-cloud \ --network=lb-network \ --subnet=backend-subnet \ --zone=us-west1-a \ --tags=allow-ssh
Mengirim traffic ke load balancer
Login ke instance yang baru saja Anda buat dan uji apakah layanan HTTP(S) di backend dapat dijangkau dengan menggunakan alamat IP aturan penerusan Load Balancer Aplikasi internal regional, dan traffic di-load balance di seluruh instance backend.
Menghubungkan menggunakan SSH ke setiap instance klien
gcloud compute ssh l7-ilb-client-us-west1-a \ --zone=us-west1-a
Dapatkan alamat IP load balancer
Gunakan perintah gcloud compute addresses describe
untuk melihat alamat IP yang dialokasikan:
gcloud compute addresses describe l7-ilb-ip-address \ --region=us-west1
Verifikasi bahwa alamat IP menyalurkan nama host-nya
Ganti IP_ADDRESS dengan alamat IP load balancer.
Untuk pengujian HTTP:
curl IP_ADDRESS
Untuk pengujian HTTPS:
curl -k -s 'https://DOMAIN_NAME:443' --connect-to DOMAIN_NAME:443:IP_ADDRESS:443
Ganti DOMAIN_NAME dengan nama domain aplikasi Anda, misalnya, test.example.com
.
Flag -k
menyebabkan curl melewati validasi sertifikat.
Jalankan 100 permintaan dan pastikan semuanya di-load balance
Ganti IP_ADDRESS dengan alamat IP load balancer.
Untuk HTTP:
{ RESULTS= for i in {1..100} do RESULTS="$RESULTS:$(curl --silent IP_ADDRESS)" done echo "***" echo "*** Results of load-balancing: " echo "***" echo "$RESULTS" | tr ':' '\n' | grep -Ev "^$" | sort | uniq -c echo }
Untuk HTTPS:
Ganti DOMAIN_NAME dengan nama domain aplikasi Anda, misalnya, test.example.com
.
{ RESULTS= for i in {1..100} do RESULTS="$RESULTS:$(curl -k -s 'https://DOMAIN_NAME:443' --connect-to DOMAIN_NAME:443:IP_ADDRESS:443)" done echo "***" echo "*** Results of load-balancing: " echo "***" echo "$RESULTS" | tr ':' '\n' | grep -Ev "^$" | sort | uniq -c echo }
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 akses global
Anda dapat mengaktifkan akses global
untuk Load Balancer Aplikasi internal Regional dan Load Balancer Jaringan proxy internal Regional agar dapat diakses oleh klien di semua region. Backend load balancer contoh Anda harus tetap berada di satu region (us-west1
).
Anda tidak dapat mengubah aturan penerusan regional yang ada untuk mengaktifkan akses global. Anda harus membuat aturan penerusan baru untuk tujuan ini dan menghapus aturan penerusan sebelumnya. Selain itu, setelah aturan penerusan dibuat dengan akses global diaktifkan, aturan tersebut tidak dapat diubah. Untuk menonaktifkan akses global, Anda harus membuat aturan penerusan akses regional baru dan menghapus aturan penerusan akses global sebelumnya.
Untuk mengonfigurasi akses global, lakukan perubahan konfigurasi berikut.
Konsol
Buat aturan penerusan baru untuk load balancer:
Di konsol Trusted Cloud , buka halaman Load balancing.
Di kolom Name, klik load balancer Anda.
Klik Frontend configuration.
Klik Add frontend IP and port.
Masukkan nama dan detail subnet untuk aturan penerusan baru.
Untuk Subnetwork, pilih backend-subnet.
Untuk Alamat IP, Anda dapat memilih alamat IP yang sama dengan aturan penerusan yang ada, mencadangkan alamat IP baru, atau menggunakan alamat IP sementara. Berbagi alamat IP yang sama di beberapa aturan penerusan hanya dapat dilakukan jika Anda menetapkan tanda
--purpose
alamat IP keSHARED_LOADBALANCER_VIP
saat membuat alamat IP.Untuk Port number, masukkan
110
.Untuk Global access, pilih Enable.
Klik Selesai.
Klik Perbarui.
gcloud
Buat aturan penerusan baru untuk load balancer dengan flag
--allow-global-access
.Untuk HTTP:
gcloud compute forwarding-rules create l7-ilb-forwarding-rule-global-access \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=lb-network \ --subnet=backend-subnet \ --address=10.1.2.99 \ --ports=80 \ --region=us-west1 \ --target-http-proxy=l7-ilb-proxy \ --target-http-proxy-region=us-west1 \ --allow-global-access
Untuk HTTPS:
gcloud compute forwarding-rules create l7-ilb-forwarding-rule-global-access \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=lb-network \ --subnet=backend-subnet \ --address=10.1.2.99 \ --ports=443 \ --region=us-west1 \ --target-https-proxy=l7-ilb-proxy \ --target-https-proxy-region=us-west1 \ --allow-global-access
Anda dapat menggunakan perintah
gcloud compute forwarding-rules describe
untuk menentukan apakah aturan penerusan mengaktifkan akses global. Misalnya:gcloud compute forwarding-rules describe l7-ilb-forwarding-rule-global-access \ --region=us-west1 \ --format="get(name,region,allowGlobalAccess)"
Jika akses global diaktifkan, kata
True
akan muncul di output setelah nama dan wilayah aturan penerusan.
Membuat VM klien untuk menguji akses global
Konsol
Di konsol Trusted Cloud , buka halaman VM instances.
Klik Create instance.
Setel Nama ke
europe-client-vm
.Setel Zona ke
europe-west1-b
.Klik Advanced options.
Klik Networking dan konfigurasi kolom berikut:
- Untuk Network tags, masukkan
allow-ssh
. - Untuk Network interfaces, pilih opsi berikut:
- Jaringan:
lb-network
- Subnet:
europe-subnet
- Jaringan:
- Untuk Network tags, masukkan
Klik Buat.
gcloud
Buat VM klien di zona europe-west1-b
.
gcloud compute instances create europe-client-vm \ --zone=europe-west1-b \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh \ --subnet=europe-subnet
Hubungkan ke klien VM dan uji konektivitas
Gunakan
ssh
untuk terhubung ke instance klien.gcloud compute ssh europe-client-vm \ --zone=europe-west1-b
Uji koneksi ke load balancer seperti yang Anda lakukan dari
vm-client
di regionus-west1
.curl http://10.1.2.99
Mengaktifkan afinitas sesi
Prosedur ini menunjukkan cara mengupdate layanan backend untuk contoh Load Balancer Aplikasi internal regional atau Load Balancer Aplikasi internal lintas region sehingga layanan backend menggunakan afinitas cookie yang dihasilkan, afinitas kolom header, atau afinitas cookie HTTP.
Jika afinitas berbasis cookie diaktifkan, load balancer akan mengeluarkan cookie
pada permintaan pertama. Untuk setiap permintaan berikutnya dengan cookie yang sama, load balancer mengarahkan permintaan ke instance atau endpoint mesin virtual (VM) backend yang sama. Dalam contoh ini, cookie diberi nama GCILB
.
Jika afinitas kolom header diaktifkan, load balancer akan merutekan permintaan ke VM atau endpoint backend dalam grup endpoint jaringan (NEG) berdasarkan nilai header HTTP yang diberi nama dalam 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
endpoint atau VM 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 Trusted Cloud , buka halaman Load balancing.
- Klik Backend.
- Klik l7-ilb-backend-service (nama layanan backend yang Anda buat untuk contoh ini) lalu klik Edit.
- Di halaman Backend service details, klik Advanced configuration.
- Di bagian Afinitas sesi, pilih jenis afinitas sesi yang Anda inginkan.
- Klik Perbarui.
gcloud
Gunakan perintah Google Cloud CLI berikut untuk mengupdate layanan backend ke berbagai jenis afinitas sesi:
gcloud compute backend-services update l7-ilb-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 backendServices/patch
.
PATCH https://compute.s3nsapis.fr/compute/v1/projects/[PROJECT_ID]/regions/us-west1/regionBackendServices/l7-ilb-backend-service { "sessionAffinity": ["GENERATED_COOKIE" | "HEADER_FIELD" | "HTTP_COOKIE" | "CLIENT_IP" ] }
Membatasi klien yang dapat mengirim traffic ke load balancer
Anda dapat membatasi klien agar tidak terhubung ke VIP aturan penerusan Load Balancer Aplikasi internal dengan mengonfigurasi aturan firewall keluar pada klien ini. Tetapkan aturan firewall ini di VM klien tertentu berdasarkan akun layanan atau tag.
Anda tidak dapat menggunakan aturan firewall untuk membatasi traffic masuk ke VIP aturan penerusan Load Balancer Aplikasi internal tertentu. Klien mana pun di jaringan VPC yang sama dan di region yang sama dengan VIP aturan penerusan umumnya dapat mengirim traffic ke VIP aturan penerusan.
Selain itu, semua permintaan ke backend berasal dari proxy yang menggunakan alamat IP dalam rentang subnet khusus proxy. Aturan firewall yang mengizinkan atau menolak traffic ingress di backend ini berdasarkan VIP aturan penerusan yang digunakan oleh klien tidak dapat dibuat.
Berikut beberapa contoh cara menggunakan aturan firewall keluar untuk membatasi traffic ke VIP aturan penerusan load balancer.
Konsol
Untuk mengidentifikasi VM klien, beri tag pada
VM tertentu yang ingin Anda batasi. Tag ini digunakan untuk mengaitkan aturan firewall dengan
VM klien yang diberi tag. Kemudian, tambahkan tag ke kolom TARGET_TAG
pada langkah-langkah berikut.
Gunakan satu aturan firewall atau beberapa aturan untuk menyiapkannya.
Aturan firewall keluar tunggal
Anda dapat mengonfigurasi satu aturan keluar firewall untuk menolak semua traffic keluar yang berasal dari VM klien yang diberi tag ke VIP load balancer.
Di konsol Trusted Cloud , buka halaman Firewall rules.
Klik Create firewall rule untuk membuat aturan yang menolak traffic keluar dari VM klien yang diberi tag ke VIP load balancer.
- Nama:
fr-deny-access
- Jaringan:
lb-network
- Prioritas:
100
- Direction of traffic: Egress
- Tindakan terhadap kecocokan: Tolak
- Targets: Tag target yang ditentukan
- Tag target:
TARGET_TAG
- Filter tujuan: Rentang IP
- Rentang IP tujuan:
10.1.2.99
- Protokol dan port:
- Pilih Specified protocols and ports.
- Pilih kotak centang tcp, lalu masukkan
80
untuk nomor port.
- Nama:
Klik Buat.
Beberapa aturan firewall keluar
Pendekatan yang lebih skalabel melibatkan penetapan dua aturan. Aturan default berprioritas rendah yang membatasi semua klien mengakses VIP load balancer. Aturan kedua dengan prioritas lebih tinggi yang mengizinkan subset klien yang diberi tag untuk mengakses VIP load balancer. Hanya VM yang diberi tag yang dapat mengakses VIP.
Di konsol Trusted Cloud , buka halaman Firewall rules.
Klik Create firewall rule untuk membuat aturan prioritas yang lebih rendah guna menolak akses secara default:
- Nama:
fr-deny-all-access-low-priority
- Jaringan:
lb-network
- Prioritas:
200
- Direction of traffic: Egress
- Tindakan terhadap kecocokan: Tolak
- Targets: Tag target yang ditentukan
- Tag target:
TARGET_TAG
- Filter tujuan: Rentang IP
- Rentang IP tujuan:
10.1.2.99
- Protokol dan port:
- Pilih Specified protocols and ports.
- Pilih kotak centang TCP, lalu masukkan
80
untuk nomor port.
- Nama:
Klik Buat.
Klik Create firewall rule untuk membuat aturan prioritas yang lebih tinggi guna mengizinkan traffic dari instance tertentu yang diberi tag.
- Nama:
fr-allow-some-access-high-priority
- Jaringan:
lb-network
- Prioritas:
100
- Direction of traffic: Egress
- Tindakan terhadap kecocokan: Izinkan
- Targets: Tag target yang ditentukan
- Tag target:
TARGET_TAG
- Filter tujuan: Rentang IP
- Rentang IP tujuan:
10.1.2.99
- Protokol dan port:
- Pilih Specified protocols and ports.
- Pilih kotak centang TCP, lalu masukkan
80
untuk nomor port.
- Nama:
Klik Buat.
gcloud
Untuk mengidentifikasi VM klien, beri tag pada
VM tertentu yang ingin Anda batasi. Kemudian, tambahkan tag ke kolom TARGET_TAG
dalam langkah-langkah ini.
Gunakan satu aturan firewall atau beberapa aturan untuk menyiapkannya.
Aturan firewall keluar tunggal
Anda dapat mengonfigurasi satu aturan keluar firewall untuk menolak semua traffic keluar yang berasal dari VM klien yang diberi tag ke VIP load balancer.
gcloud compute firewall-rules create fr-deny-access \ --network=lb-network \ --action=deny \ --direction=egress \ --rules=tcp \ --priority=100 \ --destination-ranges=10.1.2.99 \ --target-tags=TARGET_TAG
Beberapa aturan firewall keluar
Pendekatan yang lebih skalabel melibatkan penetapan dua aturan: aturan default berprioritas rendah yang membatasi semua klien agar tidak mengakses VIP load balancer, dan aturan kedua berprioritas lebih tinggi yang mengizinkan subset klien yang diberi tag untuk mengakses VIP load balancer. Hanya VM yang diberi tag yang dapat mengakses VIP.
Buat aturan berprioritas lebih rendah:
gcloud compute firewall-rules create fr-deny-all-access-low-priority \ --network=lb-network \ --action=deny \ --direction=egress \ --rules=tcp \ --priority=200 \ --destination-ranges=10.1.2.99
Buat aturan prioritas yang lebih tinggi:
gcloud compute firewall-rules create fr-allow-some-access-high-priority \ --network=lb-network \ --action=allow \ --direction=egress \ --rules=tcp \ --priority=100 \ --destination-ranges=10.1.2.99 \ --target-tags=TARGET_TAG
Untuk menggunakan akun layanan, bukan tag, guna mengontrol akses, gunakan
opsi --target-service-accounts
, bukan flag --target-tags
saat membuat aturan firewall.
Menskalakan akses terbatas ke backend Load Balancer Aplikasi internal berdasarkan subnet
Mempertahankan aturan firewall terpisah atau menambahkan alamat IP yang di-load balance baru ke aturan yang ada seperti yang dijelaskan di bagian sebelumnya menjadi tidak praktis seiring bertambahnya jumlah aturan penerusan. Salah satu cara untuk mencegah hal ini adalah dengan mengalokasikan alamat IP aturan penerusan dari subnet yang dicadangkan. Kemudian, traffic dari instance atau akun layanan yang diberi tag dapat diizinkan atau diblokir dengan menggunakan subnet yang dicadangkan sebagai rentang tujuan untuk aturan firewall. Dengan begitu, Anda dapat mengontrol akses ke grup VIP aturan penerusan secara efektif tanpa harus mempertahankan aturan traffic keluar firewall per-VIP.
Berikut adalah langkah-langkah umum untuk menyiapkannya, dengan asumsi bahwa Anda akan membuat semua resource load balancer lain yang diperlukan secara terpisah.
gcloud
Buat subnet regional yang akan digunakan untuk mengalokasikan alamat IP yang di-load balance untuk aturan penerusan:
gcloud compute networks subnets create l7-ilb-restricted-subnet \ --network=lb-network \ --region=us-west1 \ --range=10.127.0.0/24
Buat aturan penerusan yang mengambil alamat dari subnet. Contoh berikut menggunakan alamat
10.127.0.1
dari subnet yang dibuat pada langkah sebelumnya.gcloud compute forwarding-rules create l7-ilb-forwarding-rule-restricted \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=lb-network \ --subnet=l7-ilb-restricted-subnet \ --address=10.127.0.1 \ --ports=80 \ --region=us-west1 \ --target-http-proxy=l7-ilb-proxy \ --target-http-proxy-region=us-west1
Buat aturan firewall untuk membatasi traffic yang ditujukan ke rentang alamat IP di subnet aturan penerusan (
l7-ilb-restricted-subnet
):gcloud compute firewall-rules create restrict-traffic-to-subnet \ --network=lb-network \ --action=deny \ --direction=egress \ --rules=tcp:80 \ --priority=100 \ --destination-ranges=10.127.0.0/24 \ --target-tags=TARGET_TAG
Mengonfigurasi subset backend
Subsetting backend meningkatkan performa dan skalabilitas dengan menetapkan subset backend ke setiap instance proxy. Jika diaktifkan untuk layanan backend, subset backend akan menyesuaikan jumlah backend yang digunakan oleh setiap instance proxy sebagai berikut:
Seiring bertambahnya jumlah instance proxy yang berpartisipasi dalam load balancer, ukuran subset akan berkurang.
Jika jumlah total backend dalam jaringan melebihi kapasitas satu instance proxy, ukuran subset akan otomatis dikurangi untuk setiap layanan yang mengaktifkan subset backend.
Contoh ini menunjukkan cara membuat resource Load Balancer Aplikasi internal regional dan mengaktifkan subset backend:
- Gunakan contoh konfigurasi
untuk membuat layanan backend regional
l7-ilb-backend-service
. Aktifkan subset backend dengan menentukan flag
--subsetting-policy
sebagaiCONSISTENT_HASH_SUBSETTING
. Tetapkan skema load balancing keINTERNAL_MANAGED
.gcloud
Gunakan perintah
gcloud
berikut untuk memperbaruil7-ilb-backend-service
dengan subset backend:gcloud beta compute backend-services update l7-ilb-backend-service \ --region=us-west1 \ --subsetting-policy=CONSISTENT_HASH_SUBSETTING
API
Buat permintaan
PATCH
ke metoderegionBackendServices/patch
method.PATCH https://compute.s3nsapis.fr/compute/beta/projects/PROJECT_ID/regions/us-west1/backendServices/l7-ilb-backend-service { "subsetting": { "policy": CONSISTENT_HASH_SUBSETTING } }
Anda juga dapat menyempurnakan load balancing backend dengan menetapkan kebijakan localityLbPolicy
.
Untuk mengetahui informasi selengkapnya, lihat Kebijakan traffic.
Menggunakan alamat IP yang sama di antara beberapa aturan penerusan internal
Agar beberapa aturan penerusan internal dapat berbagi alamat IP internal yang sama,
Anda harus mencadangkan alamat IP dan menetapkan tanda --purpose
-nya ke
SHARED_LOADBALANCER_VIP
.
gcloud
gcloud compute addresses create SHARED_IP_ADDRESS_NAME \ --region=REGION \ --subnet=SUBNET_NAME \ --purpose=SHARED_LOADBALANCER_VIP
Memperbarui waktu tunggu keep-alive HTTP klien
Load balancer yang dibuat pada langkah sebelumnya telah dikonfigurasi dengan nilai default untuk waktu tunggu keep-alive HTTP klien.Untuk memperbarui waktu tunggu keep-alive HTTP klien, gunakan petunjuk berikut.
Konsol
Di konsol Trusted Cloud , buka halaman Load balancing.
- Klik nama load balancer yang ingin Anda ubah.
- Klik Edit.
- Klik Frontend configuration.
- Luaskan Fitur lanjutan. Untuk HTTP keepalive timeout, 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 HTTP keep-alive dari 5 hingga 600 detik.
Langkah berikutnya
- Mengonversi Load Balancer Aplikasi ke IPv6
- Ringkasan Load Balancer Aplikasi internal regional
- Subnet khusus proxy untuk load balancer berbasis Envoy
- Menggunakan sertifikat SSL yang dikelola sendiri
- Membersihkan penyiapan load balancer