在 Compute Engine 中,以全球為範圍自動調度網路服務的資源

本教學課程說明如何透過可依容量需求自動調度資源的地區性 Compute Engine 代管執行個體群組,設定全球通用的網路服務。您可以運用本課程提及的技術,在 Compute Engine 中實際建立規模遍及全球的可擴充專案。

目標

  • 部署多個啟用自動調度資源的地區性 Compute Engine 代管執行個體群組。
  • 建立跨地區負載平衡器。
  • 從世界上各個不同地區產生測試流量。
  • 透過 Google Cloud Platform 主控台,以視覺化的方式瞭解負載平衡器如何提出要求,以及執行個體群組如何視需求自動調度資源。

費用

本教學課程使用的 GCP 可計費元件包括:

  • Compute Engine

事前準備

  1. 選取或建立 Google Cloud Platform 專案。

    前往「Manage resources」(管理資源) 頁面

  2. 請確認您已啟用 Google Cloud Platform 專案的計費功能。

    瞭解如何啟用計費功能

  3. 啟用Compute Engine API。

    啟用 API

應用程式架構

應用程式包含以下 Compute Engine 元件:

  1. 執行個體範本:這類範本是用於在執行個體群組中建立各個執行個體。
  2. 執行個體群組:多個執行個體群組,會根據連入流量自動調度資源。
  3. 負載平衡器:HTTP 負載平衡器,會將流量分配至所有執行個體群組。
  4. 執行個體:多個測試執行個體,會從全球各地產生測試流量。

系統架構圖表,顯示內含多個地區性執行個體群組的負載平衡器

設定網路服務

建立執行個體群組

主控台

  1. 建立執行個體群組網路。

    1. 前往 GCP 主控台的「VPC 網路」頁面。
      前往「VPC 網路」頁面
    2. 按一下 [建立 VPC 網路]
    3. 將「Name」(名稱) 設為 fortressnet
    4. 將「子網路建立模式」設為 [自動]
    5. 按一下頁面底部的 [建立]
  2. 建立網路防火牆規則。這項規則會允許所有傳送至執行個體的 HTTP 要求。

    1. 前往 GCP 主控台的「Firewall rules」(防火牆規則) 頁面。
      前往「防火牆規則」頁面
    2. 按一下 [建立防火牆規則]
    3. 將「Name」(名稱) 設為 fortressnet-allow-http
    4. 「Network」(網路) 請選取 fortressnet
    5. 「Targets」(目標) 請選取 All instances in the network
    6. 將「Source IP ranges」(來源 IP 範圍) 設為 0.0.0.0/0
    7. 在「Protocols and ports」(通訊協定和通訊埠) 下方選取 [tcp],然後輸入 80
    8. 按一下 [Create] (建立)
  3. 建立執行個體範本,並在其中加入開機指令碼,以便在每個執行個體上啟動簡易 Apache 網路伺服器。

    1. 前往 GCP 主控台的「Instance Templates」(執行個體範本) 頁面。
      前往「執行個體範本」頁面
    2. 點選 [建立執行個體範本]
    3. 將「Name」(名稱) 設為 fort-template
    4. 「Machine type」(機器類型) 請選取 micro (f1-micro)。
    5. 按一下 [Management, security, disks, networking, sole tenancy] (管理、安全性、磁碟、網路、單獨租用) 即可顯示進階設定,畫面上應該會出現數個分頁。
    6. 按一下 [網路] 分頁標籤。
    7. 「Network」(網路) 請選取 fortressnet
    8. 按一下 [管理] 分頁標籤。
    9. 在「自動」下方輸入以下「開機指令碼」

      apt-get update && apt-get install -y apache2
      

    10. 按一下頁面底部的 [Create] (建立)

  4. 利用執行個體範本建立多個地區性代管執行個體群組,並對各個執行個體群組設定自動調度資源。

    1. 前往 GCP 主控台的「執行個體群組」頁面。
      前往「執行個體群組」頁面
    2. 按一下 [建立執行個體群組範本]
    3. 將「Name」(名稱) 設為 us-central1-pool
    4. 「Location」(位置) 請選取 Multi-zone
    5. 「Region」(地區) 請選取 us-central1
    6. 「Instance template」(執行個體範本) 請選取 fort-template
    7. 針對「自動調度資源」,選取 [開啟]
    8. 「Autoscale based on」(自動配置依據) 請選取 HTTP load balancing usage
    9. 將「Target load balancing usage」(目標負載平衡用量) 設為 80
    10. 將「Minimum number of instances」(執行個體數量下限) 設為 1
    11. 將「Maximum number of instances」(執行個體數量上限) 設為 5
    12. 按一下 [Create] (建立)
    13. 重複上述步驟建立另外兩個執行個體群組,過程中須留意以下差異:
      • 將其中一個群組的「Name」(名稱) 設為 europe-west1-pool 且「Region」(地區) 設為 europe-west1
      • 將另一個群組的「Name」(名稱) 設為 asia-east1-pool 且「Region」(地區) 設為 asia-east1
  5. (選用) 確認執行個體處於良好的健康狀態並能提供 HTTP 流量,同時測試一或多個執行個體的外部 IP 位址。請稍候片刻,等待執行個體完成啟動程序。

    1. 前往 GCP 主控台的「VM instances」(VM 執行個體) 頁面。
      前往 VM 執行個體頁面
    2. 確認每個運作中的執行個體在「Name」(名稱) 一欄下方都有顯示綠色勾號。
    3. 複製執行個體的「外部 IP」,並貼到網路瀏覽器中。

    瀏覽器應該會顯示「Apache2 Debian Default Page」(Apache2 Debian 預設頁面) 網頁。

    如果您並未看到上述內容,請稍等幾分鐘後再試一次。

