arrow_back

設定內部網路負載平衡器 (AWS)

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

設定內部網路負載平衡器 (AWS)

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

雲端工程師都想要確保自己的解決方案具備容錯和擴充能力。您的應用程式可能會有多個階層,而且就算架構中部署的虛擬機器 (VM) 執行個體只有一部分須開放公開存取,這些執行個體也要能夠擴充和處理錯誤。同樣地,解決方案也必須確保流量在各個 VM 之間達到平衡。基於上述原因,架構中必須具備一項最重要的服務,就是有韌性且可擴充的負載平衡器,這樣才能處理和重新導向流量,並持續檢查健康狀態。

在 AWS 中,您可以透過連結網路的負載平衡器,將流量分配給具有公開 IP 位址的 Elastic Compute Cloud (EC2) 執行個體。對於有多個階層的應用程式來說,您通常只會將後端執行個體連結至無外部 IP 的前端。在此情境中,您將能同時使用連結網路和內部的網路負載平衡器。

即使您的後端 VM 執行個體不對外公開,仍要能下載安全性修補程式和更新,因此您需要設定網路位址轉譯 (NAT) 閘道,提供連至公開網路的單向通訊路徑,這樣私人 VM 執行個體就能建立與網際網路的連線,而網際網路則無法建立與您 VM 執行個體的連線。

為實現容錯能力、成本效益和高可用性 (HA),您將搭配使用 Amazon Machine Images (AMI)、啟動範本和 Auto Scaling 群組來動態因應逐漸提高的需求、取消分配不再需要的資源,以及檢查健康狀態來確保執行個體隨時正常運作。

AWS 圖表

現在您將學習如何有效率地在 Google Cloud 管理流量及調度服務資源。

總覽

Google Cloud 可為 TCP/UDP 型流量提供內部網路負載平衡功能。運用這項功能,即可透過私人負載平衡 IP 位址執行服務及調度服務資源,這類 IP 位址只能透過內部的虛擬機器執行個體存取。

在本實驗室中,您將建立兩個位於相同區域的代管執行個體群組,接著設定以這些執行個體群組為後端的內部網路負載平衡器,並進行測試,如下方網路圖表所示:

網路架構圖表

目標

在這個實驗室中,您會瞭解如何執行下列工作:

  • 建立內部流量與健康狀態檢查防火牆規則。
  • 使用 Cloud Router 建立 NAT 設定。
  • 設定兩個執行個體範本。
  • 建立兩個代管執行個體群組。
  • 設定及測試內部網路負載平衡器。

設定和需求

在每個研究室中,您都能在固定時間內免付費建立新的 Google Cloud 專案,並使用一組資源。

  1. 請透過無痕式視窗登入 Qwiklabs。

  2. 請記下研究室的存取時間 (例如 1:15:00),並確保自己能在時間限制內完成作業。
    研究室不提供暫停功能。如有需要,您可以重新開始,但原先的進度恕無法保留。

  3. 準備就緒後,請按一下「Start lab」

  4. 請記下研究室憑證 (使用者名稱密碼),這組資訊將用於登入 Google Cloud 控制台。

  5. 按一下「Open Google Console」

  6. 按一下「Use another account」,然後複製這個研究室的憑證,並貼入提示訊息。
    如果使用其他憑證,系統會顯示錯誤或向您收取費用

  7. 接受條款,然後略過資源復原頁面。

工作 1:設定內部流量與健康狀態檢查防火牆規則

在這項工作中,您會為應用程式設定防火牆規則,允許來自內部的流量連線和健康狀態檢查探測。您將探索現有網路並建立新的防火牆規則,允許來自特定 IP 範圍的流量。

請設定防火牆規則,允許來自 10.10.0.0/16 範圍中來源的內部流量連線。這項規則會允許所有來自子網路用戶端的連入流量。

健康狀態檢查會判斷負載平衡器的哪些執行個體能接收新的連線。以應用程式負載平衡 (HTTP) 來說,對達到負載平衡的執行個體執行健康狀態檢查探測時,探測要求的來源位址範圍為 130.211.0.0/2235.191.0.0/16。防火牆規則必須允許這類連線。

探索 my-internal-app 網路

