Melakukan penskalaan otomatis pada layanan web secara global di Compute Engine


Tutorial ini menunjukkan cara menyiapkan layanan web yang tersedia secara global dengan grup instance terkelola Compute Engine regional yang secara otomatis dapat diskalakan untuk memenuhi kebutuhan kapasitas. Anda dapat menggunakan teknik yang ditunjukkan dalam tutorial ini untuk menerapkan project Anda sendiri yang skalabel dan didistribusikan secara global di Compute Engine.

Tujuan

  • Men-deploy beberapa grup instance terkelola Compute Engine regional dengan penskalaan otomatis diaktifkan.
  • Membuat load balancer lintas region.
  • Membuat traffic pengujian dari berbagai region di seluruh dunia.
  • Gunakan konsol Google Cloud untuk memvisualisasikan cara load balancer merutekan permintaan dan cara grup instance melakukan penskalaan otomatis untuk memenuhi permintaan.

Biaya

Tutorial ini menggunakan komponen Google Cloud yang dapat ditagih termasuk:

  • Compute Engine

Sebelum memulai

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Make sure that billing is enabled for your Google Cloud project.

  3. Enable the Compute Engine API.

    Enable the API

Arsitektur aplikasi

Aplikasi ini mencakup komponen Compute Engine berikut:

  1. Template instance: Template yang digunakan untuk membuat setiap instance dalam grup instance.
  2. Grup instance: Beberapa grup instance yang menskalakan otomatis berdasarkan traffic masuk.
  3. Load balancer: Load balancer HTTP yang mendistribusikan traffic di antara grup instance.
  4. Instance: Beberapa instance pengujian untuk menghasilkan traffic pengujian dari berbagai bagian dunia.

Diagram arsitektur sistem yang menampilkan load balancer dengan beberapa grup instance regional

Menyiapkan layanan web

Membuat grup instance

Konsol

  1. Buat jaringan untuk grup instance.

    1. Di Konsol Google Cloud, buka halaman Jaringan VPC.

      Buka VPC networks

    2. Klik Create VPC Network.

    3. Tetapkan Name ke fortressnet.

    4. Tetapkan Subnet creation mode ke Automatic.

    5. Klik Create di bagian bawah halaman.

  2. Buat aturan firewall untuk jaringan tersebut. Aturan ini akan mengizinkan semua permintaan HTTP dikirim ke instance Anda.

    1. Di konsol Google Cloud, buka halaman Firewall rules.

      Buka Aturan firewall

    2. Klik Create Firewall Rule.

    3. Tetapkan Name ke fortressnet-allow-http.

    4. Untuk Network, pilih fortressnet.

    5. Untuk Target, pilih All instances in the network.

    6. Tetapkan Source IPv4 ranges ke 0.0.0.0/0.

    7. Untuk Protocols and ports, pilih Specified protocols and ports, lalu pilih kotak centang tcp dan masukkan 80.

    8. Klik Buat.

  3. Membuat template instance. Sertakan skrip startup yang memulai server web Apache sederhana di setiap instance.

    1. Di konsol Google Cloud, buka halaman Template instance.

      Buka halaman Template instance

    2. Klik Create instance template.

    3. Tetapkan Name ke fort-template.

    4. Untuk Machine configuration, pilih e2-micro (2 vCPU, 1 GB memory).

    5. Di bagian Advanced options, luaskan Networking, lalu lakukan hal berikut:

      1. Di bagian Network interfaces, luaskan antarmuka jaringan untuk mengeditnya.
      2. Untuk Network, pilih fortressnet.
    6. Di bagian Management, untuk Automation, masukkan Startup script berikut:

      apt update && apt -y install apache2
      

    7. Klik Buat.

  4. Buat beberapa grup instance terkelola regional menggunakan template instance. Konfigurasikan penskalaan otomatis untuk setiap grup instance.

    1. Di konsol Google Cloud, buka halaman Instance groups.

      Buka Instance groups

    2. Klik Create instance group untuk membuat grup instance terkelola baru.

    3. Pilih New managed instance group (stateless).

    4. Tetapkan Name ke us-central1-pool.

    5. Untuk Instance template, pilih fort-template.

    6. Untuk Location, pilih Multiple zones.

    7. Untuk Region, pilih us-central1. Untuk Zones, biarkan nilai yang telah ditetapkan dipilih.

    8. Untuk Autoscaling mode, pilih On: add and remove instances to the group.

    9. Tetapkan Minimum number of instances ke 1.

    10. Tetapkan Maximum number of instances ke 5.

    11. Untuk Autoscaling signals, edit pilihan default (pemanfaatan CPU) dan tetapkan Signal type ke HTTP load balancing utilization.

    12. Tetapkan Target HTTP load balancing utilization ke 80.

    13. Klik Done.

    14. Klik Buat. Dialog akan menampilkan pesan bahwa Anda juga harus menetapkan grup instance ke layanan backend load balancer HTTP.

    15. Pada dialog konfirmasi, klik Confirm. Anda dapat mengonfigurasi load balancer setelah membuat semua grup instance.

    16. Ulangi langkah-langkah ini untuk membuat dua grup instance lagi dengan perubahan berikut:

      • Buat grup dengan Name sebagai europe-west1-pool dan Region sebagai europe-west1.
      • Buat grup dengan Name sebagai asia-east1-pool dan Region sebagai asia-east1.
  5. (Opsional) Pastikan instance responsif dan menyalurkan traffic HTTP. Uji alamat IP eksternal dari satu atau beberapa instance. Anda mungkin perlu menunggu sebentar hingga instance menyelesaikan proses startup.

    1. Di konsol Google Cloud, buka halaman VM instances.

      Buka instance VM

    2. Pastikan setiap instance yang berjalan memiliki tanda centang hijau di kolom Status di samping nama grup instance Anda.

    3. Salin IP Eksternal instance dan tempelkan ke browser web.

    Anda akan melihat halaman web 'Apache2 Debian Default Page'.

    Jika tampaknya tidak berhasil, coba tunggu beberapa saat.