gcloud

  1. 建立執行個體群組網路。

    gcloud compute networks create fortressnet --subnet-mode auto
    
  2. 建立網路防火牆規則。這項規則會允許所有傳送至執行個體的 HTTP 要求。

    gcloud compute firewall-rules create fortressnet-allow-http \
        --network fortressnet \
        --allow tcp:80
    
  3. 建立執行個體範本,並在其中加入開機指令碼,以便在每個執行個體上啟動簡易 Apache 網路伺服器。

    gcloud compute instance-templates create fort-template \
        --machine-type f1-micro \
        --network fortressnet \
        --metadata startup-script='apt-get update && apt-get install -y apache2'
    
  4. 利用執行個體範本建立多個地區性代管執行個體群組,並對各個執行個體群組設定自動調度資源。

    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. (選用) 確認執行個體處於良好的健康狀態並能提供 HTTP 流量,同時測試一或多個執行個體的外部 IP 位址。請稍候片刻,等待執行個體完成啟動程序。

    1. 列出您的執行個體。

      gcloud compute instances list
      

    2. STATUS 一欄下方,確認執行個體處於 RUNNING 狀態。

    3. 如要檢查執行個體,請在 EXTERNAL_IP 一欄下方查詢執行個體的 IP 位址。

      curl http://[EXTERNAL_IP] | head
      

    系統應該會顯示一些 HTML 文字,其中包括以下這列內容:<title>Apache2 Debian Default Page: It works</title>

    如果您並未看到上述內容,請稍等幾分鐘後再試一次。

設定負載平衡器

負載平衡器會將用戶端要求分配至多個後端。

主控台

啟動負載平衡器設定

  1. 前往 GCP 主控台的「負載平衡」頁面。
    前往「負載平衡」頁面
  2. 按一下 [建立負載平衡器]
  3. 在「HTTP(S) 負載平衡」下方點選 [啟動設定]
  4. 將「Name」(名稱)設為 fortressnet-balancer

