LB HTTP Eksternal dengan Codelab Pengelolaan Traffic Lanjutan (Envoy)

1. Pengantar

Selamat datang di Codelab HTTPs LB Eksternal dengan Codelab Pengelolaan Traffic Lanjutan (Envoy)!

Versi terbaru Load Balancer Eksternal HTTP(S) dengan Pengelolaan Traffic Lanjutan berisi semua fitur Load Balancer HTTP(S) Global Eksternal Klasik Klasik kami yang sudah ada, tetapi dengan daftar kemampuan Pengelolaan Traffic Lanjutan yang terus bertambah. Beberapa kemampuan ini baru bagi Load Balancer kami, dan beberapa di antaranya memberikan fitur yang ditingkatkan pada kemampuan yang sudah ada. Sebagian daftar kemampuan ini mencakup:

  • Pembagian Traffic Berbobot
  • Minta Pencerminan
  • Deteksi Pencilan
  • Meminta Percobaan Ulang
  • Injeksi Kesalahan
  • Opsi Afinitas Sesi Backend tambahan
  • Opsi Transformasi Header Tambahan
  • Cross-Origin Resource Sharing (CORS)
  • Algoritma Load Balancing Baru

Yang akan Anda pelajari

  • Cara menyiapkan Grup Instance Terkelola serta VPC dan aturan firewall terkait
  • Cara menggunakan fitur pengelolaan traffic lanjutan dari load balancer baru
  • Cara memvalidasi bahwa fitur pengelolaan traffic lanjutan berfungsi sebagaimana mestinya.

Yang Anda butuhkan

  • Jaringan Dasar dan pengetahuan tentang HTTP
  • Pengetahuan dasar mengenai command line Unix/Linux

Topologi Codelab & kasus penggunaan

dd8bd5e8e1341878.png

Gambar 1 - Topologi Perutean Load Balancer HTTP

Dalam codelab ini, Anda akan menyiapkan tiga grup instance terkelola, satu di Timur, Barat, dan Tengah. Anda akan membuat load balancer https eksternal global. Load balancer akan menggunakan beberapa fitur dari daftar kemampuan lanjutan yang didukung oleh load balancer berbasis envoy. Setelah di-deploy, Anda kemudian akan membuat beberapa simulasi beban dan memastikan konfigurasi yang ditetapkan berfungsi dengan benar.

2. Penyiapan dan Persyaratan

Penyiapan lingkungan mandiri

  1. Login ke Google Cloud Console dan buat project baru atau gunakan kembali project yang sudah ada. Jika belum memiliki akun Gmail atau Google Workspace, Anda harus membuatnya.

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • Nama project adalah nama tampilan untuk peserta project ini. String ini adalah string karakter yang tidak digunakan oleh Google API, dan Anda dapat memperbaruinya kapan saja.
  • Project ID harus unik di semua project Google Cloud dan tidak dapat diubah (tidak dapat diubah setelah ditetapkan). Cloud Console otomatis menghasilkan string unik; biasanya Anda tidak peduli dengan kata-katanya. Pada sebagian besar codelab, Anda harus mereferensikan Project ID (dan biasanya diidentifikasi sebagai PROJECT_ID). Jadi, jika Anda tidak menyukainya, buat ID acak lain, atau, Anda dapat mencoba sendiri dan melihat apakah tersedia. Kemudian file akan "dibekukan" setelah project dibuat.
  • Ada nilai ketiga, Nomor Project yang digunakan oleh beberapa API. Pelajari lebih lanjut ketiga nilai ini di dokumentasi.
  1. Selanjutnya, Anda harus mengaktifkan penagihan di Cloud Console untuk menggunakan API/resource Cloud. Menjalankan operasi dalam codelab ini seharusnya tidak memerlukan banyak biaya, bahkan mungkin tidak sama sekali. Untuk menonaktifkan resource agar tidak menimbulkan penagihan di luar tutorial ini, ikuti petunjuk "pembersihan" yang ada di akhir codelab. 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:

55efc1aaa7a4d3ad.png

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

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

Sebelum memulai

Di dalam Cloud Shell, pastikan project ID Anda sudah disiapkan

gcloud config list project

gcloud config set project [YOUR-PROJECT-NAME]

PROJECT_ID=[YOUR-PROJECT-NAME]

