1. Pengantar
Panduan ini memberikan petunjuk untuk mentransisikan load balancer jaringan yang ada dari backend kumpulan target ke layanan backend regional.
Yang akan Anda pelajari
- Memahami manfaat layanan backend regional
- Membuat load balancer jaringan dengan kumpulan target
- Melakukan validasi kumpulan target
- Membuat layanan backend regional menggunakan grup instance tidak terkelola
- Melakukan migrasi kumpulan target ke layanan backend
- Melakukan validasi layanan backend
Yang Anda butuhkan
- Pengalaman dengan load balancer
2. Ringkasan layanan backend regional untuk Load Balancing jaringan
Dengan Network Load Balancing, pelanggan Google Cloud memiliki alat yang canggih untuk mendistribusikan traffic eksternal di antara virtual machine di region Google Cloud. Untuk mempermudah pelanggan kami mengelola traffic masuk dan mengontrol perilaku load balancer, baru-baru ini kami menambahkan dukungan untuk layanan backend ke Load Balancing Jaringan. Hal ini memberikan peningkatan skala, kecepatan, performa, dan ketahanan kepada pelanggan kami dalam deployment mereka—semuanya dengan cara yang mudah dikelola.
Kini kami mendukung layanan backend dengan Load Balancer Jaringan—peningkatan yang signifikan dibandingkan pendekatan sebelumnya, kumpulan target. Layanan backend menentukan cara load balancer mendistribusikan traffic masuk ke backend yang terpasang dan memberikan kontrol terperinci terkait perilaku load balancer.
3. Manfaat layanan backend regional
Memilih layanan backend regional sebagai load balancer akan memberikan sejumlah keuntungan bagi lingkungan Anda.
Secara default, layanan backend regional menyediakan:
- Health check fidelitas tinggi dengan health check terpadu - Dengan layanan backend regional, Anda kini dapat memanfaatkan sepenuhnya fitur health check load balancing, sehingga Anda terbebas dari batasan health check HTTP lama. Untuk alasan kepatuhan, health check TCP dengan dukungan untuk string respons dan permintaan kustom atau HTTPS merupakan permintaan umum bagi pelanggan Load Balancing Jaringan.
- Ketahanan yang lebih baik dengan grup failover - Dengan grup failover, Anda dapat menetapkan Grup Instance sebagai utama dan grup lainnya sebagai sekunder, serta melakukan failover traffic saat respons instance dalam grup aktif berada di bawah nilai minimum tertentu. Untuk kontrol lebih lanjut terkait mekanisme failover, Anda dapat menggunakan agen seperti keepalive atau pacemaker, serta menampilkan health check yang responsif atau gagal berdasarkan perubahan status backend instance.
- Skalabilitas dan ketersediaan tinggi dengan Grup Instance Terkelola - Layanan backend regional mendukung Grup Instance Terkelola sebagai backend. Sekarang Anda dapat menentukan template untuk instance virtual machine backend dan memanfaatkan penskalaan otomatis berdasarkan penggunaan CPU atau metrik pemantauan lainnya.
Selain hal di atas, Anda akan dapat memanfaatkan Connection Draining untuk protokol connection oriented (TCP) dan waktu pemrograman yang lebih cepat untuk deployment besar.
Topologi jaringan codelab
Panduan ini memberikan petunjuk untuk mentransisikan load balancer jaringan yang ada dari backend kumpulan target ke layanan backend regional.
Peralihan ke layanan backend regional memungkinkan Anda memanfaatkan berbagai fitur seperti health check non-lama (untuk TCP, SSL, HTTP, HTTPS, dan HTTP/2), grup instance terkelola, pengosongan koneksi, dan kebijakan failover.
Panduan ini akan memandu Anda mentransisikan contoh load balancer jaringan berbasis kumpulan target berikut untuk menggunakan layanan backend regional
Sebelumnya: Load Balancing Jaringan dengan kumpulan target
Deployment load balancer jaringan berbasis layanan backend yang dihasilkan akan terlihat seperti ini.
Setelah: Load Balancing Jaringan dengan layanan backend regional
Contoh ini mengasumsikan bahwa Anda memiliki load balancer jaringan berbasis kumpulan target tradisional dengan dua instance di zona us-central-1a dan 2 instance di zona us-central-1c.
Langkah-langkah tingkat tinggi yang diperlukan untuk transisi tersebut adalah:
- Mengelompokkan instance kumpulan target ke dalam grup instance. Layanan backend hanya berfungsi dengan grup instance terkelola atau tidak terkelola. Perhatikan bahwa meskipun tidak ada batasan jumlah instance yang dapat ditempatkan ke dalam satu kumpulan target, grup instance memiliki ukuran maksimum. Jika kumpulan target Anda memiliki instance lebih dari jumlah maksimum ini, Anda harus membagi backend-nya menjadi beberapa grup instance. Jika deployment yang ada menyertakan kumpulan target cadangan, buat grup instance terpisah untuk instance tersebut. Grup instance ini akan dikonfigurasi sebagai grup failover.
- Buat layanan backend regional. Jika deployment Anda menyertakan kumpulan target cadangan, Anda harus menentukan rasio failover saat membuat layanan backend. Nilai ini harus cocok dengan rasio failover yang sebelumnya dikonfigurasi untuk deployment target pool.
- Tambahkan grup instance (yang dibuat sebelumnya) ke layanan backend. Jika deployment Anda menyertakan kumpulan target cadangan, tandai grup instance failover yang sesuai dengan tanda –failover saat menambahkannya ke layanan backend.
- Konfigurasikan aturan penerusan yang mengarah ke layanan backend baru. Anda memiliki 2 opsi di sini:
- (Direkomendasikan) Perbarui aturan penerusan yang ada agar mengarah ke layanan backend. ATAU
- Buat penerusan baru yang mengarah ke layanan backend. Hal ini mengharuskan Anda membuat alamat IP baru untuk frontend load balancer. Kemudian, ubah setelan DNS Anda untuk bertransisi dengan lancar dari alamat IP load balancer berbasis kumpulan target lama ke alamat IP baru.
Penyiapan lingkungan mandiri
- Login ke Cloud Console lalu buat project baru atau gunakan kembali project yang sudah ada. Jika belum memiliki akun Gmail atau Google Workspace, Anda harus membuatnya.
Ingat project ID, nama unik di semua project Google Cloud (maaf, nama di atas telah digunakan dan tidak akan berfungsi untuk Anda!) Project ID tersebut selanjutnya akan dirujuk di codelab ini sebagai PROJECT_ID
.
- Selanjutnya, Anda harus mengaktifkan penagihan di Cloud Console untuk menggunakan resource Google Cloud.
Menjalankan operasi dalam codelab ini seharusnya tidak memerlukan banyak biaya, bahkan mungkin tidak sama sekali. Pastikan untuk mengikuti petunjuk yang ada di bagian "Membersihkan" yang memberi tahu Anda cara menonaktifkan resource sehingga tidak menimbulkan penagihan di luar tutorial ini. Pengguna baru Google Cloud memenuhi syarat untuk mengikuti program Uji Coba Gratis senilai$300 USD.
Mulai Cloud Shell
Meskipun Google Cloud dapat dioperasikan dari jarak jauh menggunakan laptop Anda, dalam codelab ini, Anda akan menggunakan Google Cloud Shell, lingkungan command line yang berjalan di Cloud.
Dari GCP Console, klik ikon Cloud Shell di toolbar kanan atas:
Hanya perlu waktu beberapa saat untuk penyediaan dan terhubung ke lingkungan. Jika sudah selesai, Anda akan melihat tampilan seperti ini:
Mesin virtual ini berisi semua alat pengembangan yang Anda perlukan. Layanan ini menawarkan direktori beranda tetap sebesar 5 GB dan beroperasi di Google Cloud, sehingga sangat meningkatkan performa dan autentikasi jaringan. Semua pekerjaan Anda di lab ini dapat dilakukan hanya dengan browser.
Login ke cloudshell dan tetapkan projectid Anda
gcloud config list project gcloud config set project [YOUR-PROJECT-ID] Perform setting your projectID: projectid=YOUR-PROJECT-ID echo $projectid
4. Buat jaringan VPC
Jaringan VPC
Dari Cloud Shell
gcloud compute networks create network-lb --subnet-mode custom
Buat Subnet
Dari Cloud Shell
gcloud compute networks subnets create network-lb-subnet \ --network network-lb --range 10.0.0.0/24 --region us-central1
Membuat Aturan Firewall
Dari Cloud Shell
gcloud compute --project=$projectid firewall-rules create www-firewall-network-lb --direction=INGRESS --priority=1000 --network=network-lb --action=ALLOW --rules=tcp:80 --source-ranges=0.0.0.0/0 --target-tags=network-lb-tag
Membuat instance tidak terkelola
Membuat 2 instance per zona, us-central1-a & us-central1-c
Dari Cloud Shell, buat instance 1
gcloud compute instances create www1 \ --subnet network-lb-subnet \ --image-family debian-9 \ --image-project debian-cloud \ --zone us-central1-a \ --tags network-lb-tag \ --metadata startup-script="#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo service apache2 restart echo '<!doctype html><html><body><h1>www1</h1></body></html>' | tee /var/www/html/index.html"
Dari Cloud Shell, buat instance 2
gcloud compute instances create www2 \ --subnet network-lb-subnet \ --image-family debian-9 \ --image-project debian-cloud \ --zone us-central1-a \ --tags network-lb-tag \ --metadata startup-script="#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo service apache2 restart echo '<!doctype html><html><body><h1>www2</h1></body></html>' | tee /var/www/html/index.html"
Dari Cloud Shell, buat instance 3
gcloud compute instances create www3 \ --subnet network-lb-subnet \ --image-family debian-9 \ --image-project debian-cloud \ --zone us-central1-c \ --tags network-lb-tag \ --metadata startup-script="#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo service apache2 restart echo '<!doctype html><html><body><h1>www3</h1></body></html>' | tee /var/www/html/index.html"
Dari Cloud Shell, buat instance 4
gcloud compute instances create www4 \ --subnet network-lb-subnet \ --image-family debian-9 \ --image-project debian-cloud \ --zone us-central1-c \ --tags network-lb-tag \ --metadata startup-script="#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo service apache2 restart echo '<!doctype html><html><body><h1>www4</h1></body></html>' | tee /var/www/html/index.html"
Buat aturan firewall untuk mengizinkan traffic eksternal ke instance VM ini
Dari Cloud Shell
gcloud compute --project=$projectid firewall-rules create www-firewall-network-lb --direction=INGRESS --priority=1000 --network=network-lb --action=ALLOW --rules=tcp:80 --source-ranges=0.0.0.0/0 --target-tags=network-lb-tag
Membuat alamat IP eksternal statis untuk load balancer
Dari Cloud Shell
gcloud compute addresses create network-lb-ip-1 \ --region us-central1
Menambahkan resource health check HTTP lama
Dari Cloud Shell
gcloud compute http-health-checks create basic-check
5. Membuat aturan penerusan dan kumpulan target
Membuat kumpulan target
gcloud compute target-pools create www-pool \ --region us-central1 --http-health-check basic-check
Tambahkan instance Anda ke kumpulan target, us-central1-a
gcloud compute target-pools add-instances www-pool \ --instances www1,www2 \ --instances-zone us-central1-a
Menambahkan instance ke kumpulan target, us-central1-c
gcloud compute target-pools add-instances www-pool \ --instances www3,www4 \ --instances-zone us-central1-c
Menambahkan aturan penerusan
gcloud compute forwarding-rules create www-rule \ --region us-central1 \ --ports 80 \ --address network-lb-ip-1 \ --target-pool www-pool
Memvalidasi fungsi kumpulan target
Identifikasi alamat IP frontend, dengan memilih Load Balancers → Frontends (www-rule)
Gunakan perintah curl dari terminal workstation untuk mengakses alamat IP eksternal dan mengamati load balancing di empat instance target. Tutup terminal setelah divalidasi.
while true; do curl -m1 IP_ADDRESS; done
6. Mentransisikan load balancer jaringan dari kumpulan target ke layanan backend
Membuat health check terpadu untuk layanan backend Anda
gcloud compute health-checks create tcp my-tcp-health-check --port 80 --region us-central1
Membuat grup instance dari instance yang ada dari kumpulan target
gcloud compute --project=$projectid instance-groups unmanaged create www-instance-group-central1a --zone=us-central1-a gcloud compute --project=$projectid instance-groups unmanaged add-instances www-instance-group-central1a --zone=us-central1-a --instances=www1,www2
Membuat grup instance dari instance yang ada dari kumpulan target
gcloud compute --project=$projectid instance-groups unmanaged create www-instance-group-central1c --zone=us-central1-c gcloud compute --project=$projectid instance-groups unmanaged add-instances www-instance-group-central1c --zone=us-central1-c --instances=www3,www4
Membuat layanan backend dan mengaitkannya dengan health check yang baru dibuat
gcloud compute backend-services create my-backend-service --region us-central1 --health-checks my-tcp-health-check --health-checks-region us-central1 --load-balancing-scheme external
Mengonfigurasi layanan backend dan menambahkan grup instance
gcloud compute backend-services add-backend my-backend-service --instance-group www-instance-group-central1a --instance-group-zone us-central1-a --region us-central1 gcloud compute backend-services add-backend my-backend-service --instance-group www-instance-group-central1c --instance-group-zone us-central1-c --region us-central1
Memperbarui aturan penerusan yang ada untuk mendukung layanan backend
Perhatikan nama aturan penerusan 'www-rule' dan Alamat IP terkait dengan melakukan tindakan berikut:
Pilih Load Balancer → Frontend
Selain itu, perhatikan empat kumpulan target
Pilih Load Balancer → Pilih 'www-pool'
Arahkan traffic ke layanan backend dengan memperbarui aturan penerusan yang ada
gcloud compute forwarding-rules set-target www-rule --region=us-central1 --backend-service my-backend-service --region us-central1
Memverifikasi load balancer 'www-pool' tidak lagi dikonfigurasi dengan frontend 'www-rule' (lihat screenshot di bawah)
Pilih Load Balancer → www-pool
Memvalidasi aturan penerusan frontend kini dikaitkan dengan load balancer 'my-backend-service'
Pilih Load Balancer → Frontend
Perhatikan bahwa nama aturan 'www-rule' alamat IP dipertahankan dan load balancer 'my-backend-service' kini digunakan
Gunakan perintah curl dari terminal workstation untuk mengakses alamat IP eksternal dan mengamati load balancing di seluruh layanan backend yang baru dikaitkan. Tutup terminal setelah divalidasi.
while true; do curl -m1 IP_ADDRESS; done
7. Langkah-Langkah Pembersihan
gcloud compute forwarding-rules delete www-rule --region=us-central1 --quiet gcloud compute backend-services delete my-backend-service --region us-central1 --quiet gcloud compute target-pools delete www-pool --region us-central1 --quiet gcloud compute addresses delete network-lb-ip-1 --region us-central1 --quiet gcloud compute firewall-rules delete www-firewall-network-lb --quiet gcloud compute instances delete www4 --zone us-central1-c --quiet gcloud compute instances delete www3 --zone us-central1-c --quiet gcloud compute instances delete www2 --zone us-central1-a --quiet gcloud compute instances delete www1 --zone us-central1-a --quiet gcloud compute networks subnets delete network-lb-subnet --region us-central1 --quiet gcloud compute networks delete network-lb --quiet gcloud compute instance-groups unmanaged delete www-instance-group-central1a --zone us-central1-a --quiet gcloud compute instance-groups unmanaged delete www-instance-group-central1c --zone us-central1-c --quiet
8. Selamat!
Selamat, Anda telah menyelesaikan codelab.
Yang telah kita bahas
- Memahami manfaat layanan backend regional
- Membuat load balancer jaringan dengan kumpulan target
- Melakukan validasi kumpulan target
- Membuat layanan backend regional menggunakan grup instance tidak terkelola
- Melakukan migrasi kumpulan target ke layanan backend
- Melakukan validasi layanan backend