API Gateway 的負載平衡

整合 全域外部應用程式負載平衡器傳統版應用程式負載平衡器的 API Gateway 支援功能,可讓無伺服器後端充分利用 Cloud Load Balancing 提供的所有功能。您可以使用無伺服器網路端點群組 (無伺服器 NEG),將 API Gateway 與全域外部應用程式負載平衡器或傳統應用程式負載平衡器結合,這樣一來,您就能:

  • 使用自訂品牌網域代管網關
  • 使用偏好的憑證授權單位核發的憑證,為網關設定 TLS
  • 為多個後端建立閘道轉送的通用進入點
  • 在多個地理區域中部署閘道,確保高可用性,且無需管理各個區域的網址
  • 使用 Cloud Armor 保護網關
  • 運用 Cloud CDN 縮短閘道回應時間

使用無伺服器 NEG 搭配 API Gateway

網路端點群組 (NEG) 可指定負載平衡器的一組後端端點。無伺服器 NEG 是指向 Google 代管無伺服器後端的後端,例如 Cloud RunApp Engine 或 API Gateway。API Gateway 的無伺服器 NEG 後端可代表:

  • API Gateway 執行個體
  • 一組使用相同 API 設定的閘道

下圖說明如何在 Cloud Load Balancing 模型中使用無伺服器 NEG:

圖表:無伺服器 neg 做為多區域閘道的後端

如前述範例所示,後端服務可由多個無伺服器 NEG 管理。每個無伺服器 NEG 可包含單一 API Gateway 執行個體,或使用網址遮罩指向多個閘道。由於所有做為後端服務的 NEG 都用於負載平衡,因此應代表功能上等同的閘道部署。舉例來說,所有 NEG 都應在不同地區的每個閘道上部署相同的 API 設定。如果後端服務包含多個 NEG,負載平衡器會在這些 NEG 之間平衡流量,同時盡量減少要求延遲時間。

無伺服器網路端點群組 (NEG) 和 API Gateway 的限制

使用無伺服器 NEG 整合 API Gateway 的 Cloud Load Balancing 時,請注意以下幾項限制。最值得注意的是:

  • 無伺服器 NEG 無法附加任何網路端點,例如 IP 位址或通訊埠。
  • 無伺服器 NEG 只能指向與 NEG 位於相同區域的 API Gateway 執行個體。
  • 無伺服器 NEG 只能指向使用無伺服器 NEG 後端的負載平衡器在同一專案中建立的 API Gateway 執行個體。
  • API Gateway 不支援 Ingress 控制設定。因此,您無法使用服務產生的網址停用 API Gateway 存取權,也無法確保所有流量都由負載平衡器處理。

如要進一步瞭解無伺服器 NEG 和後端服務的限制,請參閱「限制」。

後端服務設定中無伺服器網路端點群組 (NEG) 的限制

後端服務會定義 Cloud Load Balancing 分配流量的方式。後端服務設定包含一組值,例如用於連線至後端的通訊協定、各種發布和工作階段設定、健康狀態檢查和逾時。如果無伺服器 NEG 做為 API Gateway 的後端服務,這些設定可精細控管負載平衡器的行為。

後端服務的資源定義對負載平衡設計有以下影響:

  • 無伺服器 NEG 無法與同一個後端服務中的其他類型 NEG 搭配使用。舉例來說,您無法從同一個後端服務轉送至 GKE 叢集和 API Gateway 執行個體。
  • 後端服務中結合的所有無伺服器 NEG 都必須使用相同類型的後端。也就是說,API Gateway 無伺服器 NEG 只能與其他 API Gateway 無伺服器 NEG 結合,App Engine 無伺服器 NEG 只能與 App Engine 無伺服器 NEG 結合。
  • 後端服務每個區域只能包含一個無伺服器 NEG。

定義要將路由導向無伺服器 NEG 的後端服務設定時,請遵守下列欄位限制:

  • 無法指定 balancingMode
  • healthCheck 欄位必須為空白,且無法指定
  • 無法指定連接埠
  • 僅支援 HTTP 和 HTTPS 通訊協定。
  • 不支援在 utilizationconnection 相關欄位中指定的值。

後端服務設定中的 IAPcdnPolicysecurityPolicy 欄位適用於無伺服器 NEG。您可以使用這些欄位,分別為 API Gateway 服務設定 Identity-Aware ProxyCloud CDNCloud Armor

後續步驟