後端設定

  1. 在「New HTTP(S) load balancer」(新增 HTTP(S) 負載平衡器) 頁面上,按一下 [Backend configuration] (後端設定)
  2. 在「Create or select backend services & backend buckets」(建立或選擇後端服務與後端 Bucket) 下拉式選單中,依序選取 [Backend services] (後端服務) 和 [Create a backend service] (建立後端服務)。系統會隨即顯示 [Create Backend Service] (建立後端服務) 對話方塊。
  3. 將後端服務的「Name」(名稱) 設為 fortressnet-backend-service
  4. 在「New backend」(新增後端) 對話方塊下方,將「Instance group」(執行個體群組) 設為 asia-east1-pool
  5. 「Balancing mode」(平衡模式) 請選取 [Rate] (速率)
  6. 將每個執行個體的「Maximum RPS」(每秒要求數上限) 設為每秒 100 個要求。
  7. 按一下 [完成]
  8. 按一下 [Add backend] (新增後端)
  9. 在「Add backend」(新增後端) 對話方塊下方,將「Instance group」(執行個體群組) 設為 europe-west1-pool
  10. 「Balancing mode」(平衡模式) 請選取 [Rate] (速率)
  11. 將每個執行個體的「Maximum RPS」(每秒要求數上限) 設為每秒 100 個要求。
  12. 按一下 [完成]
  13. 按一下 [Add backend] (新增後端)
  14. 在「New backend」(新增後端) 對話方塊下方,將「Instance group」(執行個體群組) 設為 us-central1-pool
  15. 「Balancing mode」(平衡模式) 請選取 [Rate] (速率)
  16. 將每個執行個體的「Maximum RPS」(每秒要求數上限) 設為每秒 100 個要求。
  17. 按一下 [完成]
  18. 在「健康狀態檢查」下方,選取 [建立健康狀態檢查]
  19. 將「Name」(名稱) 設為 http-basic-check
  20. 「Protocol」(通訊協定) 請選取 HTTP
  21. 將「Port」(通訊埠) 設為 80
  22. 按一下 [儲存並繼續]
  23. 按一下 [Create] (建立)

主機與路徑規則

  1. 在「New HTTP(S) load balancer」(新增 HTTP(S) 負載平衡器) 頁面的左側面板上,按一下 [Host and path rules] (主機與路徑規則)
    在這個範例中,由於所有流量都會遵循預設規則,因此不需要設定任何主機或路徑規則,只要接受系統預先填入的預設值即可。

前端設定

  1. 在「New HTTP(S) load balancer」(新增 HTTP(S) 負載平衡器) 頁面的左側面板上,按一下 [Frontend configuration] (前端設定)
  2. 將「Name」(名稱) 設為 fortressnet-http-rule
  3. 針對「IP 版本」,選取 [IPv4]
  4. 「IP address」(IP 位址) 部分請選取 [Create IP address] (建立 IP 位址)
  5. 在「Reserve a new static IP」(預約新的靜態 IP 位址) 對話方塊中,將「Name」(名稱) 設為 fortressnet-ip
  6. 按一下 [Reserve] (預約),然後稍等幾分鐘。
  7. 在「New Frontend IP and port」(新增的前端 IP 和通訊埠) 對話方塊底部,按一下 [Done] (完成)
  8. 按一下 [Add frontend IP and port] (新增前端 IP 和通訊埠)
  9. 將「Name」(名稱) 設為 fortressnet-http-ipv6-rule
  10. 針對「IP 版本」,選取 [IPv6]
  11. 針對「IP 位址」,選取 [建立 IP 位址]
  12. 在隨即開啟的對話方塊中,將「Name」(名稱) 設為 fortressnet-ipv6
  13. 按一下 [Reserve] (預約),然後稍等幾分鐘。
  14. 在「New Frontend IP and port」(新增的前端 IP 和通訊埠) 對話方塊底部,按一下 [Done] (完成)

檢查並完成

  1. 在「New HTTP(S) load balancer」(新增 HTTP(S) 負載平衡器) 頁面的左側面板上,按一下 [Review and finalize] (檢查並完成)
  2. 將您的設定與您打算建立的內容比較。
  3. 如果設定正確無誤,請按一下左側面板底部的 [Create] (建立),接著您會回到「Load Balancing」(負載平衡) 畫面。建立完成的負載平衡器如果正在運作中,它的旁邊會顯示綠色勾號。

gcloud

後端設定

  1. 建立基本的健康狀態檢查,以便確認負載平衡器後端是否正在回應 HTTP 要求。

    gcloud compute health-checks create http http-basic-check
    

  2. 建立全域後端服務,這項後端服務會接收負載平衡器傳送的 HTTP 流量。

    gcloud compute backend-services create fortressnet-backend-service 
    --protocol HTTP
    --health-checks http-basic-check
    --global

  3. 將執行個體群組新增為後端服務的地區性後端。這項設定會根據每個執行個體的每秒要求數上限,將流量分配至所有後端。

    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