系統已設定 my-internal-app 網路和其子網路 subnet-asubnet-b,以及 RDPSSHICMP 流量的防火牆規則。

  • 前往 Cloud 控制台的「導覽選單」「導覽選單」圖示,依序點選「虛擬私有雲網路」>「虛擬私有雲網路」
    注意,my-internal-app 網路有子網路 subnet-asubnet-b

    每項 Google Cloud 專案都是從預設網路開始。此外,系統已為您建立 my-internal-app 網路,如網路圖表所示。

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

建立防火牆規則,允許來自 10.10.0.0/16 範圍中任何來源的流量

建立防火牆規則,允許 10.10.0.0/16 子網路的流量。

  1. 在「導覽選單」「導覽選單」圖示 中,依序點選「虛擬私有雲網路」>「防火牆」
    注意 app-allow-icmpapp-allow-ssh-rdp 防火牆規則。

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

  2. 按一下「建立防火牆規則」

  3. 指定下列屬性,其餘設定保留預設值:

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

建立健康狀態檢查規則

建立防火牆規則,允許健康狀態檢查。

  1. 在「導覽選單」「導覽選單」圖示 上,依序點選「虛擬私有雲網路」>「防火牆」

  2. 按一下「建立防火牆規則」

  3. 指定下列屬性,其餘設定保留預設值:

    屬性 值 (按照指示輸入值或選取選項)
    名稱 fw-allow-health-checks
    網路 my-internal-app
    目標 指定的目標標記
    目標標記 backend-service
    來源篩選器 IPv4 範圍
    來源 IPv4 範圍 130.211.0.0/22 35.191.0.0/16
    通訊協定和通訊埠 指定的通訊協定和通訊埠
注意:請務必在「來源 IPv4 範圍」欄位中加入 /22/16
  1. 在「TCP」部分,勾選核取方塊並指定通訊埠 80
  2. 點選「建立」

點選「Check my progress」,確認目標已達成。 設定內部流量與健康狀態檢查防火牆規則

工作 2:使用 Cloud Router 建立 NAT 設定

在這項工作中,您會建立 Cloud Router 執行個體並設定 Cloud NAT,以便啟用後端執行個體來傳出流量。

您在工作 3 設定的 Google Cloud VM 後端執行個體不會有外部 IP 位址。

您要設定 Cloud NAT 服務,允許 VM 執行個體只透過 Cloud NAT 傳送輸出流量,並透過負載平衡器接收傳入流量。

建立 Cloud Router 執行個體

  1. 前往 Google Cloud 控制台,在標題列的搜尋欄位輸入網路服務,然後點選「Products & Page」(產品和頁面) 部分中的「Network services」(網路服務)

  2. 在「Network service」(網路服務) 頁面,點選「Network services」(網路服務) 旁的固定圖示。

  3. 點選「Cloud NAT」

  4. 點選「立即開始」來設定 NAT 閘道。

  5. 指定下列屬性,其餘設定保留預設值:

    屬性 值 (按照指示輸入值或選取選項)
    閘道名稱 nat-config
    網路 my-internal-app
    區域
  6. 點選「Cloud Router」,選擇「建立新路由器」

  7. 在「名稱」部分輸入 nat-router-

  8. 點選「建立」

  9. 在「建立 Cloud NAT 閘道」上,按一下「建立」

注意:請等待 NAT 閘道狀態變更為「執行中」,再繼續下一項工作。

點選「Check my progress」,確認目標已達成。 使用 Cloud Router 建立 NAT 設定

工作 3:設定執行個體範本和建立執行個體群組

在這項工作中,您會驗證預先設定的執行個體範本和代管執行個體群組。您將在現有的執行個體中執行開機指令碼,並建立公用 VM 來測試能否連線至後端執行個體。

代管執行個體群組會使用執行個體範本,以便建立相同執行個體的群組。這些執行個體可用於建立內部網路負載平衡器的後端。

這項工作已於本實驗室開始時自動執行完畢。您需要透過 SSH 連線至每個 VM 執行個體群組,並執行下列指令來設定環境。

  1. 在「導覽選單」中,依序點選「Compute Engine」>「VM 執行個體」
    請留意兩個開頭分別為 instance-group-1instance-group-2 的執行個體。

  2. 點選 instance-group-1 旁的「SSH」按鈕,透過 SSH 連線至 VM。

  3. 如果出現「允許透過瀏覽器中的 SSH 連線至 VM」提示訊息,請點選「授權」

  4. 執行下列指令,重新執行執行個體的開機指令碼:

sudo google_metadata_script_runner startup
  1. 針對 instance-group-2 重複執行上述步驟。

  2. 兩個開機指令碼皆執行完畢後,即可關閉每個 VM 的 SSH 終端機。開機指令碼的輸出內容應如下所示:

Finished running startup scripts.

驗證後端

確認兩個子網路中已建立 VM 執行個體,然後建立公用程式 VM 來存取後端的 HTTP 網站。

  1. 在「導覽選單」中,依序點選「Compute Engine」>「VM 執行個體」
    請留意兩個開頭分別為 instance-group-1instance-group-2 的執行個體。

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

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

  3. 在「機器設定」頁面指定下列屬性,其餘設定保留預設值:

    屬性 值 (按照指示輸入值或選取選項)
    名稱 utility-vm
    區域
    可用區
    系列 E2
    機型 e2-medium (2 個 vCPU,4 GB 記憶體)
  4. 點選「OS 和儲存空間」

  5. 如果顯示的「映像檔」不是「Debian GNU/Linux 12 (bookworm)」,請按一下「變更」後選擇「Debian GNU/Linux 12 (bookworm)」,再點按「選取」

  6. 點選「網路」

  7. 在「網路介面」部分,點選下拉式選單來編輯網路介面。

  8. 指定下列屬性,其餘設定保留預設值:

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

  10. 點選「建立」

  11. 請注意,用於後端的內部 IP 位址是 10.10.20.210.10.30.2

注意:如果 IP 位址不同,請在下方的兩個 curl 指令中替換 IP 位址。

點選「Check my progress」,確認目標已達成。 設定執行個體範本和建立執行個體群組

  1. 在「utility-vm」部分,點選「SSH」來啟動終端機並連線。

  2. 如果出現「允許透過瀏覽器中的 SSH 連線至 VM」提示訊息,請點選「授權」

  3. 如要驗證 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: {{{project_0.default_zone | Zone 1}}}
  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: {{{project_0.default_zone_2 | Zone 2}}}

備註:這個步驟能有效確認內部負載平衡器是否將流量傳送到兩個後端。
  1. 關閉 utility-vm 的 SSH 終端機:
exit

工作 4:設定內部網路負載平衡器

在這項工作中,您將設定內部網路負載平衡器,平衡兩個後端之間的流量 (後端分別為 instance-group-1instance-group-2),如下方網路圖表所示。

網路圖表

開始設定

  1. 前往 Cloud 控制台,依序點選「導覽選單」圖示 「導覽選單」圖示 >「網路服務」>「負載平衡」。
  2. 點選「+ 建立負載平衡器」
  3. 「負載平衡器類型」請選取「網路負載平衡器 (TCP/UDP/SSL)」,然後點選「下一步」
  4. 在「直通或使用 Proxy」部分,選取「直通式負載平衡器」,然後點選「下一步」
  5. 在「公開或內部」部分,選取「內部」,然後點選「下一步」
  6. 在「建立負載平衡器」部分,點選「設定」
  1. 「負載平衡器名稱」請輸入 my-ilb
  2. 「區域」請選取「
  3. 在「網路」部分,從下拉式選單中選取 my-internal-app

設定區域後端服務

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

  1. 按一下「後端設定」

  2. 指定下列屬性,其餘設定保留預設值:

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

  4. 點選「新增後端」

  5. 在「執行個體群組」部分,選取「instance-group-2 ()」

  6. 點選「完成」

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

  8. 指定下列屬性,其餘設定保留預設值:

    屬性 值 (按照指示選取選項)
    名稱 my-ilb-health-check
    通訊協定 TCP
    通訊埠 80
    檢查時間間隔 10 秒
    逾時間隔 5 秒
    良好健康狀態判定門檻 2
    不良健康狀態判定門檻 3
