arrow_back

運用內部負載平衡提升應用程式的穩定性和擴充性

登录 加入
访问 700 多个实验和课程

運用內部負載平衡提升應用程式的穩定性和擴充性

实验 50 分钟 universal_currency_alt 5 积分 show_chart 中级
info 此实验可能会提供 AI 工具来支持您学习。
访问 700 多个实验和课程

GSP216

Google Cloud 自學實驗室標誌

總覽

Google Cloud 的內部負載平衡 (ILB) 是管理及擴充私人應用程式基礎架構的重要服務。您可以運用 ILB 在內部虛擬機器執行個體之間有效分配 TCP/UDP 流量,確保私人網路內的應用程式具備高可用性且效能卓越。ILB 為服務提供單一穩定的私人 IP 位址,藉此簡化內部應用程式通訊,並提升系統韌性。

在本實驗室中,您將建立兩個位於相同區域的代管執行個體群組,用來設定內部服務,這是高可用性應用程式常見的部署模式。接著您將設定並徹底測試內部負載平衡器,將這些執行個體群組設為後端。這項設定模擬了下列實際情境:內部應用程式 (例如微服務、API 端點或資料庫) 必須供其他內部服務或應用程式存取,但不會暴露於公開網際網路。

Network_Diagram.png

目標

在本實驗室中,您將瞭解如何執行下列工作:

  • 設定必要的防火牆規則,允許內部後端的安全 HTTP 流量和健康狀態檢查。
  • 設計及實作執行個體範本,確保 VM 部署作業一致且可擴充。
  • 建立及管理代管執行個體群組,自動調整資源配置並自我修復應用程式後端。
  • 設定並測試內部負載平衡器,證明能有效分配內部流量,維持服務的可用性。

設定和需求

瞭解以下事項後,再點選「Start Lab」按鈕

請詳閱以下操作說明。實驗室活動會計時,且中途無法暫停。點選「Start Lab」後就會開始計時,顯示可使用 Google Cloud 資源的時間。

您將在真正的雲端環境完成實作實驗室活動,而不是模擬或示範環境。為此,我們會提供新的暫時憑證,供您在實驗室活動期間登入及存取 Google Cloud。

為了順利完成這個實驗室,請先確認:

  • 可以使用標準的網際網路瀏覽器 (Chrome 瀏覽器為佳)。
注意事項:請使用無痕模式 (建議選項) 或私密瀏覽視窗執行此實驗室,這可以防止個人帳戶和學員帳戶之間的衝突,避免個人帳戶產生額外費用。
  • 是時候完成實驗室活動了!別忘了,活動一旦開始將無法暫停。
注意事項:務必使用實驗室專用的學員帳戶。如果使用其他 Google Cloud 帳戶,可能會產生額外費用。

如何開始研究室及登入 Google Cloud 控制台

  1. 點選「Start Lab」按鈕。如果實驗室會產生費用,畫面上會出現選擇付款方式的對話方塊。左側的「Lab Details」窗格會顯示下列項目:

    • 「Open Google Cloud console」按鈕
    • 剩餘時間
    • 必須在這個研究室中使用的臨時憑證
    • 完成這個實驗室所需的其他資訊 (如有)
  2. 點選「Open Google Cloud console」;如果使用 Chrome 瀏覽器,也能按一下滑鼠右鍵,選取「在無痕視窗中開啟連結」

    接著,實驗室會啟動相關資源,並開啟另一個分頁,顯示「登入」頁面。

    提示:您可以在不同的視窗中並排開啟分頁。

    注意:如果頁面中顯示「選擇帳戶」對話方塊,請點選「使用其他帳戶」
  3. 如有必要,請將下方的 Username 貼到「登入」對話方塊。

    {{{user_0.username | "Username"}}}

    您也可以在「Lab Details」窗格找到 Username。

  4. 點選「下一步」

  5. 複製下方的 Password,並貼到「歡迎使用」對話方塊。

    {{{user_0.password | "Password"}}}

    您也可以在「Lab Details」窗格找到 Password。

  6. 點選「下一步」

    重要事項:請務必使用實驗室提供的憑證,而非自己的 Google Cloud 帳戶憑證。 注意:如果使用自己的 Google Cloud 帳戶來進行這個實驗室,可能會產生額外費用。
  7. 按過後續的所有頁面:

    • 接受條款及細則。
    • 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
    • 請勿申請免費試用。