主機與路徑規則

  1. 定義網址對應,網址對應會將不同網址轉送至不同的後端服務。由於本範例中只有一項後端服務,因此可直接將該後端服務設為所有網址的預設服務。

    gcloud compute url-maps create fortressnet-balancer 
    --default-service fortressnet-backend-service

  2. 建立 HTTP Proxy 路徑。HTTP Proxy 路徑會接受 HTTP 要求,並根據網址對應加以轉送。在本範例中,HTTP Proxy 路徑會將所有要求傳送至您唯一的後端服務。

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

前端設定

  1. 建立兩個全域靜態外部 IP 位址,分別用於 IPV4 和 IPV6。這兩者將成為負載平衡器的全域外部 IP 位址。

    gcloud compute addresses create fortressnet-ip 
    --ip-version IPV4
    --global gcloud compute addresses create fortressnet-ipv6
    --ip-version IPV6
    --global

  2. 查詢負載平衡器的外部 IP 位址。

    gcloud compute addresses list
    

  3. 針對外部 IP 位址建立通用轉送規則,這項規則會將 IPV4 和 IVP6 HTTP 要求轉送至您的 HTTP Proxy。

    gcloud compute forwarding-rules create fortressnet-http-rule 
    --global
    --target-http-proxy fortressnet-http-proxy
    --ports 80
    --address [LOAD_BALANCER_IP_ADDRESS]
    gcloud compute forwarding-rules create fortressnet-http-ipv6-rule 
    --global
    --target-http-proxy fortressnet-http-proxy
    --ports 80
    --address [LOAD_BALANCER_IPV6_ADDRESS]

(選用) 確認負載平衡器正在運作,過程中您可能會需要等待幾分鐘。

主控台

  1. 前往 GCP 主控台的「負載平衡」頁面。
    前往負載平衡頁面
  2. 等待 fortressnet-balancer 在「Backends」(後端) 一欄下方顯示綠色勾號。
  3. 按一下 fortressnet-balancer
  4. 在「Frontend」(前端) 的「IP:Port」(IP:通訊埠) 一欄下方,複製 IPV4 位址 (IPV4 位址的格式應為 www.xxx.yyy.zzz,您不需複製結尾的通訊埠編號 :nn)。如果您找不到「Frontend」(前端) 區段,請稍等幾分鐘後再試著重新載入網頁。
  5. 在網路瀏覽器中輸入 IP 位址。

瀏覽器應該會顯示「Apache2 Debian Default Page」(Apache2 Debian 預設頁面) 網頁。

如果網頁顯示「404 錯誤 (找不到網頁)」,請試著再等幾分鐘。

gcloud

  1. 查詢負載平衡器的外部 IP 位址。

    gcloud compute addresses list
    

  2. 查詢 IPV4 位址 (IPV4 位址的格式應為 www.xxx.yyy.zzz)。

    curl http://[LOAD_BALANCER_IP_ADDRESS] | head
    

系統應該會顯示一些 HTML 文字,其中包括以下這列內容:<title>Apache2 Debian Default Page: It works</title>

如果系統顯示 <title>Error 404 (Not Found)!!1</title>,請試著再等幾分鐘。

最佳做法:建立安全的防火牆,僅允許負載平衡器和健康狀態檢查傳送的內部流量。接著,將允許所有 HTTP 要求的原有防火牆刪除。這種做法可以防止個別執行個體對外部用戶端開放存取。

主控台

  1. 建立新的防火牆,僅允許負載平衡器和健康狀態檢查傳送的流量。

    1. 前往 GCP 主控台的「Firewall rules」(防火牆規則) 頁面。
      前往「防火牆規則」頁面
    2. 按一下 [建立防火牆規則]
    3. 將「Name」(名稱) 設為 fortressnet-allow-load-balancer
    4. 「Network」(網路) 請選取 fortressnet
    5. 「Targets」(目標) 請選取 All instances in the network
    6. 針對「Source IP ranges」(來源 IP 範圍),請先輸入 130.211.0.0/22 再按下 Enter 鍵,然後再輸入 35.191.0.0/16 並按下 Enter 鍵。
    7. 在「Protocols and ports」(通訊協定和通訊埠) 下方選取 [tcp],然後輸入 80
    8. 按一下 [Create] (建立)
  2. 將允許所有流量的原有防火牆刪除。

    1. 選取 fortressnet-allow-http 旁邊的勾號。
    2. 按一下頁面頂端的 [刪除]
    3. 在對話方塊中按一下 [刪除]