gcloud

  1. Buat jaringan untuk grup instance.

    gcloud compute networks create fortressnet --subnet-mode auto
    
  2. Buat aturan firewall untuk jaringan tersebut. Aturan ini akan mengizinkan semua permintaan HTTP dikirim ke instance Anda.

    gcloud compute firewall-rules create fortressnet-allow-http \
        --network fortressnet \
        --allow tcp:80
    
  3. Membuat template instance. Sertakan skrip startup yang memulai server web Apache sederhana di setiap instance.

    gcloud compute instance-templates create fort-template \
        --machine-type e2-micro \
        --network fortressnet \
        --metadata startup-script='apt update && apt -y install apache2'
    
  4. Buat beberapa grup instance terkelola regional menggunakan template instance. Konfigurasikan penskalaan otomatis untuk setiap grup instance.

    gcloud compute instance-groups managed create us-central1-pool \
        --region us-central1 \
        --template fort-template \
        --size 1
    gcloud compute instance-groups managed set-autoscaling us-central1-pool \
        --region us-central1 \
        --min-num-replicas 1 \
        --max-num-replicas 5 \
        --scale-based-on-load-balancing \
        --target-load-balancing-utilization .8
    
    gcloud compute instance-groups managed create europe-west1-pool \
        --region europe-west1 \
        --template fort-template \
        --size 1
    gcloud compute instance-groups managed set-autoscaling europe-west1-pool \
        --region europe-west1 \
        --min-num-replicas 1 \
        --max-num-replicas 5 \
        --scale-based-on-load-balancing \
        --target-load-balancing-utilization .8
    
    gcloud compute instance-groups managed create asia-east1-pool \
        --region asia-east1 \
        --template fort-template \
        --size 1
    gcloud compute instance-groups managed set-autoscaling asia-east1-pool \
        --region asia-east1 \
        --min-num-replicas 1 \
        --max-num-replicas 5 \
        --scale-based-on-load-balancing \
        --target-load-balancing-utilization .8
    
  5. (Opsional) Pastikan instance responsif dan menyalurkan traffic HTTP. Uji alamat IP eksternal dari satu atau beberapa instance. Anda mungkin perlu menunggu sebentar hingga instance menyelesaikan proses startup.

    1. Cantumkan instance Anda,

      gcloud compute instances list
      

    2. Verifikasi di kolom STATUS bahwa instance-nya adalah RUNNING.

    3. Periksa instance dengan membuat kueri alamat IP-nya di kolom EXTERNAL_IP.

      curl http://EXTERNAL_IP | head
      

    Anda akan melihat beberapa teks HTML, termasuk baris <title>Apache2 Debian Default Page: It works</title>.

    Jika tampaknya tidak berhasil, coba tunggu beberapa saat.