注意:健康狀態檢查會判斷哪些執行個體可以接收新的連線。HTTP 健康狀態檢查會每 10 秒輪詢執行個體一次,並等待 5 秒來接收回應。良好健康狀態判定門檻為成功 2 次,不良則為失敗 3 次。
  1. 按一下「儲存」
  2. 確認 Cloud 控制台的「後端設定」旁已顯示藍色勾號。如未顯示,請重新檢查一遍,確認是否已完成上述所有步驟。

設定前端

前端會將流量傳送到後端。

  1. 按一下「前端設定」

  2. 指定下列屬性,其餘設定保留預設值:

    屬性 值 (按照指示輸入值或選取選項)
    子網路 subnet-b
    「內部 IP 用途」>「IP 位址」 建立 IP 位址
  3. 指定下列屬性,其餘設定保留預設值:

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

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

  6. 點選「完成」

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

  1. 點選「檢查並完成」
  2. 檢查「後端」和「前端」
  3. 點選「建立」
    等待負載平衡器建立完成,再開始執行下一項工作。

點選「Check my progress」,確認目標已達成。 設定內部網路負載平衡器

工作 5:測試內部網路負載平衡器

在這項工作中,您將驗證 my-ilb 的 IP 位址能否順利將流量傳送到 instance-group-1instance-group-2

存取內部網路負載平衡器

  1. 從「導覽選單」依序點選「Compute Engine」>「VM 執行個體」
  2. 在「utility-vm」部分,點選「SSH」來啟動終端機並連線。
  3. 如果出現「允許透過瀏覽器中的 SSH 連線至 VM」提示訊息,請點選「授權」
  4. 如要驗證內部網路負載平衡器是否順利轉送流量,請執行下列指令:
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-2-1zn8<h2>Server Location</h2>Region and Zone: {{{project_0.default_zone_2|Zone2}}} 注意:一如預期,流量從內部負載平衡器 (10.10.30.5) 轉送至後端。
  1. 重複執行幾次相同的指令:
curl 10.10.30.5 curl 10.10.30.5 curl 10.10.30.5 curl 10.10.30.5 curl 10.10.30.5 curl 10.10.30.5 curl 10.10.30.5 curl 10.10.30.5 curl 10.10.30.5 curl 10.10.30.5

您應該會看到 中的 instance-group-1 中的 instance-group-2 發出回應。如果沒有看到回應,請再次執行指令。

恭喜!

在本實驗室中,您在 區域建立了兩個代管執行個體群組,並設定了防火牆規則來接收傳至這些執行個體的 HTTP 流量,以及來自 Google Cloud 健康狀態檢查工具的 TCP 流量。接著您為這些執行個體群組設定了內部網路負載平衡器,並完成測試。

在 AWS 中,您通常會使用網路位址轉譯 (NAT) 閘道、Auto Scaling 群組和 Elastic Load Balancer (ELB) 來確保 Elastic Compute Cloud (EC2) 執行個體的私密性。這項解決方案能讓您的 EC2 執行個體與前端執行個體通訊,以及從公開網路安全地下載更新。

在 Google Cloud 中,您可以使用內部網路負載平衡器,將流量分配給同個 Google Cloud 區域中的執行個體或代管執行個體群組 (MIG)。如果您的後端分布在多個區域,則需要使用全域負載平衡器,不過就只能部署為外部負載平衡器。您可以使用內部網路負載平衡器處理以下類型的流量:

  • TCP/UDP (直通)
  • HTTP/HTTPS
  • TCP (Proxy)

如要讓不具備外部 IP 的執行個體開始建立傳出連線至網際網路,您可以設定 Cloud NAT。

關閉研究室

如果您已完成研究室,請按一下「End Lab」(關閉研究室)。Google Cloud Skills Boost 會移除您使用的資源,並清除所用帳戶。

您可以針對研究室的使用體驗評分。請選取合適的星級評等並提供意見,然後按一下「Submit」(提交)

星級評等代表您的滿意程度:

  • 1 星 = 非常不滿意
  • 2 星 = 不滿意
  • 3 星 = 普通
  • 4 星 = 滿意
  • 5 星 = 非常滿意

如果不想提供意見回饋,您可以直接關閉對話方塊。

如有任何想法、建議或指教,請透過「Support」(支援) 分頁提交。

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

准备工作

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

使用无痕浏览模式

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

登录控制台

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

此内容目前不可用

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

太好了!

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

一次一个实验

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

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

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