向 Application Load Balancer 目標群組註冊目標 - Elastic Load Balancing

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

向 Application Load Balancer 目標群組註冊目標

您會向目標群組註冊您的目標。建立目標群組時,您會指定其目標類型,這會決定您目標的註冊方式。例如,您可以註冊執行個體 ID、IP 地址或 Lambda 函數。如需詳細資訊,請參閱Application Load Balancer 的目標群組

如果對目前已註冊目標的需求增加,您可以註冊額外的目標來應付需求。當目標準備好處理請求時,請透過目標群組來註冊目標。在註冊程序完成、目標通過初始的運作狀態檢查之後,負載平衡器就會立即開始將請求轉送到目標。

如果對已註冊目標的需求減少,或是需要為目標提供服務,您可以從目標群組取消目標的註冊。取消目標的註冊之後,負載平衡器就會立即停止將請求轉送到目標。當目標準備好接收請求時,您可以再次將目標註冊到目標群組。

當您取消註冊目標時,負載平衡器會等到傳輸中的請求完成。這稱為連接耗盡。當連接耗盡作業正在進行時,目標的狀態是 draining

取消註冊透過 IP 地址註冊的目標時,您必須等待取消註冊延遲完成,之後才能再次註冊相同的 IP 地址。

如果是根據執行個體 ID 來註冊目標,您可以使用負載平衡器搭配 Auto Scaling 群組。在將目標群組連接到 Auto Scaling 群組,而且群組擴展之後,由 Auto Scaling 群組啟動的執行個體會自動註冊到目標群組。如果分離目標群組與 Auto Scaling 群組的連結,會自動從該目標群組中取消註冊執行個體。如需詳細資訊,請參閱 Amazon EC2 Auto Scaling User Guide 中的 Attaching a load balancer to your Auto Scaling group

關閉目標上的應用程式時,您必須先從目標群組取消註冊目標,並預留時間讓現有連線耗盡。您可以使用 describe-target-health CLI 命令或重新整理 中的目標群組檢視來監控取消註冊狀態 AWS Management Console。確認目標取消註冊後,您可以繼續停止或終止應用程式。此序列可防止使用者在處理流量時,於應用程式終止時遇到 5XX 錯誤。

目標安全群組

當您將 EC2 執行個體註冊為目標時,必須確定執行個體的安全群組,會允許負載平衡器同時透過接聽程式連接埠和運作狀態檢查連接埠與您的執行個體通訊。

建議的規則
Inbound
來源 連接埠範圍 註解
負載平衡器安全群組 執行個體接聽程式 Allow traffic from the load balancer on the instance listener port
負載平衡器安全群組 運作狀態檢查 Allow traffic from the load balancer on the health check port

我們也建議您允許傳入 ICMP 流量,以支援路徑 MTU 探索。如需詳細資訊,請參閱《Amazon EC2 使用者指南》中的路徑 MTU 探索

共用子網路

參與者可以在共用 VPC 中建立 Application Load Balancer。參與者無法註冊在未與他們共用的子網路中執行的目標。

登記目標

在負載平衡器能夠使用的每個可用區域中,每個目標群組都必須擁有至少一個已登錄的目標。

目標群組的目標類型會決定您向該目標群組註冊目標的方式。如需詳細資訊,請參閱Target type (目標類型)

需求和考量事項
  • 在註冊時,執行個體必須處於 running 狀態。

  • 目標執行個體必須位於您為目標群組指定的虛擬私有雲端 (VPC) 中。

  • 依執行個體 ID 註冊 IPv6 目標群組的目標時,目標必須具有指派的主要 IPv6 地址。若要進一步了解,請參閱《Amazon EC2 使用者指南》中的 IPv6 地址

  • 依 IPv4 目標群組的 IP 地址註冊目標時,您註冊的 IP 地址必須來自下列其中一個 CIDR 區塊:

    • 目標群組 VPC 的子網路

    • 10.0.0.0/8 (RFC 1918)

    • 100.64.0.0/10 (RFC 6598)

    • 172.16.0.0/12 (RFC 1918)

    • 192.168.0.0/16 (RFC 1918)

  • 依 IPv6 目標群組的 IP 地址註冊目標時,您註冊的 IP 地址必須位於 VPC IPv6 CIDR 區塊內或對等 VPC 的 IPv6 CIDR 區塊內。

  • 您無法在相同的 VPC 中註冊另一個 Application Load Balancer 的 IP 地址。如果另一個 Application Load Balancer 位於與負載平衡器 VPC 對等的 VPC 中,您可以註冊其 IP 地址。

Console
註冊目標
  1. 前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格的 Load Balancing (負載平衡) 中,選擇 Target Groups (目標群組)

  3. 選擇目標群組的名稱,以開啟其詳細資訊頁面。

  4. 選擇 Targets (目標) 標籤。

  5. 選擇 Register targets (註冊目標)

  6. 如果目標群組的目標類型為 instance,請選取可用的執行個體,視需要覆寫預設連接埠,然後選擇包含為以下待定

  7. 如果目標群組的目標類型為 ip,請針對每個 IP 地址選取網路,輸入 IP 地址和連接埠,然後選擇包含為以下待定

  8. 如果目標群組的目標類型是 lambda,請選取 Lambda 函數或輸入其 ARN。如需詳細資訊,請參閱使用 Lambda 函數做為目標

  9. 選擇註冊待定目標

AWS CLI
註冊目標

使用 register-targets 命令。下列範例會依執行個體 ID 註冊目標。由於未指定連接埠,負載平衡器會使用目標群組連接埠。

aws elbv2 register-targets \ --target-group-arn target-group-arn \ --targets Id=i-1234567890abcdef0 Id=i-0abcdef1234567890

下列範例會依 IP 地址註冊目標。由於未指定連接埠,負載平衡器會使用目標群組連接埠。

aws elbv2 register-targets \ --target-group-arn target-group-arn \ --targets Id=10.0.50.10 Id=10.0.50.20

下列範例會將 Lambda 函數註冊為目標。

aws elbv2 register-targets \ --target-group-arn target-group-arn \ --targets Id=lambda-function-arn
CloudFormation
註冊目標

更新 AWS::ElasticLoadBalancingV2::TargetGroup 資源以包含新目標。下列範例會依執行個體 ID 註冊兩個目標。

Resources: myTargetGroup: Type: 'AWS::ElasticLoadBalancingV2::TargetGroup' Properties: Name: my-target-group Protocol: HTTP Port: 80 TargetType: instance VpcId: !Ref myVPC Targets: - Id: !GetAtt Instance1.InstanceId Port: 80 - Id: !GetAtt Instance2.InstanceId Port: 80

取消註冊目標

如果對您應用程式的需求減少,或者您需要為目標提供服務,可以從目標群組取消目標的登錄。取消目標的登錄,會將該目標從目標群組中移除,但不會影響到目標。

Console
取消註冊目標
  1. 前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格的 Load Balancing (負載平衡) 中,選擇 Target Groups (目標群組)

  3. 選擇目標群組的名稱,以開啟其詳細資訊頁面。

  4. 目標索引標籤上,選取要移除的目標。

  5. 選擇 Deregister (取消註冊)

  6. 出現確認的提示時,請選擇取消註冊

AWS CLI
取消註冊目標

使用 deregister-targets 命令。下列範例會取消註冊透過執行個體 ID 註冊的兩個目標。

aws elbv2 deregister-targets \ --target-group-arn target-group-arn \ --targets Id=i-1234567890abcdef0 Id=i-0abcdef1234567890