Load Balancer Jaringan proxy internal regional adalah load balancer Lapisan 4 regional berbasis proxy yang memungkinkan Anda menjalankan dan menskalakan traffic layanan TCP di balik alamat IP internal yang hanya dapat diakses oleh klien di jaringan VPC yang sama atau klien yang terhubung ke jaringan VPC Anda.
Panduan ini berisi petunjuk untuk menyiapkan Load Balancer Jaringan proxy internal regional dengan backend grup endpoint jaringan (NEG) zona. Sebelum memulai:
Ringkasan
Dalam contoh ini, kita akan menggunakan load balancer untuk mendistribusikan traffic TCP di seluruh VM backend dalam dua NEG zonal di region REGION_A
. Untuk tujuan
contoh, layanan ini adalah kumpulan server Apache
yang dikonfigurasi untuk merespons di port 80
.
Dalam contoh ini, Anda akan mengonfigurasi deployment berikut:
Load Balancer Jaringan proxy internal regional adalah load balancer regional. Semua komponen load balancer (grup instance backend, layanan backend, proxy target, dan aturan penerusan) harus berada di region yang sama.
Izin
Untuk mengikuti panduan ini, Anda harus dapat membuat instance dan mengubah jaringan dalam project. Anda harus menjadi pemilik atau editor project, atau Anda harus memiliki semua peran IAM Compute Engine berikut:
Tugas | Peran yang Diperlukan |
---|---|
Membuat komponen jaringan, subnet, dan load balancer | Admin Jaringan |
Menambahkan dan menghapus aturan firewall | Security Admin |
Membuat instance | Compute Instance Admin |
Untuk informasi selengkapnya, lihat panduan berikut:
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 Jaringan proxy internal regional bersifat regional. Traffic dalam jaringan VPC dirutekan ke load balancer jika sumber traffic berada di subnet di region yang sama dengan load balancer.
Contoh ini menggunakan jaringan, region, dan subnet VPC berikut:
Jaringan. Jaringan ini adalah jaringan VPC mode kustom bernama
lb-network
.Subnet untuk backend. Subnet bernama
backend-subnet
di wilayahREGION_A
menggunakan10.1.2.0/24
untuk rentang IP utamanya.Subnet untuk proxy. Subnet bernama
proxy-only-subnet
di wilayahREGION_A
menggunakan10.129.0.0/23
untuk rentang IP utamanya.
Membuat 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 New subnet, masukkan informasi berikut:
- Nama:
backend-subnet
- Region:
REGION_A
- Rentang alamat IP:
10.1.2.0/24
- Nama:
- Klik Done.
Klik Create.
gcloud
Buat jaringan VPC kustom dengan perintah
gcloud compute networks create
:gcloud compute networks create lb-network --subnet-mode=custom
Buat subnet di jaringan
lb-network
di regionREGION_A
dengan perintahgcloud compute networks subnets create
:gcloud compute networks subnets create backend-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=REGION_A
Membuat subnet khusus proxy
Subnet khusus proxy menyediakan kumpulan alamat IP yang digunakan Google untuk menjalankan proxy Envoy atas nama Anda. Proxy menghentikan koneksi dari klien dan membuat koneksi baru ke backend.
Subnet khusus proxy ini digunakan oleh semua load balancer berbasis Envoy di region REGION_A
jaringan VPC lb-network
.
Konsol
Jika menggunakan konsol Google Cloud, Anda 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 Bersama:
lb-network
.Klik Tambahkan subnet.
Untuk Name, masukkan
proxy-only-subnet
.Untuk Region, pilih
REGION_A
.Tetapkan Tujuan ke Proxy yang Dikelola Berdasarkan Wilayah.
Untuk IP address range, 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=REGION_A \ --network=lb-network \ --range=10.129.0.0/23
Membuat aturan firewall
Dalam contoh ini, Anda membuat aturan firewall berikut:
fw-allow-health-check
: Aturan ingress, yang berlaku untuk instance Google Cloud yang di-load balance, yang mengizinkan traffic dari load balancer dan sistem health check Google Cloud (130.211.0.0/22
dan35.191.0.0/16
). Contoh ini menggunakan tag targetallow-health-check
untuk mengidentifikasi VM backend yang harus diterapkan dengan tag tersebut.fw-allow-ssh
: Aturan ingress yang mengizinkan konektivitas SSH yang masuk pada TCP port 22 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 akan memulai sesi SSH. Contoh ini menggunakan tag targetallow-ssh
untuk mengidentifikasi VM tempat tag tersebut harus diterapkan.fw-allow-proxy-only-subnet
: Buat aturan firewall izinkan masuk untuk subnet khusus proxy agar load balancer dapat berkomunikasi dengan instance backend di port TCP80
. Contoh ini menggunakan tag targetallow-proxy-only-subnet
untuk mengidentifikasi VM backend tempat tag tersebut harus diterapkan.
Konsol
Di Konsol Google Cloud, buka halaman Firewall policies.
Klik Create firewall rule:
- Masukkan Nama
fw-allow-health-check
. - Di bagian Network, pilih
lb-network
. - Di bagian Target, pilih Tag target yang ditentukan.
- Isi kolom Target tags dengan
allow-health-check
. - Tetapkan Source filter ke IPv4 ranges.
- Tetapkan Source IPv4 ranges ke
130.211.0.0/22
dan35.191.0.0/16
. - Di bagian Protocols and ports, pilih Specified protocols and ports.
- Pilih kotak centang TCP dan masukkan
80
untuk nomor port. - Klik Create.
- Masukkan Nama
Klik Create firewall rule lagi untuk membuat aturan yang mengizinkan koneksi SSH yang masuk:
- Nama:
fw-allow-ssh
- Jaringan:
lb-network
- Prioritas:
1000
- Direction of traffic: masuk
- 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
- Protocols and ports: Pilih Specified protocols and ports, lalu
ketik:
tcp:22
- Nama:
Klik Create.
Klik Create firewall rule lagi untuk membuat aturan yang mengizinkan koneksi masuk dari subnet khusus proxy ke backend Google Cloud:
- Nama:
fw-allow-proxy-only-subnet
- Jaringan:
lb-network
- Prioritas:
1000
- Direction of traffic: masuk
- Tindakan terhadap kecocokan: izinkan
- Targets: Tag target yang ditentukan
- Tag target:
allow-proxy-only-subnet
- Filter sumber: Rentang IPv4
- Rentang IPv4 sumber:
10.129.0.0/23
- Protocols and ports: Pilih Specified protocols and ports, lalu
ketik:
tcp:80
- Nama:
Klik Create.
gcloud
Buat aturan
fw-allow-health-check
untuk mengizinkan health check Google Cloud menjangkau instance backend di port TCP80
:gcloud compute firewall-rules create fw-allow-health-check \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-health-check \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --rules=tcp:80
Buat aturan firewall
fw-allow-ssh
untuk mengizinkan konektivitas SSH ke VM dengan tag jaringanallow-ssh
. Saat Anda menghapussource-ranges
, Google Cloud akan menafsirkan aturan sebagai sumber apa pun.gcloud compute firewall-rules create fw-allow-ssh \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22
Buat aturan firewall izinkan masuk untuk subnet khusus proxy agar load balancer dapat berkomunikasi dengan instance backend di port TCP
80
:gcloud compute firewall-rules create fw-allow-proxy-only-subnet \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-proxy-only-subnet \ --source-ranges=10.129.0.0/23 \ --rules=tcp:80
Mencadangkan alamat IP load balancer
Untuk mencadangkan alamat IP internal statis bagi load balancer, lihat Mencadangkan alamat IPv4 atau IPv6 internal statis yang baru.
Menyiapkan NEG zona
Siapkan NEG zona (dengan endpoint jenis GCE_VM_IP_PORT
)
di region REGION_A
. Pertama-tama, buat VM. Kemudian, buat NEG zona dan tambahkan endpoint jaringan VM ke NEG.
Membuat VM
Konsol
Di konsol Google Cloud, buka halaman Instance VM.
Klik Create instance.
Tetapkan Name ke
vm-a1
.Untuk Region, pilih
REGION_A
.Untuk Zone, lihat
ZONE_A1
.Di bagian Boot disk, pastikan Debian GNU/Linux 12 (bookworm) dipilih untuk opsi boot disk. Klik Pilih untuk mengubah gambar jika perlu.
Klik Advanced options.
Klik Networking dan konfigurasikan kolom berikut:
- Untuk Network tags, masukkan
allow-ssh
,allow-health-check
, danallow-proxy-only-subnet
. - Untuk Network interfaces, pilih dari daftar berikut:
- Jaringan:
lb-network
- Subnet:
backend-subnet
- Jaringan:
- Untuk Network tags, masukkan
Klik Management. Masukkan skrip berikut ke dalam kolom Skrip startup.
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2
Klik Create.
Ulangi langkah-langkah berikut untuk membuat 3 VM lagi, menggunakan kombinasi nama dan zona berikut:
- Nama:
vm-a2
, zona:ZONE_A1
- Nama:
vm-c1
, zona:ZONE_A2
- Nama:
vm-c2
, zona:ZONE_A2
- Nama:
gcloud
Buat VM dengan menjalankan perintah berikut dua kali, menggunakan kombinasi ini untuk VM_NAME dan ZONE. Konten skrip sama untuk kedua VM.
- VM_NAME:
vm-a1
dan ZONE:ZONE_A1
- VM_NAME:
vm-a2
dan ZONE:ZONE_A1
- VM_NAME:
vm-c1
dan ZONE:ZONE_A2
VM_NAME:
vm-c2
dan ZONE:ZONE_A2
gcloud compute instances create VM_NAME \ --zone=ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh,allow-health-check,allow-proxy-only-subnet \ --subnet=backend-subnet \ --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'
Membuat NEG zona
Konsol
Untuk membuat grup endpoint jaringan zonal:
Di Konsol Google Cloud, buka halaman Network endpoint groups.
Klik Create network endpoint group.
Untuk Name, masukkan
zonal-neg-a
.Untuk Network endpoint group type, pilih Network endpoint group (Zonal).
Untuk Network, pilih
lb-network
.Untuk Subnet, pilih
backend-subnet
.Untuk Zone, pilih
ZONE_A1
.Masukkan Port default:
80
.Klik Create.
Ulangi semua langkah di bagian ini untuk membuat NEG zona kedua dengan perubahan setelan berikut:
- Nama:
zonal-neg-c
- Zona:
ZONE_A2
- Nama:
Tambahkan endpoint ke NEG zona:
Di Konsol Google Cloud, buka halaman Network endpoint groups.
Klik Nama grup endpoint jaringan yang dibuat di langkah sebelumnya (misalnya,
zonal-neg-a
). Anda akan melihat halaman Detail grup endpoint jaringan.Di bagian Endpoint jaringan dalam grup ini, klik Tambahkan endpoint jaringan. Anda akan melihat halaman Tambahkan endpoint jaringan.
Pilih VM instance (misalnya,
vm-a1
). Di bagian Network interface, nama, zona, dan subnet VM akan ditampilkan.- Masukkan alamat IP endpoint jaringan baru. Anda dapat mengklik Periksa alamat IP utama dan rentang IP alias di nic0 untuk alamat IP.
- Untuk Port type, pilih Default, endpoint akan menggunakan port default
80
untuk semua endpoint dalam grup endpoint jaringan. Hal ini cukup untuk contoh kita karena server Apache menayangkan permintaan di port80
. - Klik Create.
Klik lagi Add network endpoint. Pilih instance VM kedua,
vm-a2
, dan ulangi langkah-langkah ini untuk menambahkan endpoint-nya kezonal-neg-a
.Ulangi semua langkah di bagian ini untuk menambahkan endpoint dari
vm-c1
danvm-c2
kezonal-neg-c
.
gcloud
Buat NEG zonal di zona
ZONE_A1
dengan endpointGCE_VM_IP_PORT
.gcloud compute network-endpoint-groups create zonal-neg-a \ --network-endpoint-type=GCE_VM_IP_PORT \ --zone=ZONE_A1 \ --network=lb-network \ --subnet=backend-subnet
Anda dapat menentukan
--default-port
saat membuat NEG, atau menentukan nomor port untuk setiap endpoint seperti yang ditunjukkan pada langkah berikutnya.Tambahkan endpoint ke NEG zonal.
gcloud compute network-endpoint-groups update zonal-neg-a \ --zone=ZONE_A1 \ --add-endpoint='instance=vm-a1,port=80' \ --add-endpoint='instance=vm-a2,port=80'
Buat NEG zonal di zona
ZONE_A2
dengan endpointGCE_VM_IP_PORT
.gcloud compute network-endpoint-groups create zonal-neg-c \ --network-endpoint-type=GCE_VM_IP_PORT \ --zone=ZONE_A2 \ --network=lb-network \ --subnet=backend-subnet
Anda dapat menentukan
--default-port
saat membuat NEG, atau menentukan nomor port untuk setiap endpoint seperti yang ditunjukkan pada langkah berikutnya.Tambahkan endpoint ke NEG zonal.
gcloud compute network-endpoint-groups update zonal-neg-c \ --zone=ZONE_A2 \ --add-endpoint='instance=vm-c1,port=80' \ --add-endpoint='instance=vm-c2,port=80'
Mengonfigurasi load balancer
Konsol
Memulai konfigurasi
Di konsol Google Cloud, buka halaman Load balancing.
- Klik Create load balancer.
- Untuk Type of load balancer, pilih Network Load Balancer (TCP/UDP/SSL), lalu klik Next.
- Untuk Proxy or passthrough, pilih Proxy load balancer, lalu klik Next.
- Untuk Public facing or internal, pilih Internal, lalu klik Next.
- Untuk Cross-region atau single region deployment, pilih Best for regional workloads, lalu klik Next.
- Klik Konfigurasikan.
Konfigurasi dasar
- Untuk Name, masukkan
my-int-tcp-lb
. - Untuk Region, pilih
REGION_A
. - Untuk Network, pilih
lb-network
.
Mereservasi subnet khusus proxy
Untuk memesan subnet khusus proxy:
- Klik Reserve subnet.
- Untuk Name, masukkan
proxy-only-subnet
. - Untuk Rentang alamat IP, masukkan
10.129.0.0/23
. - Klik Tambahkan.
Konfigurasi backend
- Klik Backend configuration.
- Untuk Backend type, pilih Zonal network endpoint group.
- Untuk Protocol, pilih TCP.
- Konfigurasikan backend pertama:
- Di bagian New backend, pilih NEG zonal
zonal-neg-a
. - Pertahankan nilai default yang tersisa, lalu klik Done.
- Di bagian New backend, pilih NEG zonal
- Konfigurasikan backend kedua:
- Klik Add backend.
- Di bagian New backend, pilih grup instance
zonal-neg-c
. - Pertahankan nilai default yang tersisa, lalu klik Done.
- Konfigurasikan health check:
- Di bagian Health check, pilih Create a health check.
- Tetapkan Name health check ke
tcp-health-check
. - Untuk Protocol, pilih TCP.
- Untuk Port, masukkan
80
.
- Pertahankan nilai default yang tersisa, lalu klik Save.
- Di konsol Google Cloud, pastikan ada tanda centang di samping Backend configuration. Jika belum, periksa kembali apakah Anda telah menyelesaikan semua langkah.
Konfigurasi frontend
- Klik Frontend configuration.
- Untuk Name, masukkan
int-tcp-forwarding-rule
. - Untuk Subnetwork, pilih backend-subnet.
- Untuk IP address, pilih int-tcp-ip-address.
- Untuk Port number, masukkan
9090
. Aturan penerusan hanya meneruskan paket dengan port tujuan yang cocok. - Dalam contoh ini, jangan aktifkan Proxy Protocol karena tidak berfungsi dengan software Apache HTTP Server. Untuk informasi selengkapnya, lihat Protokol proxy.
- Klik Done.
- Di konsol Google Cloud, pastikan ada tanda centang di samping Frontend configuration. Jika belum, periksa kembali apakah Anda telah menyelesaikan semua langkah sebelumnya.
Tinjau dan selesaikan
- Klik Review and finalize.
- Periksa kembali setelan Anda.
- Klik Create.
gcloud
Buat health check regional untuk backend.
gcloud compute health-checks create tcp tcp-health-check \ --region=REGION_A \ --use-serving-port
Buat layanan backend.
gcloud compute backend-services create internal-tcp-proxy-bs \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=TCP \ --region=REGION_A \ --health-checks=tcp-health-check \ --health-checks-region=REGION_A
Tambahkan NEG zonal di zona
ZONE_A1
ke layanan backend.gcloud compute backend-services add-backend internal-tcp-proxy-bs \ --network-endpoint-group=zonal-neg-a \ --network-endpoint-group-zone=ZONE_A1 \ --balancing-mode=CONNECTION \ --max-connections-per-endpoint=50 \ --region=REGION_A
Tambahkan NEG zonal di zona
ZONE_A2
ke layanan backend.gcloud compute backend-services add-backend internal-tcp-proxy-bs \ --network-endpoint-group=zonal-neg-c \ --network-endpoint-group-zone=ZONE_A2 \ --balancing-mode=CONNECTION \ --max-connections-per-endpoint=50 \ --region=REGION_A
Buat proxy TCP target.
gcloud compute target-tcp-proxies create int-tcp-target-proxy \ --backend-service=internal-tcp-proxy-bs \ --region=REGION_A
Membuat aturan penerusan. Untuk
--ports
, tentukan satu nomor port dari 1-65535. Contoh ini menggunakan port9090
. Aturan penerusan hanya meneruskan paket dengan port tujuan yang cocok.gcloud compute forwarding-rules create int-tcp-forwarding-rule \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=lb-network \ --subnet=backend-subnet \ --address=int-tcp-ip-address \ --ports=9090 \ --region=REGION_A \ --target-tcp-proxy=int-tcp-target-proxy \ --target-tcp-proxy-region=REGION_A
Menguji load balancer
Untuk menguji load balancer, buat VM klien di region yang sama dengan load balancer. Kemudian, kirim traffic dari klien ke load balancer.
Membuat VM klien
Buat VM klien (client-vm
) di region yang sama dengan load balancer.
Konsol
Di konsol Google Cloud, buka halaman Instance VM.
Klik Create instance.
Setel Nama ke
client-vm
.Setel Zona ke
ZONE_A1
.Klik Advanced options.
Klik Networking dan konfigurasikan kolom berikut:
- Untuk Network tags, masukkan
allow-ssh
. - Untuk Network interfaces, pilih dari daftar berikut:
- Jaringan:
lb-network
- Subnet:
backend-subnet
- Jaringan:
- Untuk Network tags, masukkan
Klik Create.
gcloud
VM klien harus berada di jaringan dan region VPC yang sama dengan load balancer. Subnet atau zona tidak harus sama. Klien menggunakan subnet yang sama dengan VM backend.
gcloud compute instances create client-vm \ --zone=ZONE_A1 \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh \ --subnet=backend-subnet
Mengirim traffic ke load balancer
Setelah mengonfigurasi load balancer, Anda dapat menguji pengiriman traffic ke alamat IP load balancer.
Gunakan SSH untuk terhubung ke instance klien.
gcloud compute ssh client-vm \ --zone=ZONE_A1
Verifikasi bahwa load balancer menayangkan nama host backend seperti yang diharapkan.
Gunakan perintah
compute addresses describe
untuk melihat alamat IP load balancer:gcloud compute addresses describe int-tcp-ip-address \ --region=REGION_A
Catat alamat IP-nya.
Kirim traffic ke load balancer. Ganti IP_ADDRESS dengan alamat IP load balancer.
curl IP_ADDRESS:9090
Langkah selanjutnya
- Mengonversi Load Balancer Jaringan proxy ke IPv6
- Ringkasan Load Balancer Jaringan proxy internal regional.
- Untuk menyiapkan pemantauan bagi Load Balancer Jaringan proxy internal regional, lihat Menggunakan pemantauan.
- Membersihkan penyiapan load balancer.