

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

# 為您的 Network Load Balancer 註冊目標
<a name="target-group-register-targets"></a>

當您的目標準備好處理請求時，可以向一或多個目標群組進行註冊。目標群組的目標類型決定了您註冊目標的方式。例如，您可以登錄執行個體 ID、IP 地址或 Application Load Balancer。當登錄程序完成且目標通過初始運作狀態檢查時，Network Load Balancer 會立即啟動將請求路由到登錄的目標。註冊程序可能需要幾分鐘的時間才能完成，並開始運作狀態檢查。如需詳細資訊，請參閱[Network Load Balancer 目標群組的運作狀態檢查](target-group-health-checks.md)。

如果對目前已註冊目標的需求增加，您可以註冊額外的目標來應付需求。如果對已註冊目標的需求減少，您可以從目標群組取消註冊目標。取消註冊程序可能需要幾分鐘的時間才能完成，而且負載平衡器可能需要幾分鐘才能停止將請求路由到目標。如果之後需求增加，您可以再次向目標群組註冊已取消註冊的目標。如果您需要為目標提供服務，可以取消註冊，然後在服務完成後再次註冊。

當您取消註冊目標時，Elastic Load Balancing 會等到傳輸中的請求完成。這稱為*連接耗盡*。當連接耗盡作業正在進行時，目標的狀態是 `draining`。取消登錄完成後，目標的狀態將變更成 `unused`。如需詳細資訊，請參閱[取消登記的延遲](edit-target-group-attributes.md#deregistration-delay)。

如果是根據執行個體 ID 來註冊目標，您可以使用負載平衡器搭配 Auto Scaling 群組。在將目標群組連接到 Auto Scaling 群組，而且群組橫向擴展之後，由 Auto Scaling 群組所啟動的執行個體，會自動登錄到目標群組。如果將負載平衡器從 Auto Scaling 群組分離，會自動從該目標群組取消執行個體的登錄。如需詳細資訊，請參閱《Amazon EC2 Auto Scaling 使用者指南》**中的[連接負載平衡器到 Auto Scaling 群組](https://docs.aws.amazon.com/autoscaling/ec2/userguide/attach-load-balancer-asg.html)。

**Topics**
+ [目標安全群組](#target-security-groups)
+ [網路 ACL](#network-acls)
+ [共用子網路](#register-targets-shared-subnets)
+ [登記目標](#register-targets)
+ [取消註冊目標](#deregister-targets)

## 目標安全群組
<a name="target-security-groups"></a>

在新增目標至目標群組之前，請先設定與目標關聯的安全群組，以接受來自 Network Load Balancer 的流量。

**如果負載平衡器具有關聯的安全群組，則針對目標安全群組提供的建議**
+ **若要允許用戶端流量**：新增參考與負載平衡器關聯安全群組的規則。
+ **若要允許 PrivateLink 流量**：如果您設定負載平衡器來評估透過 傳送之流量的傳入規則 AWS PrivateLink，請新增規則，以接受來自流量連接埠上負載平衡器安全群組的流量。否則，請新增規則以接受來自流量連接埠上負載平衡器私有 IP 地址的流量。
+ **若要接受負載平衡器運作狀態檢查**：新增規則以接受運作狀態檢查連接埠上負載平衡器安全群組的運作狀態檢查流量。

**如果負載平衡器未關聯安全群組，則針對目標安全群組提供的建議**
+ **允許用戶端流量**：如果負載平衡器保留用戶端 IP 地址，請新增規則以接受來自流量通訊埠上核准用戶端 IP 地址流量的流量。否則，請新增規則以接受來自流量連接埠上負載平衡器私有 IP 地址的流量。
+ **若要允許 PrivateLink 流量**：新增規則以接受來自流量連接埠上負載平衡器私有 IP 地址的流量。
+ **若要接受負載平衡器運作狀態檢查**：新增規則以接受運作狀態檢查連接埠上負載平衡器私有 IP 地址的運作狀態檢查流量。

**用戶端 IP 保留的運作方式**  
除非將屬性設定 `preserve_client_ip.enabled` 為 `true`，否則 Network Load Balancer 不會保留用戶端 IP 地址。此外，使用雙堆疊 Network Load Balancer，將 IPv4 地址轉譯為 IPv6 或將 IPv6 轉譯為 IPv4 地址時，用戶端 IP 地址保留無法運作。用戶端 IP 地址保留只有在用戶端和目標 IP 地址都同時是 IPv4 或 IPv6 時才有效。

**使用主控台尋找負載平衡器私有 IP 地址**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **Network Interfaces** (網路介面)。

1. 在搜尋欄位，輸入 Network Load Balancer 的名稱。每個負載平衡器子網路都有一個網路界面。

1. 在每個網路界面的 **Details (詳細資訊)** 索引標籤，複製 **Primary private IPv4 IP (主要私有 IPv4 IP 地址)**。

如需詳細資訊，請參閱[更新 Network Load Balancer 的安全群組](load-balancer-security-groups.md)。

## 網路 ACL
<a name="network-acls"></a>

當您將 EC2 執行個體登錄為目標時，必須確定執行個體之子網路的網路 ACL，會允許透過接聽程式連接埠和運作狀態檢查通訊埠來傳送流量。VPC 的預設網路存取控制清單 (ACL) 可允許所有傳入和傳出的流量。如果您建立自訂網路 ACL，請確認它們允許適當的流量。

與執行個體子網路關聯的網路 ACL 必須允許 internet-facing 負載平衡器的流量。


**適用於執行個體子網路的建議規則**  

| 
| 
| **Inbound** | 
| --- |
|  來源  |  通訊協定  |  連接埠範圍  |  Comment  | 
| 用戶端 IP 位址 | 接聽程式 | 目標連接埠 | Allow client traffic (IP Preservation: ON) | 
| VPC CIDR | 接聽程式 | 目標連接埠 | Allow client traffic (IP Preservation: OFF) | 
| VPC CIDR | 運作狀態檢查 | 運作狀態檢查 | Allow health check traffic | 
| **Outbound** | 
| --- |
|  目標  |  通訊協定  |  連接埠範圍  |  Comment  | 
| 用戶端 IP 位址 | 接聽程式 | 1024-65535 | Allow return traffic to client (IP Preservation: ON) | 
| VPC CIDR | 接聽程式 | 1024-65535 | Allow return traffic to client (IP Preservation: OFF) | 
| VPC CIDR | 運作狀態檢查 | 1024-65535 | Allow health check traffic | 

與負載平衡器子網路關聯的網路 ACL 必須允許 internet-facing 負載平衡器的流量。


**適用於負載平衡器子網路的建議規則**  

| 
| 
| **Inbound** | 
| --- |
|  來源  |  通訊協定  |  連接埠範圍  |  Comment  | 
| 用戶端 IP 位址 | 接聽程式 | 接聽程式 | Allow client traffic | 
| VPC CIDR | 接聽程式 | 1024-65535 | Allow response from target | 
| VPC CIDR | 運作狀態檢查 | 1024-65535 | Allow health check traffic | 
| **Outbound** | 
| --- |
|  目標  |  通訊協定  |  連接埠範圍  |  Comment  | 
| 用戶端 IP 位址 | 接聽程式 | 1024-65535 | Allow responses to clients | 
| VPC CIDR | 接聽程式 | 目標連接埠 | Allow requests to targets | 
| VPC CIDR | 運作狀態檢查 | 運作狀態檢查 | Allow health check to targets | 

對於內部負載平衡器，執行個體與負載平衡器節點子網路的網路 ACL 必須允許接聽程式連接埠與暫時連接埠 VPC CIDR 的輸入與輸出流量。

## 共用子網路
<a name="register-targets-shared-subnets"></a>

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

所有 AWS 區域都支援 Network Load Balancer 的共用子網路，但不包括：
+ 亞太區域 （大阪） `ap-northeast-3`
+ 亞太區域 （香港） `ap-east-1`
+ 中東 （巴林） `me-south-1`
+ AWS 中國 （北京） `cn-north-1`
+ AWS 中國 （寧夏） `cn-northwest-1`

## 登記目標
<a name="register-targets"></a>

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

目標群組的目標類型會決定您可以註冊的目標。如需詳細資訊，請參閱[Target type (目標類型)](load-balancer-target-groups.md#target-type)。使用以下資訊，向類型為 `instance`或 的目標群組註冊目標`ip`。如果目標類型為 `alb`，請參閱 [使用 Application Load Balancer 做為目標](application-load-balancer-target.md)。

**需求和考量事項**
+ 在註冊時，執行個體必須處於 `running` 狀態。
+ 如果執行個體如下類型之一：C1, CC1, CC2, CG1, CG2, CR1, G1, G2, HI1, HS1, M1, M2, M3, 或 T1，無法透過執行個體 ID 來登錄執行個體。
+ 依執行個體 ID 註冊目標時，執行個體必須與 Network Load Balancer 位於相同的 VPC 中。如果執行個體位於與負載平衡器 VPC 互連的 VPC 中 (相同區域或不同區域)，則您無法依執行個體 ID 註冊執行個體。您可以依照 IP 地址來註冊這些執行個體。
+ 依執行個體 ID 註冊 IPv6 目標群組的目標時，目標必須具有指派的主要 IPv6 地址。若要進一步了解，請參閱《*Amazon EC2 使用者指南*》中的 [ IPv6 地址](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#ipv6-addressing) 
+ 依 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 區塊內。
+ 如果您依照 IP 地址註冊目標，且 IP 地址與負載平衡器位於相同的 VPC 中，則負載平衡器會驗證它來自於其可連上的子網路。
+ 對於 UDP、TCP\$1UDP、QUIC 和 TCP\$1QUIC 目標群組，如果執行個體位於負載平衡器 VPC 之外，或使用下列其中一個執行個體類型，則請勿透過 IP 地址註冊執行個體：C1, CC1, CC2, CG1, CG2, CR1, G1, G2, HI1, HS1, M1, M2, M3 或 T1。位於負載平衡器 VPC 外部或使用不支援的執行個體類型的目標，可能能夠從負載平衡器接收流量，但隨後無法回應。

**QUIC 特定要求和考量事項**
+ 註冊至 QUIC 或 TCP\$1QUIC 目標群組的所有目標都必須指定伺服器 ID。
+ 對於 Network Load Balancer 接聽程式內存在的所有目標，伺服器 IDs 必須是唯一的。
+ QUIC 伺服器 IDs一律為 8 個位元組。註冊目標時，伺服器 ID 的格式必須為 `0x` 16 個十六進位字元。
+ 使用伺服器 ID 註冊目標後，該 ID 是不可變的。若要變更目標伺服器 ID，必須先取消註冊，然後使用新的伺服器 ID 註冊。
+ 目標識別符和連接埠組合必須有一個伺服器 ID。不支援針對相同 VPC 中的相同 IP 或執行個體 ID 和連接埠組合使用不同的伺服器 ID。
+ 避免在 6 小時內為不同的目標重複使用相同的伺服器 ID。

------
#### [ Console ]

**註冊目標**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

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

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

1. 選擇 **Targets (目標)** 標籤。

1. 選擇 **Register targets (註冊目標)**。

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

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

1. 如果目標群組的目標類型是 `alb`，請視需要覆寫預設連接埠，然後選取 Application Load Balancer。如需詳細資訊，請參閱[使用 Application Load Balancer 做為目標](application-load-balancer-target.md)。

1. 如果目標群組的通訊協定是 QUIC 或 TCP\$1QUIC，請確定已指定伺服器 ID。

1. 選擇**註冊待定目標**。

------
#### [ AWS CLI ]

**註冊目標**  
使用 [register-targets](https://docs.aws.amazon.com/cli/latest/reference/elbv2/register-targets.html) 命令。下列範例會依執行個體 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
```

下列範例會將 Application Load Balancer 註冊為目標。

```
aws elbv2 register-targets \
    --target-group-arn target-group-arn \
    --targets Id=application-load-balancer-arn
```

下列範例會將目標註冊到 QUIC 或 TCP\$1QUIC 目標群組。

```
aws elbv2 register-targets \
    --target-group-arn target-group-arn \
    --targets Id=10.0.50.10,QuicServerId=0xa1b2c3d4e5f65890 Id=10.0.50.20,QuicServerId=0xa1b2c3d4e5f65999
```

------
#### [ CloudFormation ]

**註冊目標**  
更新 [AWS::ElasticLoadBalancingV2::TargetGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-targetgroup.html) 資源以包含新目標。下列範例會依執行個體 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
```

下列範例會依執行個體 ID 將兩個目標註冊到 QUIC 或 TCP\$1QUIC 通訊協定目標群組。

```
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
          QuicServerId: 0xa1b2c3d4e5f65999
        - Id: !GetAtt Instance2.InstanceId
          Port: 80
          QuicServerId: 0xa1b2c3d4e5f65000
```

------

## 取消註冊目標
<a name="deregister-targets"></a>

如果對您應用程式的需求減少，或者您需要為目標提供服務，可以從目標群組取消目標的登錄。取消目標的登錄，會將該目標從目標群組中移除，但不會影響到目標。取消目標的登錄之後，負載平衡器就會立即停止將流量轉傳到目標。目標會進入 `draining` 狀態，直到處理中的請求已完成。

------
#### [ Console ]

**取消註冊目標**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

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

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

1. 在**目標**索引標籤上，選取要移除的目標。

1. 選擇 **Deregister (取消註冊)**。

------
#### [ AWS CLI ]

**取消註冊目標**  
使用 [deregister-targets](https://docs.aws.amazon.com/cli/latest/reference/elbv2/deregister-targets.html) 命令。下列範例會取消註冊透過執行個體 ID 註冊的兩個目標。

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

------