Google Cloud 控制台稍後會在這個分頁開啟。

注意:如要使用 Google Cloud 產品和服務,請點選「導覽選單」,或在「搜尋」欄位輸入服務或產品名稱。「導覽選單」圖示和搜尋欄位

工作 1:設定 HTTP 和健康狀態檢查防火牆規則

適當的防火牆規則,是內部負載平衡環境安全且可運作的基礎,能保障只有授權過的流量會傳送至後端服務,且負載平衡器能準確評估執行個體的健康狀態。

請設定防火牆規則,允許傳送至後端的 HTTP 流量,以及來自 Google Cloud 健康狀態檢查工具的 TCP 流量。

探索 my-internal-app 網路

系統已為您設定網路 my-internal-app、子網路 subnet-a 與 subnet-b,以及 RDP、SSH 與 ICMP 流量的防火牆規則。

  1. 前往控制台,依序點選「導覽選單」圖示 >「虛擬私有雲網路」>「虛擬私有雲網路」

  2. 向下捲動,並留意網路 my-internal-app、子網路 subnet-asubnet-b

    各項 Google Cloud 專案一開始時都有 default 網路。此外,系統已為您建立 my-internal-app 網路,如網路圖表所示。

    您將在 subnet-asubnet-b 建立代管執行個體群組。這兩個子網路都位於 區域,因為內部負載平衡器屬於區域性服務。代管執行個體群組則位於不同的可用區,避免服務因可用區故障而無法運作。

建立 HTTP 防火牆規則

建立防火牆規則,允許 HTTP 流量從負載平衡器和網際網路傳送至後端,以在後端安裝 Apache。

  1. 一樣在「虛擬私有雲網路」頁面,點選左側窗格中的「防火牆」

  2. 留意 app-allow-icmpapp-allow-ssh-rdp 防火牆規則。

    系統已為您建立這些防火牆規則。

  3. 點按「+ 建立防火牆規則」

  4. 設定下方的值,其他值均保留預設值:

    屬性 值 (按照指示輸入值或選取選項)
    名稱 app-allow-http
    網路 my-internal-app
    目標 指定的目標標記
    目標標記 lb-backend
    來源篩選器 IPv4 範圍
    來源 IPv4 範圍 10.10.0.0/16
    通訊協定和通訊埠 指定的通訊協定和通訊埠:勾選「TCP」並輸入 80
注意:請務必在「來源 IPv4 範圍」欄位中加入 /16 來指定所有網路。
  1. 點選「建立」

建立健康狀態檢查防火牆規則

健康狀態檢查會判斷負載平衡器的哪些執行個體能接收新的連線。以內部負載平衡來說,如果對達到負載平衡的執行個體執行健康狀態檢查探測,這類要求是從位址範圍 130.211.0.0/2235.191.0.0/16 傳出。防火牆規則必須允許這類連線。

  1. 一樣在「防火牆規則」頁面,點按「+ 建立防火牆規則」

  2. 設定下方的值,其他屬性均保留預設值:

    屬性 值 (按照指示輸入值或選取選項)
    名稱 app-allow-health-check
    網路 my-internal-app
    目標 指定的目標標記
    目標標記 lb-backend
    來源篩選器 IPv4 範圍
    來源 IPv4 範圍 130.211.0.0/22 和 35.191.0.0/16
    通訊協定和通訊埠 指定的通訊協定和通訊埠:勾選「TCP」
注意:請務必逐一輸入兩個「來源 IPv4 範圍」,並在中間加入空格。
  1. 點選「建立」

點選「Check my progress」,確認目標已達成。

設定 HTTP 和健康狀態檢查防火牆規則

工作 2:設定執行個體範本及建立執行個體群組

執行個體範本和代管執行個體群組,是維持應用程式可擴充、有韌性且易於管理的重要支柱。您可以加以運用,為 VM 定義標準設定,進而自動管理 VM 的生命週期、確保一致性,並啟用自動調整資源配置和自動修復功能。

代管執行個體群組會使用執行個體範本,用來建立一組相同的執行個體。請運用這些範本建立內部負載平衡器的後端。

設定執行個體範本