{i>echo $PROJECT_ID<i}

Aktifkan API

Aktifkan semua layanan yang diperlukan

gcloud services enable compute.googleapis.com
gcloud services enable logging.googleapis.com
gcloud services enable monitoring.googleapis.com

3. Membuat jaringan VPC

Membuat jaringan VPC

Dari Cloud Shell

gcloud compute networks create httplbs --subnet-mode=auto

Output

Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/httplbs].
NAME: httplbs
SUBNET_MODE: AUTO
BGP_ROUTING_MODE: REGIONAL
IPV4_RANGE:
GATEWAY_IPV4:

Membuat aturan firewall VPC

Setelah membuat VPC, sekarang Anda akan membuat aturan firewall. Aturan firewall akan digunakan untuk mengizinkan semua IP mengakses IP eksternal dari situs aplikasi pengujian di port 80 untuk traffic http.

Dari Cloud Shell

gcloud compute firewall-rules create httplb-allow-http-rule \
--allow tcp:80 \
--network httplbs \
--source-ranges 0.0.0.0/0 \
--priority 700

Output

Creating firewall...working..Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/httplb-allow-http-rule].
Creating firewall...done.
NAME: httplb-allow-http-rule
NETWORK: httplbs
DIRECTION: INGRESS
PRIORITY: 700
ALLOW: tcp:80
DENY:
DISABLED: False

4. Menyiapkan Grup Instance Terkelola

Anda perlu menyiapkan Grup Instance Terkelola yang mencakup pola untuk resource backend yang digunakan oleh Load Balancer HTTP. Pertama, kita akan membuat Template Instance yang menentukan konfigurasi untuk VM yang akan dibuat untuk setiap region. Selanjutnya, untuk backend di setiap region, kita akan membuat Grup Instance Terkelola yang merujuk ke Template Instance.

Grup Instance terkelola dapat memiliki cakupan Zona atau Regional. Untuk latihan lab ini, kita akan membuat tiga Grup Instance Terkelola regional, satu di us-east1, satu di us-west1, dan satu di us-central1.

Di bagian ini, Anda dapat melihat skrip startup yang telah dibuat sebelumnya dan akan direferensikan saat pembuatan instance. Skrip startup ini menginstal dan mengaktifkan kemampuan server web yang akan kita gunakan untuk menyimulasikan aplikasi web. Jangan ragu untuk mempelajari skrip ini.

Membuat Template Instance Timur, Barat, dan Tengah

Langkah pertama adalah membuat template instance us-east-1.

Dari Cloud Shell

gcloud compute instance-templates create us-east1-template \
   --region=us-east1 \
   --network=httplbs \
   --tags=http-server, \
   --image-family=debian-9 \
   --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://169.254.169.254/computeMetadata/v1/instance/name)"
     echo "Page served from: $vm_hostname" | \
     tee /var/www/html/index.html
     systemctl restart apache2'

Output

Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates/us-east1-template].
NAME: us-east1-template
MACHINE_TYPE: n1-standard-1
PREEMPTIBLE:
CREATION_TIMESTAMP: 2021-11-11T11:02:37.511-08:00

Langkah selanjutnya adalah membuat template instance us-west-1.

Dari Cloud Shell

gcloud compute instance-templates create us-west1-template \
   --region=us-west1 \
   --network=httplbs \
   --tags=http-server, \
   --image-family=debian-9 \
   --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://169.254.169.254/computeMetadata/v1/instance/name)"
     echo "Page served from: $vm_hostname" | \
     tee /var/www/html/index.html
     systemctl restart apache2'

Output

Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates/us-west1-template].
NAME: us-west1-template
MACHINE_TYPE: n1-standard-1
PREEMPTIBLE:
CREATION_TIMESTAMP: 2021-11-11T11:03:08.577-08:00

Langkah selanjutnya adalah membuat template instance us-central-1.

Dari Cloud Shell

gcloud compute instance-templates create us-central1-template \
   --region=us-central1 \
   --network=httplbs \
   --tags=http-server, \
   --image-family=debian-9 \
   --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://169.254.169.254/computeMetadata/v1/instance/name)"
     echo "Page served from: $vm_hostname" | \
     tee /var/www/html/index.html
     systemctl restart apache2'