gcloud

  1. 建立新的防火牆,僅允許負載平衡器和健康狀態檢查傳送的流量。

    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. 將允許所有流量的原有防火牆刪除。

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

(選用) 確認自動調度資源和負載平衡正常運作

產生一些測試流量

假設歐洲現在是上午,您的網路服務在網際網路上突然出現使用者暴增的情況。以下步驟會根據這個假設,從歐洲瞬間產生大量的用戶端要求。

主控台

  1. 建立透過 Siege 負載測試工具安裝的執行個體。

    1. 前往 GCP 主控台的「VM 執行個體」頁面。
      前往「VM 執行個體」頁面
    2. 點選 [建立執行個體]
    3. 將「Name」(名稱) 設為 europe-loadtest
    4. 「Region」(地區) 請選取 europe-west1
    5. 按一下 [Management, security, disks, networking, sole tenancy] (管理、安全性、磁碟、網路、單獨租用) 即可顯示進階設定,畫面上應該會出現數個分頁。
    6. 按一下 [管理] 分頁標籤。
    7. 在「自動」下方輸入以下「開機指令碼」

      apt-get install -y siege
      

    8. 按一下頁面底部的 [建立]

  2. 取得負載平衡器的 IPV4 位址。

    1. 前往 GCP 主控台的「負載平衡」頁面。
      前往「負載平衡」頁面
    2. 按一下 fortressnet-balancer
    3. 在「Frontend」(前端) 的「IP:Port」(IP:通訊埠) 一欄下方,複製 IPV4 位址 (IPV4 位址的格式應為 www.xxx.yyy.zzz)。
  3. 透過 SSH 登入用於測試負載的執行個體。

    1. 前往 GCP 主控台的「VM 執行個體」頁面。
      前往 VM 執行個體頁面
    2. 等待 europe-loadtest 執行個體在「Name」(名稱) 一欄下方顯示綠色勾號。
    3. 在「Connect」(連線) 一欄下方的 europe-loadtest 上,按一下 [SSH]
  4. 啟動 Siege,並將負載平衡器的 IPV4 位址設為目標。

    siege -c150 http://[LOAD_BALANCER_IP_ADDRESS]
    

gcloud

  1. 建立透過 Siege 負載測試工具安裝的執行個體。

    gcloud compute instances create europe-loadtest \
        --network default \
        --zone europe-west1-c \
        --metadata startup-script='apt-get -y install siege'
    
  2. 取得負載平衡器的 IPV4 位址。

    gcloud compute addresses list
    
  3. 開啟新的殼層工作階段,您可以在其中使用 gcloud 指令。

    1. 在新的殼層工作階段中,透過 SSH 登入用於測試負載的執行個體。

      gcloud compute ssh --zone europe-west1-c europe-loadtest
      
    2. 啟動 Siege,並將負載平衡器的 IPV4 位址設為目標。

      siege -c150 http://[LOAD_BALANCER_IP_ADDRESS]
      

執行 siege 指令後,您應該會在輸出結果中看到以下宣告: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...

監控負載平衡和自動調度資源

  1. 前往 GCP 主控台的「負載平衡」頁面。
    前往「負載平衡」頁面
  2. 按一下名為 fortressnet-balancer 的負載平衡器。
  3. 按一下 [監控] 分頁標籤。
  4. 在「Backend」(後端) 下拉式選單中,選取 fortressnet-backend-service

系統最多可能需要 10 分鐘才能顯示足夠的資料,您應該很快就會看到類似下圖的畫面:

GCP 主控台的監控畫面,顯示系統如何將源自歐洲的要求平均分配至三個後端

情況說明:

  1. 負載測試瞬間開始傳送龐大流量。起初,負載平衡器將要求平均分配至三個後端。要求數量很快就超出您設定的自動調度資源限制,這可能會導致伺服器傳回 Backend 5xx errors 並顯示於監控畫面上。自動配置器開始依需求啟動額外的執行個體。

  2. 系統會透過自動調度資源滿足容量需求。為了儘量縮短要求的延遲時間,Compute Engine 負載平衡器會嘗試將要求轉送至最接近用戶端的後端。由於此範例中的負載測試流量是源自歐洲,負載平衡器傾向將較多要求轉送至歐洲後端。因此,自動調度資源程序可能會啟動更多歐洲後端中的執行個體,藉此處理較大部分的要求。

