View a markdown version of this page

VPC Lattice 中的目標群組 - Amazon VPC Lattice

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

VPC Lattice 中的目標群組

VPC Lattice 目標群組是執行應用程式或服務的目標或運算資源集合。支援的目標類型包括 EC2 執行個體、IP 地址、Lambda 函數、Application Load Balancer、Amazon ECS 任務和 Kubernetes Pod。您也可以將現有的服務連接到目標群組。如需搭配 VPC Lattice 使用 Kubernetes 的詳細資訊,請參閱AWS 閘道 API 控制器使用者指南

每個目標群組會用來將請求轉送到一個或多個註冊的目標。當您建立接聽程式規則時,您可以指定目標群組和條件。規則的條件符合時,會將流量轉送到對應的目標群組。您可以針對不同類型的請求,建立不同的目標群組。例如,為一般請求建立一個目標群組,為包含特定規則條件的請求建立其他目標群組,例如路徑或標頭值。

具有接聽程式、接聽程式規則和兩個目標群組的服務。

您可以為每個目標群組定義服務的運作狀態檢查設定。除非您在建立目標群組時覆寫這些設定,或是在之後修改設定,否則每個目標群組都會使用預設的運作狀態檢查設定。在您為接聽程式在規則中指定目標群組之後,服務會持續監控向目標群組註冊的所有目標的運作狀態。服務會將請求路由至運作狀態良好的已註冊目標。

若要在服務接聽程式的規則中指定目標群組,目標群組必須與服務位於相同的帳戶中。

VPC Lattice 目標群組類似於 Elastic Load Balancing 提供的目標群組,但無法互換。

路由組態

根據預設,服務會使用您在建立目標群組時指定的通訊協定和連接埠號碼,將請求路由至其目標。或者,您可以在使用目標群組來登錄目標時,覆寫用來將流量轉傳到目標的連接埠。

目標群組支援下列的通訊協定和連接埠:

  • 通訊協定:HTTP、HTTPS、TCP

  • Ports (連接埠):1-65535

如果使用 HTTPS 通訊協定設定目標群組或使用 HTTPS 運作狀態檢查,目標的 TLS 連線會使用接聽程式的安全政策。VPC Lattice 會使用您在目標上安裝的憑證,與目標建立 TLS 連線。VPC Lattice 不會驗證這些憑證。因此,您可以使用自我簽署的憑證或已過期的憑證。VPC Lattice 與目標之間的流量會在封包層級進行驗證,因此即使目標上的憑證無效,也不會有man-in-the-middle攻擊或詐騙的風險。

只有 TLS 接聽程式才支援 TCP 目標群組。

路由演算法

根據預設,循環配置路由演算法會用來將請求路由至運作狀態良好的目標。

當 VPC Lattice 服務收到請求時,會使用下列程序:

  1. 以優先順序評估接聽程序的規則,以決定要套用哪個規則。

  2. 使用預設循環配置演算法,從規則動作的目標群組中選取目標。即使一個目標向多個目標群組註冊,每個目標群組的路由都是獨立運作。

如果目標群組只包含運作狀態不佳的目標,則請求會路由至所有目標,無論其運作狀態為何。這表示如果所有目標同時未通過運作狀態檢查,VPC Lattice 服務會無法開啟。故障開啟的效果是根據循環配置演算法,允許所有目標的流量,無論其運作狀態為何。

VPC Lattice 支援路由流量的可用區域 (AZ) 親和性。當用戶端將請求傳送至 VPC Lattice 時,VPC Lattice 會使用與用戶端相同 AZ 的服務或資源 IP 地址來回應。如果無法使用該 AZ,VPC Lattice 會以來自其他 AZs IP 地址回應。從 VPC Lattice 到目標,路由到目標,可能分散到 AZs。此外,VPC Lattice 中沒有跨可用區域資料傳輸費用。

Target type (目標類型)

建立目標群組時,您會指定其目標類型,這會決定您對此目標群組註冊目標時指定的目標類型。在建立目標群組之後,您無法變更其目標類型。

下列是可能的目標類型:

INSTANCE

以執行個體 ID 來指定目標。

IP

目標為 IP 地址。

LAMBDA

目標是 Lambda 函數。

ALB