Output

Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates/us-central1-template].
NAME: us-central1-template
MACHINE_TYPE: n1-standard-1
PREEMPTIBLE:
CREATION_TIMESTAMP: 2021-11-11T11:03:44.179-08:00

Kini Anda dapat memverifikasi bahwa template instance berhasil dibuat dengan perintah gcloud berikut:

Dari Cloud Shell

gcloud compute instance-templates list

Output

NAME                  MACHINE_TYPE   PREEMPTIBLE  CREATION_TIMESTAMP
us-central1-template   n1-standard-1         2021-11-09T09:25:37.263-08:00
us-east1-template      n1-standard-1         2021-11-09T09:24:35.275-08:00
us-west1-template      n1-standard-1         2021-11-09T09:25:08.016-08:00

Membuat Grup Instance yang Dikelola Timur, Barat, dan Pusat

Sekarang kita harus membuat grup instance terkelola dari template instance yang telah kita buat sebelumnya.

Dari Cloud Shell

gcloud compute instance-groups managed create us-east1-mig \
--base-instance-name=us-east1-mig \
--size=1 \
--template=us-east1-template \
--zone=us-east1-b 

Output

Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-east1-b/instanceGroupManagers/us-east1-mig].
NAME: us-east1-mig
LOCATION: us-east1-b
SCOPE: zone
BASE_INSTANCE_NAME: us-east1-mig
SIZE: 0
TARGET_SIZE: 1
INSTANCE_TEMPLATE: us-east1-template
AUTOSCALED: no

Dari Cloud Shell

gcloud compute instance-groups managed create us-west1-mig \
--base-instance-name=us-west1-mig \
--size=1 \
--template=us-west1-template \
--zone=us-west1-a  

Output

Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instanceGroupManagers/us-west1-mig].
NAME: us-west1-mig
LOCATION: us-west1-a
SCOPE: zone
BASE_INSTANCE_NAME: us-west1-mig
SIZE: 0
TARGET_SIZE: 1
INSTANCE_TEMPLATE: us-west1-template
AUTOSCALED: no

Dari Cloud Shell

gcloud compute instance-groups managed create us-central1-mig \
--base-instance-name=us-central1-mig \
--size=1 \
--template=us-central1-template \
--zone=us-central1-a 

Output

Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-central1-a/instanceGroupManagers/us-central1-mig].
NAME: us-central1-mig
LOCATION: us-central1-a
SCOPE: zone
BASE_INSTANCE_NAME: us-central1-mig
SIZE: 0
TARGET_SIZE: 1
INSTANCE_TEMPLATE: us-central1-template
AUTOSCALED: no

Kita dapat memverifikasi bahwa grup instance berhasil dibuat dengan perintah gcloud berikut:

Dari Cloud Shell

gcloud compute instance-groups list

Output

NAME                  LOCATION      SCOPE   NETWORK         MANAGED INSTANCES
us-central1-mig       us-central1   zone    httplbs          Yes      1
us-west1-mig          us-west1      zone    httplbs          Yes      1
us-east1-mig          us-east1      zone    httplbs          Yes      1

Memverifikasi Fungsi Server Web

Setiap instance dikonfigurasi untuk menjalankan server web Apache dengan skrip PHP sederhana yang dapat merender:

c87ca81d3125ac61.png

Untuk memastikan server web Anda berfungsi dengan benar, buka Compute Engine -> di seluruh rangkaian instance VM Compute Engine. Pastikan instance baru Anda (misalnya, us-east1-mig-xxx) telah dibuat sesuai dengan definisi grup instance-nya.

Sekarang, buat permintaan web di browser Anda untuk memastikan server web sedang berjalan (mungkin perlu waktu beberapa saat untuk memulai). Pada halaman VM instances di bagian Compute Engine, pilih instance yang dibuat oleh grup instance Anda dan klik IP Eksternal (publik) miliknya.

Atau, di browser Anda, navigasikan ke http://<IP_Address>

5. Menyiapkan Load Balancer

Membuat Health Check

Pertama, kita harus membuat health check dasar untuk memastikan bahwa layanan kita aktif dan berjalan dengan sukses. Kami akan membuat health check dasar, dan ada banyak penyesuaian lanjutan yang tersedia.

Dari Cloud Shell

gcloud compute health-checks create http http-basic-check \
    --port 80

Mencadangkan Alamat IP Eksternal

