Mentransisi load balancer jaringan dari kumpulan target ke layanan backend regional

1. Pengantar

Panduan ini berisi 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 Load Balancing Jaringan, pelanggan Google Cloud memiliki alat yang andal untuk mendistribusikan traffic eksternal di antara virtual machine di region Google Cloud. Untuk memudahkan pelanggan mengelola traffic yang masuk dan mengontrol perilaku load balancer, baru-baru ini kami menambahkan dukungan untuk layanan backend ke Load Balancing Jaringan. Hal ini memberikan skala, kecepatan, performa, dan ketahanan yang lebih baik kepada pelanggan kami dalam deployment mereka, semuanya dengan cara yang mudah dikelola.

Kini kami mendukung layanan backend dengan Load Balancing Jaringan—peningkatan yang signifikan dibandingkan pendekatan sebelumnya, yaitu 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.

267db35a58145be.pngS

Secara langsung, layanan backend regional menyediakan:

  • Health check berakurasi tinggi dengan health check terpadu - Dengan layanan backend regional, Anda kini dapat memanfaatkan sepenuhnya fitur health check load balancing, sehingga membebaskan diri 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 instance lain sebagai sekunder dan melakukan failover traffic saat kondisi instance di 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. Kini 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 berisi 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 memandu Anda dalam melakukan transisi load balancer jaringan berbasis kumpulan target contoh berikut untuk menggunakan layanan backend regional

b2ac8a09e53e27f8.png

Sebelum: Load Balancing Jaringan dengan kumpulan target

Deployment load balancer jaringan berbasis layanan backend yang dihasilkan akan terlihat seperti ini.

f628fdad64c83af3.png

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:

  1. Kelompokkan instance kumpulan target Anda ke dalam grup instance. Layanan backend hanya berfungsi dengan grup instance terkelola atau tidak terkelola. Perlu diperhatikan 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.
  2. Buat layanan backend regional. Jika deployment Anda menyertakan kumpulan target cadangan, Anda harus menentukan rasio failover saat membuat layanan backend. Rasio ini harus cocok dengan rasio failover yang sebelumnya dikonfigurasi untuk deployment kumpulan target.
  3. Menambahkan grup instance (yang dibuat sebelumnya) ke layanan backend. Jika deployment Anda menyertakan kumpulan target cadangan, tandai grup instance failover yang sesuai dengan flag –failover saat menambahkannya ke layanan backend.
  4. Konfigurasi 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. Anda harus membuat alamat IP baru untuk frontend load balancer. Kemudian, ubah setelan DNS Anda agar dapat bertransisi dengan lancar dari alamat IP load balancer berbasis kumpulan target lama ke alamat IP baru.

Penyiapan lingkungan mandiri

  1. 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.

96a9c957bc475304.png

b9a10ebdf5b5a448.png

a1e3c01a38fa61c2.png

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.

  1. 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:

bce75f34b2c53987.png

Hanya perlu waktu beberapa saat untuk penyediaan dan terhubung ke lingkungan. Jika sudah selesai, Anda akan melihat tampilan seperti ini:

f6ef2b5f13479f3a.png

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

Buat 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 yang tidak dikelola

Membuat instance 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

Menambahkan instance 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 Balancer → Frontends (www-rule)

Gunakan perintah curl dari terminal workstation Anda untuk mengakses alamat IP eksternal dan mengamati load balancing di keempat 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 yang dikaitkan dengan melakukan tindakan berikut:

Pilih Load Balancer → Frontend

Selain itu, catat keempat kumpulan target

Pilih Load Balancer → Pilih ‘www-pool'

Merutekan 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

9a393b3ca4e0942c.pngS

Validasi aturan penerusan frontend kini dikaitkan dengan load balancer 'my-backend-service'

Pilih Load Balancer → Frontend

Perhatikan nama aturan ‘www-rule' Alamat IP dipertahankan dan load balancer 'my-backend-service' sekarang digunakan

Gunakan perintah curl dari terminal workstation untuk mengakses alamat IP eksternal dan mengamati load balancing di berbagai layanan backend yang baru terkait. 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