Mengonfigurasi load balancer

Load balancer akan mendistribusikan permintaan klien di antara beberapa backend.

Konsol

Memulai konfigurasi

  1. Di konsol Google Cloud, buka halaman Load balancing.

    Buka Load balancing

  2. Klik Create load balancer.
  3. Untuk Type of load balancer, pilih Application Load Balancer (HTTP/HTTPS), lalu klik Next.
  4. Untuk Public facing or internal, pilih Public facing (external), lalu klik Next.
  5. Untuk Global or single region deployment, pilih Best for global workloads, lalu klik Next.
  6. Untuk Load balancer generation, pilih Global external Application Load Balancer, lalu klik Next.
  7. Klik Konfigurasikan.

Konfigurasi dasar

  1. Tetapkan Load balancer name sebagai fortressnet-balancer.

Konfigurasi backend

  1. Di halaman Create global Application Load Balancer, klik Backend configuration.
  2. Di menu pull-down Create or select backend services & backend buckets, pilih Backend services, lalu Create a backend service. Anda akan melihat kotak dialog Create Backend Service.
  3. Tetapkan Name layanan backend ke fortressnet-backend-service.
  4. Di kotak dialog New backend, tetapkan Instance group ke asia-east1-pool.
  5. Untuk Balancing mode, pilih Rate.
  6. Tetapkan Maximum RPS ke PRS 100 per instance.
  7. Klik Done.
  8. Klik Add backend.
  9. Di kotak dialog New backend, tetapkan Instance group ke europe-west1-pool.
  10. Untuk Balancing mode, pilih Rate.
  11. Tetapkan Maximum RPS ke PRS 100 per instance.
  12. Klik Done.
  13. Klik Add backend.
  14. Di kotak dialog New backend, tetapkan Instance group ke us-central1-pool.
  15. Untuk Balancing mode, pilih Rate.
  16. Tetapkan Maximum RPS ke PRS 100 per instance.
  17. Klik Done.
  18. Di bagian Health check, pilih Create a health check.
  19. Tetapkan Name ke http-basic-check.
  20. Untuk Protocol, pilih HTTP.
  21. Tetapkan Port ke 80.
  22. Klik Simpan dan lanjutkan.
  23. Klik Buat.

Aturan host dan jalur

  1. Di panel kiri halaman Create global external Application Load Balancer, klik Host and path rules.
    Untuk contoh ini, kita tidak perlu mengonfigurasi aturan host atau jalur apa pun karena semua traffic akan mengarah ke aturan default. Jadi, kita dapat menerima nilai default yang telah diisi otomatis.

Konfigurasi frontend

  1. Di panel kiri halaman Create global external Application Load Balancer, klik Frontend configuration.
  2. Tetapkan Nama ke fortressnet-http-rule.
  3. Untuk IP version, pilih IPv4.
  4. Untuk IP address, pilih Create IP address.
  5. Di kotak dialog Reserve a new static IP, tetapkan Name ke fortressnet-ip.
  6. Klik Reserve dan tunggu beberapa saat.
  7. Klik Done di bagian bawah kotak dialog New Frontend IP and port.
  8. Klik Add Frontend IP and Port.
  9. Tetapkan Nama ke fortressnet-http-ipv6-rule.
  10. Untuk IP version, pilih IPv6.
  11. Untuk IP address, pilih Create IP address.
  12. Di kotak dialog, tetapkan Name ke fortressnet-ipv6.
  13. Klik Reserve dan tunggu beberapa saat.
  14. Klik Done di bagian bawah kotak dialog New Frontend IP and port.

