Dokumen ini menampilkan contoh konfigurasi untuk menyiapkan Load Balancer Aplikasi eksternal global dengan backend grup instance VM di lingkungan VPC Bersama.
Dalam contoh, komponen frontend dan backend load balancer dibuat dalam satu project layanan.
Jika Anda tidak ingin menggunakan jaringan VPC Bersama, lihat Menyiapkan Load Balancer Aplikasi eksternal global dengan backend grup instance VM.
Sebelum memulai
- Baca Ringkasan VPC Bersama.
- Baca Ringkasan Load Balancer Aplikasi Eksternal, termasuk bagian arsitektur VPC Bersama.
Izin diperlukan
Menyiapkan load balancer di jaringan VPC Bersama memerlukan beberapa penyiapan awal dan penyediaan oleh administrator. Setelah penyiapan awal, pemilik project layanan dapat melakukan salah satu tindakan berikut:
- Men-deploy semua komponen load balancer dan backend-nya dalam project layanan.
- Deploy komponen backend load balancer (layanan backend dan backend) di project layanan yang dapat direferensikan oleh peta URL di layanan lain atau project host.
Bagian ini merangkum izin yang diperlukan untuk mengikuti panduan ini guna menyiapkan load balancer di jaringan VPC Bersama.
Menyiapkan VPC yang Dibagikan
Peran berikut diperlukan untuk tugas berikut:
- Melakukan tugas administratif satu kali seperti menyiapkan VPC Bersama dan mengaktifkan project host.
- Melakukan tugas administratif yang harus diulang setiap kali Anda ingin mengaktivasi project layanan baru. Hal ini termasuk melampirkan project layanan, menyediakan dan mengonfigurasi resource jaringan, serta memberikan akses ke administrator project layanan.
Tugas ini harus dilakukan di project host VPC Bersama. Sebaiknya Admin VPC Bersama juga menjadi pemilik project host VPC Bersama. Peran ini secara otomatis memberikan peran Admin Jaringan dan Admin Keamanan.
Tugas | Peran yang diperlukan |
---|---|
Menyiapkan VPC Bersama, mengaktifkan project host, dan memberikan akses kepada administrator project layanan | Admin VPC Bersama |
Membuat subnet di project host VPC Bersama dan memberikan akses kepada administrator project layanan | Admin Jaringan |
Menambahkan dan menghapus aturan firewall | Security Admin |
Setelah subnet disediakan, pemilik project host harus memberikan peran Pengguna Jaringan dalam project host kepada siapa saja (biasanya administrator project layanan, developer, atau akun layanan) yang perlu menggunakan resource ini.
Tugas | Peran yang diperlukan |
---|---|
Gunakan jaringan dan subnet VPC yang termasuk dalam project host | Pengguna Jaringan |
Peran ini dapat diberikan pada level project atau untuk subnet individual. Sebaiknya Anda memberikan peran tersebut di setiap subnet. Pemberian peran pada project akan memberikan akses ke semua subnet saat ini dan yang akan datang dalam jaringan VPC dari project host.
Men-deploy load balancer dan backend
Administrator project layanan memerlukan peran berikut dalam project layanan untuk membuat backend dan resource load balancing. Izin ini diberikan secara otomatis kepada pemilik atau editor project layanan.
Tugas | Peran yang diperlukan |
---|---|
Membuat komponen load balancer | Admin Jaringan |
Membuat instance | Admin Instance |
Membuat dan mengubah sertifikat SSL | Security Admin |
Prasyarat
Di bagian ini, Anda perlu melakukan langkah-langkah berikut:
Langkah-langkah di bagian ini tidak perlu dilakukan setiap kali Anda ingin membuat load balancer baru. Namun, Anda harus memastikan bahwa Anda memiliki akses ke resource yang dijelaskan di sini sebelum melanjutkan untuk membuat load balancer.
Mengonfigurasi jaringan dan subnet di project host
Anda memerlukan jaringan VPC Bersama dengan satu subnet untuk backend load balancer.Contoh ini menggunakan jaringan, region, dan subnet berikut:
Jaringan. Jaringan ini diberi nama
lb-network
.Subnet untuk backend load balancer. Subnet bernama
lb-backend-subnet
di regionus-west1
menggunakan10.1.2.0/24
untuk rentang IP utamanya.
Mengonfigurasi subnet untuk backend load balancer
Langkah ini tidak perlu dilakukan setiap kali Anda ingin membuat load balancer baru. Anda hanya perlu memastikan bahwa project layanan memiliki akses ke subnet di jaringan VPC Bersama.Semua langkah di bagian ini harus dilakukan di project host.
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:
lb-backend-subnet
Region:
us-west1
Rentang alamat IP:
10.1.2.0/24
- Name:
Klik Done.
Klik Create.
gcloud
Buat jaringan VPC dengan perintah
gcloud compute networks create
:gcloud compute networks create lb-network --subnet-mode=custom
Buat subnet di jaringan
lb-network
di regionus-west1
:gcloud compute networks subnets create lb-frontend-and-backend-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-west1
Memberikan akses ke subnet backend kepada admin project layanan
Administrator project layanan memerlukan akses ke subnetlb-backend-subnet
agar dapat menyediakan backend
load balancer.
Admin VPC Bersama harus memberikan akses ke subnet backend kepada administrator project layanan (atau developer yang men-deploy resource dan backend yang menggunakan subnet). Untuk mengetahui petunjuknya, lihat Admin Project Layanan untuk beberapa subnet.
Mengonfigurasi aturan firewall di project host
Contoh ini menggunakan aturan firewall berikut:fw-allow-health-check
. Aturan ingress, yang 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 instance yang harus diterapkan tag tersebut.
Semua langkah di bagian ini harus dilakukan di project host.
Konsol
Di Konsol Google Cloud, buka halaman Firewall policies.
- Klik Create firewall rule untuk membuat aturan guna mengizinkan health check Google Cloud:
- Name:
fw-allow-health-check
- Jaringan:
lb-network
- Direction of traffic: Masuk
- Action on match: 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.
- Periksa TCP dan 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 menggunakan
tcp:80
untuk protokol dan port, Google Cloud dapat menggunakan HTTP di port80
untuk menghubungi VM Anda, tetapi tidak dapat menggunakan HTTPS pada port443
untuk menghubungi mereka. - Klik Create.
gcloud
Buat aturan firewall
fw-allow-health-check
untuk mengizinkan health check Google Cloud. Contoh ini memungkinkan semua lalu lintas TCP dari prober {i>health check<i}. Namun, Anda 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
Menyiapkan VPC Bersama di project host
Langkah ini termasuk mengaktifkan project host VPC Bersama, membagikan subnet project host, dan melampirkan project layanan ke project host sehingga project layanan dapat menggunakan jaringan VPC Bersama. Untuk menyiapkan VPC Bersama di project host, lihat halaman berikut:
Petunjuk selanjutnya mengasumsikan bahwa Anda telah menyiapkan VPC Bersama. Hal ini mencakup menyiapkan kebijakan IAM untuk organisasi Anda serta menetapkan project host dan layanan.
Jangan lanjutkan sebelum Anda menyiapkan VPC Bersama dan mengaktifkan project host dan layanan.
Mengonfigurasi load balancer dalam satu project layanan
Setelah mengonfigurasi jaringan VPC di project host dan menyiapkan VPC Bersama, Anda dapat mengalihkan perhatian ke project layanan, tempat Anda perlu membuat semua komponen load balancing (layanan backend, peta URL, proxy target, dan aturan penerusan) dan backend.
Bagian ini mengasumsikan bahwa Anda telah melakukan langkah-langkah prasyarat yang dijelaskan di bagian sebelumnya dalam project host. Di bagian ini, komponen frontend dan backend load balancer beserta backend dibuat dalam satu project layanan.
Gambar berikut menggambarkan komponen Load Balancer Aplikasi eksternal global dalam satu project layanan, yang terpasang ke project host di jaringan VPC Bersama.
Langkah-langkah ini harus dilakukan oleh administrator project layanan (atau developer yang beroperasi dalam project layanan) dan tidak memerlukan keterlibatan dari administrator project host. Langkah-langkah di bagian ini mirip dengan langkah standar untuk menyiapkan Load Balancer Aplikasi eksternal global.
Contoh di halaman ini secara eksplisit menetapkan alamat IP yang dicadangkan untuk aturan penerusan Load Balancer Aplikasi eksternal global, bukan mengizinkan alokasi alamat IP sementara. Sebagai praktik terbaik, sebaiknya Anda melakukan reservasi alamat IP untuk aturan penerusan.
Membuat backend grup instance terkelola
Permulaan untuk membuat grup instance terkelola adalah pembuatan template instance, yang merupakan resource yang dapat Anda gunakan untuk membuat instance mesin virtual (VM). Traffic dari klien di-load balanced ke VM dalam grup instance. Grup instance terkelola menyediakan VM yang menjalankan server backend untuk Load Balancer Aplikasi eksternal. Dalam contoh ini, backend menayangkan nama host-nya sendiri.
Konsol
Membuat template instance
Di Konsol Google Cloud, buka halaman Instance templates Compute Engine.
Klik Create instance template.
Untuk Name, masukkan
backend-template
.Di bagian Boot disk, pastikan boot disk disetel ke image Debian, seperti Debian GNU/Linux 10 (buster). Klik Change untuk mengubah gambar jika perlu.
Luaskan bagian Advanced options.
Luaskan bagian Networking, dan di kolom Network tags, masukkan
load-balanced-backend
.Untuk Network interfaces, pilih Network shared with me (from host project:
HOST_PROJECT_ID
).Dalam daftar Shared subnetwork, pilih subnet
lb-backend-subnet
dari jaringanlb-network
.Luaskan bagian Management, dan di kolom Automation, tentukan skrip startup berikut:
#! /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 Compute Engine.
Klik Create Instance Group.
Dari opsi tersebut, pilih Grup instance terkelola baru (stateless).
Untuk nama grup instance, masukkan
lb-backend
.Dalam daftar Instance template, pilih template instance
backend-template
yang Anda buat di langkah sebelumnya.Di bagian Location, pilih Single zone, dan masukkan nilai berikut:
Untuk Region, pilih
us-west1
.Untuk Zone, pilih
us-west1-a
.
Di bagian Autoscaling, masukkan nilai berikut:
Untuk Autoscaling mode, pilih On: add and remove instances to the group.
Untuk Minimum number of instances, pilih
2
.Untuk Jumlah maksimum instance, pilih
3
.
Di bagian Pemetaan port, klik Tambahkan port, dan masukkan nilai berikut:
Untuk Port name, masukkan
http
.Untuk Nomor port, masukkan
80
.
Klik Create.
gcloud
Buat template instance:
gcloud compute instance-templates create backend-template \ --region=us-west1 \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-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' \ --project=SERVICE_PROJECT_ID
Buat grup instance terkelola, lalu pilih template instance yang Anda buat di langkah sebelumnya:
gcloud compute instance-groups managed create lb-backend \ --zone=us-west1-a \ --size=2 \ --template=backend-template \ --project=SERVICE_PROJECT_ID
Tambahkan port bernama ke grup instance:
gcloud compute instance-groups set-named-ports lb-backend \ --named-ports=http:80 \ --zone=us-west1-a \ --project=SERVICE_PROJECT_ID
Membuat health check
Health check adalah pengujian yang mengonfirmasi ketersediaan backend. Buat health check yang menggunakan protokol HTTP dan pemeriksaan pada port 80
. Nantinya, Anda akan melampirkan health check ini ke layanan backend yang dirujuk oleh load balancer.
Konsol
Di konsol Google Cloud, buka halaman Health check Compute Engine.
Untuk nama health check, masukkan
lb-health-check
.Setel protokol ke HTTP.
Klik Create.
gcloud
Membuat health check HTTP.
gcloud compute health-checks create http lb-health-check \ --use-serving-port \ --project=SERVICE_PROJECT_ID
Mencadangkan alamat IP load balancer
Cadangkan alamat IP eksternal statis global yang dapat ditetapkan ke aturan penerusan load balancer.
Konsol
Di Konsol Google Cloud, buka halaman IP addresses VPC.
Klik Reserve external static IP address.
Untuk Name, masukkan
lb-ipv4-1
.Tetapkan Tingkat Layanan Jaringan ke Premium.
Setel IP version ke IPv4.
Setel Type ke Global.
Klik Reserve.
gcloud
Buat alamat IP eksternal statis global.
gcloud compute addresses create lb-ipv4-1 \ --ip-version=IPV4 \ --network-tier=PREMIUM \ --global --project=SERVICE_PROJECT_ID
Menyiapkan resource sertifikat SSL
Untuk load balancer yang menggunakan HTTPS sebagai protokol permintaan dan respons, buat resource sertifikat SSL seperti yang dijelaskan dalam referensi berikut:
Sebaiknya gunakan sertifikat yang dikelola Google.
Contoh ini mengasumsikan bahwa Anda telah membuat sertifikat SSL bernama lb-ssl-cert
. Sertifikat SSL dilampirkan ke proxy target yang akan Anda buat dalam salah satu langkah berikut.
Mengonfigurasi load balancer
Bagian ini menunjukkan cara membuat resource berikut untuk Load Balancer Aplikasi eksternal global:
- Layanan backend dengan grup instance terkelola sebagai backend
- Peta URL
- Sertifikat SSL (hanya diperlukan untuk traffic HTTPS)
- Proxy target
- Aturan penerusan
Dalam contoh ini, Anda dapat menggunakan HTTP atau HTTPS sebagai protokol permintaan dan respons antara klien dan load balancer. Untuk HTTPS, Anda memerlukan resource sertifikat SSL untuk mengonfigurasi proxy. Sebaiknya gunakan sertifikat yang dikelola Google.
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 global Workload, lalu klik Next.
- Untuk Load balancer Generation, pilih Global external Application Load Balancer, lalu klik Next.
- Klik Konfigurasikan.
Konfigurasi dasar
- Untuk nama load balancer, masukkan
l7-xlb-shared-vpc
.
Mengonfigurasi frontend load balancer
Untuk traffic HTTP:
Klik Frontend configuration.
Untuk nama frontend load balancer, masukkan
http-fw-rule
.Untuk Protocol, pilih HTTP.
Setel IP version ke IPv4.
Untuk IP address, pilih
lb-ipv4-1
, yang merupakan alamat IP yang Anda cadangkan sebelumnya.Setel Port ke
80
untuk mengizinkan traffic HTTP.Untuk menyelesaikan konfigurasi frontend, klik Done.
Pastikan ada tanda centang biru di samping Frontend configuration sebelum melanjutkan.
Untuk traffic HTTPS:
Klik Frontend configuration.
Untuk nama frontend load balancer, masukkan
https-fw-rule
.Untuk Protocol, pilih HTTPS.
Setel IP version ke IPv4.
Untuk IP address, pilih
lb-ipv4-1
, yang merupakan alamat IP yang Anda cadangkan sebelumnya.Setel Port ke
443
untuk mengizinkan traffic HTTPS.Dalam daftar Certificate, pilih SSL certificate yang Anda buat.
Untuk menyelesaikan konfigurasi frontend, klik Done.
Pastikan ada tanda centang biru di samping Frontend configuration sebelum melanjutkan.
Mengonfigurasi backend
Klik Backend configuration.
Di menu Backend services and backend buckets, klik Create a backend service.
Untuk nama layanan backend, masukkan
lb-backend-service
.Untuk Backend type, pilih Instance group.
Tetapkan Protocol ke HTTP.
Di kolom Named port, masukkan
http
. Nama port ini sama dengan yang Anda masukkan saat membuat grup instance terkelola.Untuk menambahkan backend ke layanan backend, lakukan hal berikut:
Di bagian Backend, tetapkan Instance group ke
lb-backend
, yang merupakan grup instance terkelola yang Anda buat pada langkah sebelumnya.Untuk Nomor port, masukkan
80
.Untuk menambahkan backend, klik Done.
Untuk menambahkan health check, dalam daftar Health check, pilih
lb-health-check
, yang merupakan health check yang Anda buat sebelumnya.Untuk membuat layanan backend, klik Create.
Pastikan ada tanda centang biru di samping Backend configuration sebelum melanjutkan.
Mengonfigurasi aturan pemilihan rute
- Klik Routing rules. Pastikan
lb-backend-service
adalah layanan backend default untuk semua host yang tidak cocok dan jalur yang tidak cocok.
Untuk informasi tentang pengelolaan traffic, lihat Menyiapkan pengelolaan traffic.
Meninjau dan menyelesaikan konfigurasi
Klik Review and finalize.
Tinjau setelan frontend dan backend load balancer untuk memastikan load balancer telah dikonfigurasi sesuai keinginan.
Klik Create, lalu tunggu hingga load balancer dibuat.
gcloud
Buat layanan backend untuk mendistribusikan traffic di antara backend:
gcloud compute backend-services create lb-backend-service \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --port-name=http \ --health-checks=lb-health-check \ --global \ --project=SERVICE_PROJECT_ID
Tambahkan grup instance sebagai backend ke layanan backend:
gcloud compute backend-services add-backend lb-backend-service \ --instance-group=lb-backend \ --instance-group-zone=us-west1-a \ --global \ --project=SERVICE_PROJECT_ID
Buat peta URL untuk mengarahkan permintaan masuk ke layanan backend:
gcloud compute url-maps create lb-map \ --default-service=lb-backend-service \ --global \ --project=SERVICE_PROJECT_ID
Buat proxy target.
Untuk traffic HTTP, buat proxy HTTP target untuk merutekan permintaan ke peta URL:
gcloud compute target-http-proxies create http-proxy \ --url-map=lb-map \ --global \ --project=SERVICE_PROJECT_ID
Untuk traffic HTTPS, buat proxy HTTPS target untuk merutekan permintaan ke peta URL. Proxy adalah bagian dari load balancer yang memegang sertifikat SSL untuk load balancer HTTPS, sehingga Anda juga memuat sertifikat SSL pada langkah ini:
gcloud compute target-https-proxies create https-proxy \ --url-map=lb-map \ --ssl-certificates=lb-ssl-cert --global \ --project=SERVICE_PROJECT_ID
Membuat aturan penerusan.
Untuk traffic HTTP, buat aturan penerusan global untuk merutekan permintaan yang masuk ke proxy target:
gcloud compute forwarding-rules create http-fw-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --address=lb-ipv4-1 \ --global \ --target-http-proxy=http-proxy \ --ports=80 \ --project=SERVICE_PROJECT_ID
Untuk traffic HTTPS, buat aturan penerusan global untuk merutekan permintaan yang masuk ke proxy target:
gcloud compute forwarding-rules create https-fw-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --address=lb-ipv4-1 \ --global \ --target-https-proxy=https-proxy \ --ports=443 \ --project=SERVICE_PROJECT_ID
Menguji load balancer
Saat 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.
Klik load balancer yang baru saja dibuat.
Catat alamat IP load balancer. Alamat IP ini disebut sebagai
LB_IP_ADDRESS
dalam langkah-langkah berikut.Di bagian Backend, pastikan bahwa VM responsif.
Kolom Healthy akan terisi, yang menunjukkan bahwa VM responsif—misalnya, jika dua instance dibuat, Anda akan melihat pesan yang menunjukkan
2 of 2
dengan tanda centang hijau di sampingnya. Jika Anda melihat sebaliknya, coba muat ulang halaman terlebih dahulu. Diperlukan waktu beberapa menit bagi Google Cloud Console untuk menunjukkan bahwa VM aman. Jika backend terlihat tidak 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 dengan mengarahkan browser web ke
https://LB_IP_ADDRESS
(atauhttp://LB_IP_ADDRESS
). GantiLB_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 konten yang menampilkan nama instance yang menampilkan halaman tersebut (misalnya,
Page served from: lb-backend-example-xxxx
). Jika browser Anda tidak merender halaman ini, tinjau setelan konfigurasi dalam panduan ini.
gcloud
Perhatikan alamat IP yang dicadangkan:
gcloud compute addresses describe IP_ADDRESS_NAME \ --format="get(address)" \ --global
Anda dapat menguji load balancer dengan mengarahkan browser web Anda ke https://LB_IP_ADDRESS
(atau http://LB_IP_ADDRESS
). Ganti LB_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.
Langkah selanjutnya
- Pelajari cara memecahkan masalah dengan Load Balancer Aplikasi eksternal global.
- Bersihkan konfigurasi load balancing Anda.