目標是 Application Load Balancer。

考量事項
  • 當目標類型為 時IP,您必須從目標群組的 VPC 子網路指定 IP 地址。如果您需要從此 VPC 外部註冊 IP 地址,請建立 類型的目標群組,ALB並向 Application Load Balancer 註冊 IP 地址。

  • 當目標類型為 時IP,您無法註冊 VPC 端點或可公開路由的 IP 地址。

  • 當目標類型為 時LAMBDA,您可以註冊單一 Lambda 函數。當服務收到 Lambda 函數的請求時,它會叫用 Lambda 函數。如果您想要將多個 Lambda 函數註冊到服務,則需要使用多個目標群組。

  • 當目標類型為 時ALB,您可以將單一內部 Application Load Balancer 註冊為最多兩個 VPC Lattice 服務的目標。若要這樣做,請使用兩個不同的目標群組註冊 Application Load Balancer,供兩個不同的 VPC Lattice 服務使用。此外,目標 Application Load Balancer 必須至少有一個接聽程式,其連接埠符合目標群組連接埠。

  • 您可以在啟動時自動向 VPC Lattice 目標群組註冊 ECS 任務。目標群組必須擁有 IP 的目標類型。如需詳細資訊,請參閱《Amazon Elastic Container Service 開發人員指南》中的搭配 Amazon ECS 服務使用 VPC Lattice

    或者,使用類型為 的 VPC Lattice 目標群組註冊 Amazon ECS 服務的 Application Load BalancerALB。如需詳細資訊,請參閱《Amazon Elastic Container Service 開發人員指南》中的使用負載平衡來分配 Amazon ECS 服務流量

  • 若要將 EKS Pod 註冊為目標,請使用AWS 閘道 API 控制器,從 Kubernetes 服務取得 IP 地址。

  • 如果目標群組通訊協定是 TCP,則唯一支援的目標類型為 INSTANCEIPALB

IP 地址類型

當您建立目標類型為 的目標群組時IP,您可以指定目標群組的 IP 地址類型。這會指定負載平衡器用來將請求和運作狀態檢查傳送至目標的地址類型。可能的值為 IPv4IPv6。預設值為 IPV4

考量事項
  • 如果您使用 IP 地址類型 建立目標群組IPv6,則您為目標群組指定的 VPC 必須具有 IPv6 地址範圍。

  • 您向目標群組註冊的 IP 地址必須符合目標群組的 IP 地址類型。例如,如果 IPv6 地址的 IP 地址類型為 ,則無法向目標群組註冊 IPv6 地址IPv4

  • 您向目標群組註冊的 IP 地址必須在您為目標群組指定的 VPC 的 IP 地址範圍內。

通訊協定版本

根據預設, 服務會使用 HTTP/1.1 將請求傳送至目標。您可以使用通訊協定版本,使用 HTTP/2 或 gRPC 將請求傳送至目標。

下表摘要說明請求通訊協定與目標群組通訊協定版本組合的結果。

請求通訊協定 通訊協定版本 結果
HTTP/1.1 HTTP/1.1 成功
HTTP/2 HTTP/1.1 成功
gRPC HTTP/1.1 錯誤
HTTP/1.1 HTTP/2 錯誤
HTTP/2 HTTP/2 成功
gRPC HTTP/2 如果目標支援 gRPC,則成功
HTTP/1.1 gRPC 錯誤
HTTP/2 gRPC 如果是 POST 請求,則成功
gRPC gRPC 成功
gRPC 通訊協定版本的考量事項
  • 唯一支援的接聽程式通訊協定是 HTTPS。

  • 支援的目標類型僅為 INSTANCEIP

  • 服務會剖析 gRPC 請求,並根據套件、服務和方法,將 gRPC 呼叫路由至適當的目標群組。

  • 您無法使用 Lambda 函數做為目標。

HTTP/2 通訊協定版本的考量事項
  • 唯一支援的接聽程式通訊協定是 HTTPS。您可以為目標群組通訊協定選擇 HTTP 或 HTTPS。

  • 唯一支援的接聽程式規則是轉送和固定回應。

  • 支援的目標類型僅為 INSTANCEIP

  • 服務支援從用戶端串流。服務不支援串流至目標。