Untuk langkah ini, Anda harus mencadangkan alamat IP statis yang tersedia secara global yang nantinya akan ditambahkan ke Load Balancer.

Dari Cloud Shell

gcloud compute addresses create lb-ipv4-2 \
    --ip-version=IPV4 \
    --global

Pastikan Anda mencatat Alamat IP yang dicadangkan.

gcloud compute addresses describe lb-ipv4-2 \
    --format="get(address)" \
    --global

Membuat Layanan Backend

Sekarang kita harus membuat layanan backend untuk setiap grup instance terkelola yang telah kita buat sebelumnya. Satu untuk Timur, Barat, dan Tengah.

Membuat layanan backend untuk grup instance terkelola East.

Dari Cloud Shell

gcloud compute backend-services create east-backend-service \
    --load-balancing-scheme=EXTERNAL_MANAGED \
    --protocol=HTTP \
    --port-name=http \
    --health-checks=http-basic-check \
    --global

Membuat layanan backend untuk grup instance terkelola Barat.

Dari Cloud Shell

gcloud compute backend-services create west-backend-service \
    --load-balancing-scheme=EXTERNAL_MANAGED \
    --protocol=HTTP \
    --port-name=http \
    --health-checks=http-basic-check \
    --global

Membuat layanan backend untuk grup instance Terkelola pusat.

Dari Cloud Shell

gcloud compute backend-services create central-backend-service \
    --load-balancing-scheme=EXTERNAL_MANAGED \
    --protocol=HTTP \
    --port-name=http \
    --health-checks=http-basic-check \
    --global

Menambahkan MIG ke Layanan Backend

Setelah membuat layanan backend masing-masing untuk setiap cluster aplikasi, sekarang kita harus menambahkan Grup Instance Terkelola yang kita buat sebelumnya ke setiap layanan backend.

Menambahkan East MIG ke layanan backend.

Dari Cloud Shell

gcloud compute backend-services add-backend east-backend-service \
    --balancing-mode='UTILIZATION' \
    --instance-group=us-east1-mig \
    --instance-group-zone=us-east1-b \
    --global

Tambahkan West MIG ke layanan backend.

Dari Cloud Shell

gcloud compute backend-services add-backend west-backend-service \
    --balancing-mode='UTILIZATION' \
    --instance-group=us-west1-mig \
    --instance-group-zone=us-west1-a \
    --global

Menambahkan Central MIG ke layanan backend.

Dari Cloud Shell

gcloud compute backend-services add-backend central-backend-service \
    --balancing-mode='UTILIZATION' \
    --instance-group=us-central1-mig \
    --instance-group-zone=us-central1-a \
    --global

Membuat Peta URL

Peta URL adalah tempat fitur pengelolaan traffic lanjutan untuk lab ini akan aktif. Kita harus membuat file .yaml yang akan berisi konfigurasi. Dalam file .yaml, kami telah membuat awalan yang cocok di /roundrobbin, sehingga hanya traffic yang cocok dengan /roundrobbin yang akan terpengaruh oleh konfigurasi ini. Kami telah menetapkan bahwa 50% traffic harus mengarah ke east-backend-service dan 50% traffic harus ke west-backend-service. Kami juga telah menambahkan nilai header respons:{test} yang akan ada di semua respons. Terakhir, kami telah menambahkan bahwa semua traffic harus dicerminkan ke layanan backend pusat. Traffic diduplikasi dan dikirim ke sini hanya untuk tujuan pengujian.

Simpan contoh sebagai file .yaml di mesin Anda.

defaultService: https://www.googleapis.com/compute/v1/projects/[project_id]/global/backendServices/east-backend-service
kind: compute #urlMap
name: web-map-http
hostRules:
- hosts:
  - '*'
  pathMatcher: matcher1
pathMatchers:
- defaultService: https://www.googleapis.com/compute/v1/projects/[project_id]/global/backendServices/east-backend-service
  name: matcher1
  routeRules:
  - matchRules:
    - prefixMatch: /roundrobbin
    priority: 2
    headerAction:
        responseHeadersToAdd:
          - headerName: test
            headerValue: value
            replace: True
    routeAction:
        weightedBackendServices:
        - backendService: https://www.googleapis.com/compute/v1/projects/[project_id]/global/backendServices/east-backend-service
          weight: 50
        - backendService: https://www.googleapis.com/compute/v1/projects/[project_id]/global/backendServices/west-backend-service
          weight: 50
        retryPolicy:
            retryConditions: ['502', '504']
            numRetries: 3
            perTryTimeout:
                seconds: 1
                nanos: 50
        requestMirrorPolicy:
          backendService: https://www.googleapis.com/compute/v1/projects/[project_id]/global/backendServices/central-backend-service