執行個體範本是一種 API 資源,可用來建立 VM 執行個體和代管執行個體群組。執行個體範本會定義機型、開機磁碟映像檔、子網路、標籤和其他執行個體屬性。請為 my-internal-app 網路的兩個子網路建立執行個體範本。

  1. 前往控制台,依序點選「導覽選單」圖示 >「Compute Engine」>「執行個體範本」

  2. 點選「建立執行個體範本」

  3. 在「Name」部分輸入 instance-template-1

  4. 在「位置」部分,選取「Global」

  5. 「系列」請選取「E2」

  6. 在「機器類型」部分,依序選取「共用核心」>「e2-micro」

  7. 點按「進階選項」

  8. 點選「網路」

  9. 在「網路標記」部分,指定「lb-backend」

    注意:網路標記 lb-backend 是用於確保這些執行個體套用 HTTP健康狀態檢查防火牆規則。
  10. 在「網路介面」部分,點選下拉式選單圖示來進行編輯。

  11. 設定下方的值,其他屬性均保留預設值:

    屬性 值 (按照指示輸入值或選取選項)
    網路 my-internal-app
    子網路 subnet-a
    外部 IPv4 位址
  12. 點按「完成」

  13. 點選「管理」

  14. 在「中繼資料」下方,點選「新增項目」並指定下列設定:

    Key 1 Value 1
    startup-script-url gs://spls/gsp216/startup.sh
注意:startup-script-url 指定了執行個體啟動時要執行的指令碼。這個指令碼會安裝 Apache 並變更歡迎頁面,在頁面中納入用戶端 IP,以及 VM 執行個體的名稱、區域和可用區。歡迎查看指令碼內容
  1. 點選「建立」
  2. 等待執行個體範本建立完成。

設定下一個執行個體範本

複製 instance-template-1,為 subnet-b 建立另一個執行個體範本。可以看出,在不同子網路或可用區之間複製設定很簡單,可做為高可用性和災難復原策略。

  1. 一樣在「執行個體範本」頁面,勾選 instance-template-1 旁的方塊,接著點選「複製」。請務必將名稱改為 instance-template-2
  2. 點選「進階選項」
  3. 點選「網路」分頁標籤。
  4. 在「網路介面」部分,點選下拉式選單圖示來進行編輯。
  5. 選取「subnet-b」做為「子網路」
  6. 依序點選「完成」>「建立」

建立代管執行個體群組

代管執行個體群組 (MIG) 有助於建構可自我修復、動態調度資源、功能強大的應用程式。這類群組會自動替換健康狀態不良的執行個體,並依需求調度應用程式資源,確保服務隨時可用、保持卓越效能,無須持續手動介入。此功能對於處理變化不定的負載及維持服務水準目標 (SLO) 至關重要。

subnet-asubnet-b 分別設定一個代管執行個體群組。

注意:請指定 subnet-a 所在區域內的另一個可用區。舉例來說,如果 subnet-a 的可用區為 us-west2-a,您可以將 us-west2-b 選為 subnet-b 的可用區。
  1. 一樣在「Compute Engine」頁面,點選左側窗格中的「執行個體群組」,接著按一下「建立執行個體群組」

  2. 設定下方的值,其他屬性均保留預設值:

    屬性 值 (按照指示輸入值或選取選項)
    名稱 instance-group-1
    執行個體範本 instance-template-1
    位置 單一可用區
    區域
    可用區
    「自動配置」>「執行個體數量下限」 1
    「自動調度資源」>「執行個體數量上限」 1
    「自動調度資源」>「Autoscaling signals」(點選下拉式選單圖示來編輯) >「信號類型」 CPU 使用率
    目標 CPU 使用率 80
    初始化期間 45
注意:自動調度資源是代管執行個體群組的重要功能,能依據測得的負載量,動態調整資源配置。這項功能可讓應用程式順利處理不穩定的流量,盡量節省雲端支出。
  1. 點選「建立」

    instance-group-2 執行相同程序,區域與 subnet-a 相同,但可用區不同:

  2. 點選「建立執行個體群組」

  3. 設定下方的值,其他屬性均保留預設值:

    屬性 值 (按照指示輸入值或選取選項)
    名稱 instance-group-2
    執行個體範本 instance-template-2
    位置 單一可用區
    區域
    可用區 可用區 (區域需與 subnet-a 相同,但可用區不同)
    「自動配置」>「執行個體數量下限」 1
    「自動調度資源」>「執行個體數量上限」 1
    「自動調度資源」>「Autoscaling signals」(點選下拉式選單圖示來編輯) >「信號類型」 CPU 使用率
    目標 CPU 使用率 80
    初始化期間 45
  4. 點選「建立」