Tinjau dan selesaikan

  1. Di panel kiri halaman Create global external Application Load Balancer, klik Review and finalize.
  2. Bandingkan setelan dengan yang ingin Anda buat.
  3. Jika setelan sudah benar, klik Create di bagian bawah panel kiri. Anda akan kembali ke layar Load Balancing. Setelah load balancer dibuat, tanda centang hijau di sampingnya menunjukkan bahwa load balancer sedang berjalan.

gcloud

Konfigurasi backend

  1. Membuat health check dasar. Tindakan ini akan memeriksa apakah backend load balancer merespons permintaan HTTP atau tidak.

    gcloud compute health-checks create http http-basic-check
    
  2. Membuat layanan backend global. Layanan backend ini akan menerima traffic HTTP dari load balancer.

    gcloud compute backend-services create fortressnet-backend-service \
        --protocol HTTP \
        --health-checks http-basic-check \
        --global
    
  3. Tambahkan grup instance sebagai backend regional dari layanan backend. Konfigurasi ini akan mendistribusikan traffic di antara backend berdasarkan jumlah maksimum permintaan per detik (RPS) per instance.

    gcloud compute backend-services add-backend fortressnet-backend-service \
        --balancing-mode RATE \
        --max-rate-per-instance 100 \
        --instance-group us-central1-pool \
        --instance-group-region us-central1 \
        --global
    gcloud compute backend-services add-backend fortressnet-backend-service \
        --balancing-mode RATE \
        --max-rate-per-instance 100 \
        --instance-group europe-west1-pool \
        --instance-group-region europe-west1 \
        --global
    gcloud compute backend-services add-backend fortressnet-backend-service \
        --balancing-mode RATE \
        --max-rate-per-instance 100 \
        --instance-group asia-east1-pool \
        --instance-group-region asia-east1 \
        --global
    

Aturan host dan jalur

  1. Tentukan peta URL. Peta URL mengarahkan URL yang berbeda ke layanan backend yang berbeda. Karena kita hanya memiliki satu layanan backend, kita cukup menyetel layanan backend tersebut sebagai layanan default untuk semua URL.

    gcloud compute url-maps create fortressnet-balancer \
        --default-service fortressnet-backend-service
    
  2. Buat rute proxy HTTP. Rute proxy HTTP menerima permintaan HTTP dan merutekannya sesuai dengan peta URL Anda. Dalam hal ini, metode ini akan mengirim semua permintaan ke layanan backend tunggal Anda.

    gcloud compute target-http-proxies create fortressnet-http-proxy \
        --url-map fortressnet-balancer
    

Konfigurasi frontend

  1. Buat dua alamat IP eksternal statis global: satu untuk IPv4 dan satu untuk IPv6. Ini akan menjadi alamat IP eksternal global dari load balancer.

    gcloud compute addresses create fortressnet-ip \
        --ip-version IPV4 \
        --network-tier=PREMIUM \
        --global
    gcloud compute addresses create fortressnet-ipv6 \
        --ip-version IPV6 \
        --network-tier=PREMIUM \
        --global
    
  2. Cari alamat IP eksternal load balancer.

    gcloud compute addresses list
    
  3. Buat aturan penerusan global untuk alamat IP eksternal. Tindakan ini akan meneruskan permintaan HTTP IPv4 dan IPv6 ke proxy HTTP Anda.

    gcloud compute forwarding-rules create fortressnet-http-rule \
        --load-balancing-scheme=EXTERNAL \
        --network-tier=PREMIUM \
        --global \
        --target-http-proxy fortressnet-http-proxy \
        --ports 80 \
        --address LOAD_BALANCER_IP_ADDRESS
    
    gcloud compute forwarding-rules create fortressnet-http-ipv6-rule \
        --load-balancing-scheme=EXTERNAL \
        --network-tier=PREMIUM \
        --global \
        --target-http-proxy fortressnet-http-proxy \
        --ports 80 \
        --address LOAD_BALANCER_IPV6_ADDRESS
    

