API Gateway 的負載平衡
整合 全域外部應用程式負載平衡器和 傳統版應用程式負載平衡器的 API Gateway,可讓無伺服器後端充分運用 Cloud Load Balancing 提供的所有功能。將 API Gateway 與全域外部應用程式負載平衡器或傳統應用程式負載平衡器搭配使用無伺服器網路端點群組 (無伺服器 NEG),即可:
- 使用自訂品牌網域代管閘道
- 使用偏好的憑證授權單位核發的憑證,為閘道設定傳輸層安全標準 (TLS)
- 建立閘道的通用進入點,將流量轉送至多個後端
- 在多個地理區域部署閘道,確保高可用性,不必管理各區域的網址
- 使用 Cloud Armor 保護閘道
- 運用 Cloud CDN 縮短閘道回應時間
將無伺服器 NEG 用於 API Gateway
網路端點群組 (NEG) 會為負載平衡器指定一組後端端點。無伺服器 NEG 是指向 Google 代管無伺服器後端的後端,例如 Cloud Run、App Engine 或 API Gateway。 API Gateway 的無伺服器 NEG 後端可代表:
- API Gateway 執行個體
- 設定相同 API 設定的閘道群組
下圖顯示如何在 Cloud Load Balancing 模型中使用無伺服器 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 只能指向與負載平衡器位於同一專案的 API Gateway 執行個體,並使用無伺服器 NEG 後端。
- 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 通訊協定。
- 系統不支援在
utilization
或connection
相關欄位中指定的值。
後端服務設定中的 IAP
、cdnPolicy
和 securityPolicy
欄位適用於無伺服器 NEG。這些欄位可用於分別透過 API Gateway 服務設定 Identity-Aware Proxy、Cloud CDN 和 Cloud Armor。
後續步驟
使用「開始使用 API Gateway 的全域外部應用程式負載平衡器」設定負載平衡器。
逐步瞭解如何建立 API Gateway 的多區域部署
進一步瞭解如何使用自訂網域