驗證後端

確認兩個子網路內已建立 VM 執行個體,然後建立公用程式 VM,直接存取後端的 HTTP 網站。這個步驟是為了在導入負載平衡器之前,先確認個別後端功能運作正常,服務層級設定也正確無誤。

  1. 一樣在「Compute Engine」頁面,點選「VM 執行個體」

  2. 留意兩個開頭分別為 instance-group-1instance-group-2 的執行個體。

    這些執行個體位於不同可用區,內部 IP 位址屬於 subnet-asubnet-b CIDR 模塊的一部分。

  3. 如要建立新執行個體,請點選「建立執行個體」

  4. 前往「機器設定」專區。

    選取下列值:

    屬性 值 (按照指示輸入值或選取選項)
    名稱 utility-vm
    區域
    可用區
    系列 E2
    機型 e2-micro (1 個共用 vCPU)
  5. 點選「網路」

    在「網路介面」部分點選「切換」,即可編輯網路介面。

    指定下列屬性:

    屬性 值 (按照指示輸入值或選取選項)
    網路 my-internal-app
    子網路 subnet-a
    主要內部 IPv4 位址 臨時 (自訂)
    自訂臨時 IP 位址 10.10.20.50
  6. 依序點選「完成」>「建立」

點選「Check my progress」,確認目標已達成。

設定執行個體範本及建立執行個體群組
  1. 後端的內部 IP 位址是 10.10.20.210.10.30.2
注意:如果 IP 位址不同,請替換下方兩個 curl 指令中的 IP 位址。
  1. 在「utility-vm」部分,點選「SSH」來啟動終端機並連線。
  2. 如要對 instance-group-1-xxxx 驗證歡迎頁面,請執行下列指令:
curl 10.10.20.2

您會看見類似下方的輸出內容:

<h1>Internal Load Balancing Lab</h1><h2>Client IP</h2>Your IP address : 10.10.20.50<h2>Hostname</h2>Server Hostname: instance-group-1-1zn8<h2>Server Location</h2>Region and Zone: us-central1-a
  1. 若要針對 instance-group-2-xxxx 驗證歡迎頁面,請執行下列指令:
curl 10.10.30.2

您會看見類似下方的輸出內容:

<h1>Internal Load Balancing Lab</h1><h2>Client IP</h2>Your IP address : 10.10.20.50<h2>Hostname</h2>Server Hostname: instance-group-2-q5wp<h2>Server Location</h2>Region and Zone: us-central1-b

注意:curl 指令展示了各個 VM 執行個體會分別列出用戶端 IP,以及自身的名稱與位置。如要確認內部負載平衡器是否將流量傳送至兩個後端,這個做法就能派上用場。
  1. 關閉 utility-vm 的 SSH 終端機:
exit

工作 3:設定內部負載平衡器

設定 ILB 後,即可集中存取後端服務、為內部流量提供單一進入點,並依據執行個體的健康狀態和資源,確保智慧流量分配。這個步驟至關重要,有助於實現先前提及的高可用性和可擴充性優勢,做為分散式服務的集中存取點。

請設定內部負載平衡器,在 instance-group-1instance-group-2 這兩個後端之間平均分配流量,如下方圖表所示:

網路圖表:內部負載平衡器平衡兩個後端之間的流量

開始設定

  1. 從「導覽選單選取「查看所有產品」。在「網路」底下,選取「網路服務」
  2. 選取「負載平衡」頁面。
  3. 點按「建立負載平衡器」
  4. 「負載平衡器類型」請選取「網路負載平衡器 (TCP/UDP/SSL)」
  5. 「直通或使用 Proxy」請選取「直通式負載平衡器」
  6. 在「公開或內部」部分,選取「內部」
  7. 點選「設定」
  8. 在「Name」部分輸入 my-ilb
  9. 在「區域」部分,選取「」。
  10. 在「網路」部分,選取「my-internal-app」

設定區域性後端服務

後端服務是 ILB 背後的智慧功能,可以定義流量的分配方式,以及如何監控執行個體的健康狀態,進而確認流量只會傳送到可運作的執行個體,並防止過載。您也能在這裡設定工作階段相依性等進階功能,讓使用者連線至同一個後端,或設定連線排除功能,以便順利更新後端。