Buat Peta URL yang mengimpor dokumen dari komputer Anda. Perhatikan bahwa jalur sumber akan berbeda tergantung tempat Anda menyimpan file .yaml.

Dari Cloud Shell

gcloud compute url-maps import web-map-http \
   --source /Users/[USERNAME]/Documents/Codelab/lbconfig.yaml \
   --global

Membuat HTTP Frontend

Langkah terakhir dalam pembuatan load balancer adalah membuat frontend. Tindakan ini akan memetakan alamat IP yang Anda pesan sebelumnya ke peta URL load balancer yang Anda buat.

Dari Cloud Shell

gcloud compute target-http-proxies create http-lb-proxy-adv \
    --url-map=web-map-http

Selanjutnya, Anda perlu membuat aturan penerusan global yang akan memetakan alamat IP yang dicadangkan sebelumnya ke proxy HTTP.

Dari Cloud Shell

gcloud compute forwarding-rules create http-content-rule \
    --load-balancing-scheme EXTERNAL_MANAGED \
    --address=lb-ipv4-2 \
    --global \
    --target-http-proxy=http-lb-proxy-adv \
    --ports=80

6. Memverifikasi bahwa Fitur Traffic Lanjutan Berfungsi

Untuk memastikan bahwa fitur pemisahan traffic yang diterapkan berfungsi, Anda perlu membuat beberapa beban. Untuk melakukannya, kita akan membuat VM baru guna menyimulasikan beban.

Buat Aturan Firewall Izinkan SSH

Agar dapat menjalankan SSH ke VM, kami akan menghasilkan traffic dari Anda terlebih dahulu harus membuat aturan firewall yang akan mengizinkan traffic SSH ke VM.

Dari Cloud Shell

gcloud compute firewall-rules create fw-allow-ssh \
    --network=httplbs \
    --action=allow \
    --direction=ingress \
    --target-tags=allow-ssh \
    --rules=tcp:22

Output

NAME          NETWORK  DIRECTION  PRIORITY  ALLOW   DENY  DISABLED
fw-allow-ssh  httplbs  INGRESS    1000      tcp:22        False

Membuat Siege-vm

Sekarang Anda akan membuat siege-vm yang akan Anda gunakan untuk menghasilkan muatan

Dari Cloud Shell

gcloud compute instances create siege-vm \
    --network=httplbs \
    --zone=us-east4-c \
    --machine-type=e2-medium \
    --tags=allow-ssh,http-server \
    --metadata=startup-script='sudo apt-get -y install siege'

Output

NAME     ZONE        MACHINE_TYPE INTERNAL_IP  EXTERNAL_IP    STATUS
siege-vm us-east4-c  e2-medium    10.150.0.3   34.85.218.119  RUNNING

Selanjutnya, Anda dapat menjalankan SSH ke VM yang Anda buat. Setelah dibuat, klik SSH untuk meluncurkan terminal, lalu hubungkan.

Setelah terhubung, jalankan perintah berikut untuk membuat beban. Gunakan alamat IP yang Anda pesan sebelumnya untuk load balancer http eksternal.

Dari Cloud Shell

siege -c 250 http://$lb-ipv4-2/roundrobbin

Output

New configuration template added to /home/cloudcurriculumdeveloper/.siege
Run siege -C to view the current settings in that file
[alert] Zip encoding disabled; siege requires zlib support to enable it: No such file or directory
** SIEGE 4.0.2
** Preparing 250 concurrent users for battle.
The server is now under siege...

Memeriksa Distribusi Beban

Setelah Siege berjalan, saatnya untuk memeriksa apakah traffic didistribusikan secara merata ke grup instance terkelola timur dan barat, Anda juga dapat memeriksa apakah pencerminan traffic berfungsi dan traffic dikirim ke grup instance terkelola pusat.