(Opsional) Pastikan load balancer berfungsi. Mungkin Anda perlu menunggu satu atau tiga menit,

Konsol

  1. Di konsol Google Cloud, buka halaman Load balancing.

    Buka Load balancing

  2. Tunggu hingga fortressnet-balancer memiliki tanda centang hijau di bawah kolom Backends.

  3. Klik fortressnet-balancer.

  4. Di bagian Frontend, salin alamat IPv4 di kolom IP:Port. (Alamat IPv4 dalam bentuk www.xxx.yyy.zzz. Anda tidak memerlukan nomor port akhir :nn.) Jika bagian Frontend tidak ada, coba tunggu beberapa saat, lalu muat ulang halaman web.

  5. Masukkan alamat IP di browser web.

Anda akan melihat halaman web 'Apache2 Debian Default Page'.

Jika Anda mendapatkan halaman web 'Error 404 (Not Found)', coba tunggu beberapa menit lagi.

gcloud

  1. Cari alamat IP eksternal load balancer.

    gcloud compute addresses list
    
  2. Buat kueri alamat IPv4. (Alamat IPv4 dalam bentuk www.xxx.yyy.zzz.)

    curl http://LOAD_BALANCER_IP_ADDRESS | head
    

Anda akan melihat beberapa teks HTML, termasuk baris <title>Apache2 Debian Default Page: It works</title>.

Jika Anda melihat <title>Error 404 (Not Found)!!1</title>, coba tunggu beberapa menit lagi.

Praktik Terbaik: Buat firewall aman untuk hanya mengizinkan traffic internal dari load balancer dan health check. Kemudian hapus firewall asli yang mengizinkan semua permintaan HTTP. Hal ini mencegah setiap instance dapat diakses oleh klien luar.

Konsol

  1. Buat firewall baru yang hanya mengizinkan traffic dari load balancer dan health check.

    1. Di konsol Google Cloud, buka halaman Firewall rules.

      Buka Aturan firewall

    2. Klik Create Firewall Rule.

    3. Tetapkan Name ke fortressnet-allow-load-balancer.

    4. Untuk Network, pilih fortressnet.

    5. Untuk Target, pilih All instances in the network.

    6. Untuk Source IP ranges, ketik 130.211.0.0/22 dan tekan tombol Enter, lalu ketik 35.191.0.0/16 dan tekan Enter lagi.

    7. Pada bagian Protocols and ports, pilih tcp, lalu masukkan 80.

    8. Klik Buat.

  2. Hapus firewall allow-everything yang lama.

    1. Pilih tanda centang di samping fortressnet-allow-http.
    2. Klik Delete di bagian atas halaman.
    3. Di kotak dialog, klik Delete.

gcloud

  1. Buat firewall baru yang hanya mengizinkan traffic dari load balancer dan health check.

    gcloud compute firewall-rules create fortressnet-allow-load-balancer \
        --network fortressnet \
        --source-ranges 130.211.0.0/22,35.191.0.0/16 \
        --allow tcp:80
    
  2. Hapus firewall allow-everything yang lama.

    gcloud compute firewall-rules delete fortressnet-allow-http -q
    

(Opsional) Pastikan penskalaan otomatis dan load balancing berfungsi

Membuat beberapa traffic pengujian

Misalkan saat itu pagi hari di Eropa dan layanan web Anda tiba-tiba menjadi viral di internet. Buat permintaan klien dalam jumlah besar sekaligus dari Eropa.