後端服務可監控執行個體群組,避免用量超過設定值。

  1. 點選「後端設定」

  2. 設定下方的值,其他屬性均保留預設值:

    屬性 值 (按照指示選取選項)
    執行個體群組 instance-group-1
  3. 點按「新增後端」

  4. 「執行個體群組」請選取「instance-group-2」

  5. 在「健康狀態檢查」部分,選取「建立健康狀態檢查」

  6. 設定下方的值,其他屬性均保留預設值:

    屬性 值 (按照指示選取選項)
    名稱 my-ilb-health-check
    通訊協定 TCP
    通訊埠 80
注意:健康狀態檢查會判斷哪些執行個體能接收新連線。這項 HTTP 健康狀態檢查每 5 秒會輪詢執行個體一次,並等待最多 5 秒來接收回應。如果成功兩次,就會判定為健康狀態良好;如果失敗兩次,則會判定為健康狀態不良。這項持續監控機制相當重要,有助於從執行個體失敗情形快速復原,以及維持服務水準協議 (SLA)。
  1. 點選「建立」
  2. 確認 Cloud 控制台的「後端設定」旁顯示藍色勾號。如未顯示,請重新檢查一遍,確認是否已完成上述所有步驟。

設定前端

前端是指 ILB 的公開介面。指派靜態內部 IP 位址後,您就能為其他內部服務提供一致且可預測的端點,簡化應用程式架構、在虛擬私有雲內輕鬆執行服務探索,並提升可靠性。

前端會將流量轉送至後端。

  1. 點選「前端設定」

  2. 指定下方的值,其他項目均保留預設值:

    屬性 值 (按照指示輸入值或選取選項)
    子網路 subnet-b
    內部 IP 在「IP 位址」下方,選取「建立 IP 位址」
  3. 指定下方的值,其他項目均保留預設值:

    屬性 值 (按照指示輸入值或選取選項)
    名稱 my-ilb-ip
    靜態 IP 位址 自行選擇
    自訂 IP 位址 10.10.30.5
  4. 點選「保留」

  5. 在「通訊埠編號」部分,輸入 80

  6. 點選「完成」

檢查並建立內部負載平衡器

  1. 點選「檢查並完成」

  2. 檢查「後端」和「前端」

  3. 點選「Create」。等待負載平衡器建立完成,再執行下一項工作。

點選「Check my progress」,確認目標已達成。

設定內部負載平衡器

工作 4:測試內部負載平衡器

最後一項測試會驗證 ILB 是否能正確將流量分配給健康狀態良好的後端執行個體,確認您的內部服務現在更具韌性和擴充性,能充分發揮 ILB 的核心優勢,並妥善建立私人連線。

確認 my-ilb IP 位址將流量轉送至 instance-group-1instance-group-2

存取內部負載平衡器

  1. 前往 Cloud 控制台,依序點選「導覽選單」圖示 >「Compute Engine」>「VM 執行個體」
  2. 在「utility-vm」部分,點選「SSH」來啟動終端機並連線。
  3. 如要驗證內部負載平衡器是否轉送流量,請執行下列指令:
curl 10.10.30.5

您會看見類似下方的輸出內容:

<h1>Internal Load Balancing Lab</h1><h2>Client IP</h2>Your IP address : 10.10.20.50<h2>Hostname</h2>Server Hostname: instance-group-1-1zn8<h2>Server Location</h2>Region and Zone: us-central1-a 注意:一如預期,流量從內部負載平衡器 (10.10.30.5) 轉送至後端。
  1. 重複執行相同的指令數次。

在輸出內容中,您應該會看到 中的 instance-group-1 和位於相同區域內不同可用區的 instance-group-2 發出回應。負載平衡器正在將流量分配到後端執行個體,證明能有效維持高可用性並分散負載。

恭喜!

您已成功設定並測試內部負載平衡器,瞭解在 Google Cloud 建構強大安全、可擴充的內部應用程式時,這項工具扮演的重要角色。

後續步驟/瞭解詳情

如要瞭解 Load Balancing 的基本概念,請參閱 Google Cloud Load Balancing 說明文件

Google Cloud 教育訓練與認證

協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。

使用手冊上次更新日期:2025 年 9 月 15 日

實驗室上次測試日期:2025 年 5 月 26 日

Copyright 2025 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

请使用无痕模式或无痕式浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。