Di Konsol Cloud, pada Navigation menu, klik Network Services > Load balancing. Pilih web-map-http load balancer. Buka tab Monitoring dan Anda akan dapat melihat diagram di bawah.

f4d6803db44be253.png

Anda akan dapat melihat pembagian traffic secara real time ke MIG ini. Traffic dibagi secara merata karena Anda mengonfigurasi pembagian round robbin 50/50.

Untuk memeriksa apakah kebijakan pencerminan traffic yang dibuat berfungsi, Anda perlu memeriksa pemakaian grup instance terkelola layanan backend pusat. Untuk melakukannya, buka compute, compute engine, grup instance, lalu pilih us-central1-mig. Selanjutnya, buka tab pemantauan.

cf25e44d511529e7.png

Anda akan melihat diagram terisi yang menunjukkan bahwa traffic telah diduplikasi ke grup instance terkelola ini.

Hentikan Pengepungan

Setelah Anda menunjukkan bahwa pemisahan traffic lanjutan berhasil, saatnya untuk menghentikan pengepungan. Untuk melakukannya, kembali ke terminal SSH siege-vm, lalu tekan CTRL+C untuk menghentikan pengepungan yang berjalan.

Memvalidasi Header Respons yang Dikirim

Sebelum melakukan pembersihan, Anda dapat dengan cepat memvalidasi bahwa header respons yang sesuai dikirim oleh load balancer http. Anda telah mengonfigurasinya untuk mengirim pengujian header dengan nilai konten. Menjalankan perintah curl dari Cloud Shell akan memberikan respons yang diharapkan.

Dari Cloud Shell

curl -svo /dev/null http://lb-ipv4-2/roundrobbin

Output

*   Trying lb-ipv4-2..
* TCP_NODELAY set
* Connected to  lb-ipv4-2 ( lb-ipv4-2) port 80 (#0)
> GET /roundrobbin HTTP/1.1
> Host:  lb-ipv4-2
> User-Agent: curl/7.64.1
> Accept: */*
>
< HTTP/1.1 404 Not Found
< date: Wed, 10 Nov 2021 17:05:27 GMT
< server: envoy
< Content-Length: 273
< content-type: text/html; charset=iso-8859-1
< via: 1.1 google
< test: value
<
{ [273 bytes data]
* Connection #0 to host 34.149.2.26 left intact
* Closing connection 0

7. Pembersihan Lab

Setelah kita menyelesaikan lingkungan lab, sekarang saatnya untuk menghancurkannya. Jalankan perintah berikut untuk menghapus lingkungan pengujian.

Dari Cloud Shell

gcloud compute instances delete siege-vm --zone=us-east4-c

gcloud compute forwarding-rules delete http-content-rule --global
gcloud compute target-http-proxies delete http-lb-proxy-adv
gcloud compute url-maps delete web-map-http
gcloud compute backend-services delete east-backend-service --global
gcloud compute backend-services delete west-backend-service --global
gcloud compute backend-services delete central-backend-service --global

gcloud compute addresses delete lb-ipv4-2 --global
gcloud compute health-checks delete http-basic-check 

gcloud compute instance-groups managed delete us-east1-mig --zone us-east1-b
gcloud compute instance-groups managed delete us-west1-mig --zone us-west1-a
gcloud compute instance-groups managed delete us-central1-mig --zone us-central1-a

gcloud compute instance-templates delete "us-east1-template" 
gcloud compute instance-templates delete "us-west1-template" 
gcloud compute instance-templates delete "us-central1-template" 

gcloud compute firewall-rules delete httplb-allow-http-rule
gcloud compute firewall-rules delete fw-allow-ssh

gcloud compute networks delete httplbs 

8. Selamat!

Anda telah menyelesaikan LB HTTPs Eksternal dengan Codelab Pengelolaan Traffic Lanjutan (Envoy).

Yang telah kita bahas

  • Cara menyiapkan Grup Instance Terkelola serta VPC dan aturan firewall terkait
  • Cara menggunakan fitur pengelolaan traffic lanjutan dari load balancer baru
  • Cara memvalidasi bahwa fitur pengelolaan traffic lanjutan berfungsi sebagaimana mestinya.

Langkah berikutnya

  • Coba beberapa fitur pemilihan rute lanjutan lainnya seperti penulisan ulang URL, penambahan header CORS, dan banyak lagi ( link)