Konsol

  1. Buat instance yang diinstal dengan alat pengujian beban Siege.

    1. Di konsol Google Cloud, buka halaman Create an instance.

      Buka Create an instance

    2. Tetapkan Name ke europe-loadtest.

    3. Untuk Region, pilih europe-west1.

    4. Untuk setelan lanjutan, luaskan bagian Advanced options, lalu lakukan hal berikut:

      1. Luaskan bagian Management.
      2. Di kolom Automation, masukkan skrip startup berikut:
        apt -y install siege
        
    5. Untuk membuat VM, klik Create.

  2. Dapatkan alamat IPv4 load balancer.

    1. Di konsol Google Cloud, buka halaman Load balancing.

      Buka Load balancing

    2. Klik fortressnet-balancer.

    3. Di bagian Frontend, salin alamat IPv4 di kolom IP:Port. (Alamat IPv4 dalam bentuk www.xxx.yyy.zzz.)

  3. SSH ke instance pengujian beban.

    1. Di konsol Google Cloud, buka halaman VM instances.

      Buka VM instances

    2. Tunggu hingga instance europe-loadtest memiliki tanda centang hijau di bawah kolom Name.

    3. Klik SSH di europe-loadtest pada kolom Connect.

  4. Mulai siege. Targetkan alamat IPv4 load balancer.

    siege -c150 http://LOAD_BALANCER_IP_ADDRESS
    

gcloud

  1. Buat instance yang diinstal dengan alat pengujian beban Siege.

    gcloud compute instances create europe-loadtest \
        --network default \
        --zone europe-west1-c \
        --metadata startup-script='apt -y install siege'
    
  2. Dapatkan alamat IPv4 load balancer.

    gcloud compute addresses list
    
  3. Buka sesi shell baru tempat perintah gcloud tersedia.

    1. Di sesi shell baru Anda, terapkan SSH ke instance pengujian beban.

      gcloud compute ssh --zone europe-west1-c europe-loadtest
      
    2. Mulai siege. Targetkan alamat IPv4 load balancer.

      siege -c150 http://LOAD_BALANCER_IP_ADDRESS
      

Setelah menjalankan perintah siege, Anda akan melihat output mendeklarasikan The server is now under siege...

[alert] Zip encoding disabled; siege requires zlib support to enable it
** SIEGE 4.0.2
** Preparing 150 concurrent users for battle.
The server is now under siege...

Memantau load balancing dan penskalaan otomatis

  1. Di konsol Google Cloud, buka halaman Load balancing.

    Buka Load balancing

  2. Klik load balancer bernama fortressnet-balancer.

  3. Klik tab Monitoring.

  4. Di drop-down Backend, pilih fortressnet-backend-service.

Mungkin perlu waktu hingga sepuluh menit untuk menampilkan data yang cukup. Dalam waktu dekat Anda akan melihat tampilan yang mirip dengan berikut ini:

Layar pemantauan konsol Google Cloud yang menampilkan permintaan dari Eropa yang didistribusikan secara merata di ketiga backend.

Apa yang terjadi sini:

  1. Pengujian beban mulai mengirimkan traffic dalam jumlah besar sekaligus. Pada awalnya, load balancer mendistribusikan permintaan secara merata di antara ketiga backend. Jumlah permintaan dengan cepat melebihi batas penskalaan otomatis, dan bahkan dapat menyebabkan server menampilkan Backend 5xx errors yang akan muncul di tampilan pemantauan. Autoscaler mulai menjalankan instance tambahan sesuai kebutuhan.

  2. Penskalaan otomatis dapat memenuhi kebutuhan kapasitas. Untuk meminimalkan latensi permintaan, load balancer Compute Engine mencoba merutekan permintaan ke backend yang terdekat dengan klien. Dalam hal ini, karena traffic pengujian beban berasal dari Eropa, load balancer akan lebih memilih untuk merutekan lebih banyak permintaan ke backend Eropa. Akibatnya, penskalaan otomatis dapat menjalankan lebih banyak instance di backend Eropa untuk menangani sebagian kecil permintaan yang lebih tinggi.

Buat traffic pengujian di tempat lain

Misalkan layanan web Anda juga populer di Asia dengan banyaknya pengunjung internet di sore hari. Buat permintaan dalam jumlah tinggi dari Asia.