從其他地區產生測試流量

假設亞洲現在現在是下午,這時您的網路服務也吸引了為數眾多網際網路使用者。以下步驟會根據這個假設,從亞洲產生大量要求。

主控台

  1. 建立另一個透過 Siege 負載測試工具安裝的執行個體。

    1. 前往 GCP 主控台的「VM 執行個體」頁面。
      前往「VM 執行個體」頁面
    2. 點選 [建立執行個體]
    3. 將「Name」(名稱) 設為 asia-loadtest
    4. 「Region」(地區) 請選取 asia-east1
    5. 按一下 [Management, security, disks, networking, sole tenancy] (管理、安全性、磁碟、網路、單獨租用) 即可顯示進階設定,畫面上應該會出現數個分頁。
    6. 按一下 [管理] 分頁標籤。
    7. 在「自動」下方輸入以下「開機指令碼」

      apt-get install -y siege
      

    8. 按一下頁面底部的 [建立]

  2. 取得負載平衡器的 IP 位址。

    1. 前往 GCP 主控台的「負載平衡」頁面。
      前往「負載平衡」頁面
    2. 按一下 fortressnet-balancer
    3. 在「Frontend」(前端) 的「IP:Port」(IP:通訊埠) 一欄下方,複製 IPV4 位址 (IPV4 位址的格式應為 www.xxx.yyy.zzz)。
  3. 透過 SSH 登入用於測試負載的執行個體。

    1. 等待 asia-loadtest 執行個體在「Name」(名稱) 一欄下方顯示綠色勾號。
    2. 在「Connect」(連線) 一欄下方的 asia-loadtest 上,按一下 [SSH]
  4. 啟動 Siege,並將負載平衡器的 IPV4 位址設為目標。

    siege -c150 http://[LOAD_BALANCER_IP_ADDRESS]
    

gcloud

  1. 在原有的殼層工作階段中,建立另一個透過 Siege 負載測試工具安裝的執行個體。

    gcloud compute instances create asia-loadtest \
        --network default \
        --zone asia-east1-c \
        --metadata startup-script='apt-get -y install siege'
    
  2. 取得負載平衡器的 IPV4 位址。

    gcloud compute addresses list
    
  3. 開啟新的殼層工作階段,您可以在其中使用 gcloud 指令。

    1. 在新的殼層工作階段中,透過 SSH 登入用於測試負載的執行個體。

      gcloud compute ssh --zone asia-east1-c asia-loadtest
      
    2. 啟動 Siege,並將負載平衡器的 IPV4 位址設為目標。

      siege -c150 http://[LOAD_BALANCER_IP_ADDRESS]
      

您應該同樣會在輸出結果中看到以下宣告: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...

監控負載平衡和自動調度資源

返回前文提到過的負載平衡監控畫面。系統最多可能需要 10 分鐘才能顯示足夠的新資料,您應該很快就會看到類似下圖的畫面:

GCP 主控台的監控畫面,顯示系統如何將源自歐洲和亞洲的要求分配至三個後端

情況說明:

  1. 與先前的情況相似,負載測試瞬間開始傳送另一波龐大流量。起初,負載平衡器將要求平均分配至現有的三個後端。隨著要求數量超出您設定的自動調度資源限制,自動配置器開始依需求啟動額外的執行個體。

  2. 系統會透過自動調度資源滿足新的容量需求。負載平衡器同樣傾向將要求盡量轉送至最接近的後端。因此,亞洲後端會接收大部分源自亞洲的要求,歐洲後端會接收大部分源自歐洲的要求,而美國後端則會接收其餘的所有要求。

清理

請在完成自動調度資源教學課程之後,清除您在 Google Cloud Platform 上建立的資源,這樣日後就不必為這些資源付費。下列各節將說明如何刪除或關閉這些資源。

刪除專案

如要避免付費,最簡單的方法就是刪除您針對教學課程建立的專案。

刪除專案:

  1. 前往 GCP 主控台的「Projects」(專案) 頁面。

    前往專案頁面

  2. 在專案清單中選取要刪除的專案,然後按一下 [Delete] (刪除)
  3. 在對話方塊中輸入專案 ID,按一下 [Shut down] (關閉) 即可刪除專案。

刪除執行個體

如要刪除 Compute Engine 執行個體:

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Compute Engine 說明文件