Konsol

  1. Untuk membuat instance lain yang diinstal dengan alat pengujian beban Siege, lakukan hal berikut:

    1. Di konsol Google Cloud, buka halaman Instance VM.

      Buka instance VM

    2. Klik Create instance.

    3. Tetapkan Name ke asia-loadtest.

    4. Untuk Region, pilih asia-east1.

    5. Luaskan bagian Advanced options.

    6. Luaskan bagian Management.

    7. Di bagian Automation, masukkan skrip startup berikut:

      apt -y install siege
      

    8. Klik Create.

  2. Untuk mendapatkan alamat IP load balancer, lakukan langkah berikut:

    1. Di konsol Google Cloud, buka halaman Load balancing.

      Buka Load balancing

    2. Klik fortressnet-balancer.

    3. Di bagian Frontend, salin alamat IPv4 di kolom IP:Port. (Alamat IPv4 dalam bentuk www.xxx.yyy.zzz.)

  3. SSH ke instance pengujian beban.

    1. Tunggu hingga instance asia-loadtest memiliki tanda centang hijau di bawah kolom Name.
    2. Klik SSH di asia-loadtest pada kolom Connect.
  4. Mulai siege. Targetkan alamat IPv4 load balancer.

    siege -c150 http://LOAD_BALANCER_IP_ADDRESS
    

gcloud

  1. Dalam sesi shell asli Anda, buat instance lain yang diinstal dengan alat pengujian beban Siege.

    gcloud compute instances create asia-loadtest \
        --network default \
        --zone asia-east1-c \
        --metadata startup-script='apt -y install siege'
    
  2. Dapatkan alamat IPv4 load balancer.

    gcloud compute addresses list
    
  3. Buka sesi shell baru tempat perintah gcloud tersedia.

    1. Di sesi shell baru Anda, terapkan SSH ke instance pengujian beban.

      gcloud compute ssh --zone asia-east1-c asia-loadtest
      
    2. Mulai siege. Targetkan alamat IPv4 load balancer.

      siege -c150 http://LOAD_BALANCER_IP_ADDRESS
      

Sekali lagi, Anda akan melihat output yang mendeklarasikan The server is now under siege...

[alert] Zip encoding disabled; siege requires zlib support to enable it
** SIEGE 4.0.2
** Preparing 150 concurrent users for battle.
The server is now under siege...

Memantau load balancing dan penskalaan otomatis

Kembali ke tampilan pemantauan load balancing dari terakhir kali. Mungkin diperlukan waktu hingga sepuluh menit untuk menampilkan cukup data baru. Anda akan segera melihat tampilan yang mirip dengan berikut ini:

Layar pemantauan konsol Google Cloud yang menampilkan permintaan dari Eropa dan Asia yang didistribusikan di ketiga backend

Apa yang terjadi sini:

  1. Sekali lagi, pengujian beban mengirim permintaan dalam jumlah besar sekaligus. Pada awalnya, load balancer mendistribusikan permintaan secara merata di antara tiga backend yang ada. Karena jumlah permintaan melebihi batas penskalaan otomatis, autoscaler mulai menjalankan instance tambahan sesuai kebutuhan.

  2. Penskalaan otomatis akan memenuhi kebutuhan kapasitas baru. Load balancer masih lebih memilih untuk merutekan permintaan ke backend terdekat yang tersedia. Akibatnya, akhirnya backend Asia menerima permintaan sebagian besar dari Asia, backend Eropa menerima permintaan sebagian besar dari Eropa, dan backend AS menerima permintaan lainnya.

Pembersihan

Setelah menyelesaikan tutorial, Anda dapat membersihkan resource yang dibuat agar resource tersebut berhenti menggunakan kuota dan dikenai biaya. Bagian berikut menjelaskan cara menghapus atau menonaktifkan resource ini.

Menghapus project

Cara termudah untuk menghilangkan penagihan adalah dengan menghapus project yang Anda buat untuk tutorial.

Untuk menghapus project:

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Menghapus instance

Untuk menghapus instance Compute Engine:

  1. In the Google Cloud console, go to the VM instances page.

    Go to VM instances

  2. Select the checkbox for the instance that you want to delete.
  3. To delete the instance, click More actions, click Delete, and then follow the instructions.

Langkah berikutnya