

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

# 使用 VPC Lattice 目標群組管理流量流程
<a name="ec2-auto-scaling-vpc-lattice"></a>

您可以使用 Amazon VPC Lattice 管理在不同資源 (例如 Auto Scaling 群組 或 Lambda 函數) 上執行的應用程式與服務之間的流量和 API 呼叫流程。VPC Lattice 是一項應用程式聯網服務，可讓您連接、保護和監控跨多個帳戶和虛擬私有雲端 (VPC) 的所有服務。若要進一步了解 VPC Lattice，請參閱《[什麼是 VPC Lattice？](https://docs.aws.amazon.com/vpc-lattice/latest/ug/)》

若要開始使用 VPC Lattice，請先建立所需的 VPC Lattice 資源，使與服務網路相關聯的 VPC 資源能夠互相連結。這些資源包括服務、接聽程式、接聽程式規則和目標群組。

若要將 Auto Scaling 群組與 VPC Lattice 服務建立關聯，請為將請求路由至執行個體 ID 註冊的執行個體之服務建立目標群組，並且為服務加入接聽程式以傳送請求至目標群組。然後，將目標群組連接到 Auto Scaling 群組。Amazon EC2 Auto Scaling 會自動將 EC2 執行個體註冊為目標群組的目標。稍後，當 Amazon EC2 Auto Scaling 需要終止執行個體時，它會在終止前自動從目標群組取消註冊執行個體。

連接目標群組之後，這裡成為所有傳入請求連接至 Auto Scaling 群組的進入點。如下圖中的範例所示，接著便可以使用 VPC Lattice 服務指定的接聽程式規則，將傳入請求路由至適當的目標群組。

![\[VPC Lattice 會使用以路徑型路由，將流量路由到兩個 Auto Scaling 群組中的已註冊目標。\]](http://docs.aws.amazon.com/zh_tw/autoscaling/ec2/userguide/images/vpc-lattice-diagram-auto-scaling-groups.png)


當流量透過 VPC Lattice 路由到 Auto Scaling 群組時，VPC Lattice 會使用循環配置負載平衡來平衡群組中執行個體之間的請求。VPC Lattice 還可監控其註冊執行個體的運作狀態，而且只會將流量路由到正常運作的執行個體。

若要確保您的執行個體可用於傳入的請求，您可以選擇將 VPC Lattice 運作狀態檢查新增至 Auto Scaling 群組。如此一來，若其中一個 EC2 執行個體發生失敗，Auto Scaling 群組會自動啟動新的執行個體將其取代。VPC Lattice 運作狀態檢查的行為類似於 Elastic Load Balancing 運作狀態檢查的行為。Auto Scaling 群組的預設運作狀態檢查只進行 EC2 運作狀態檢查。

若要進一步了解 VPC Lattice，請參閱 AWS 部落格上的[使用 Amazon VPC Lattice 簡化Service-to-Service連線、安全性和監控 – 現在已全面推出](https://aws.amazon.com/blogs/aws/simplify-service-to-service-connectivity-security-and-monitoring-with-amazon-vpc-lattice-now-generally-available/)。

**Topics**
+ [準備連接目標群組](getting-started-vpc-lattice.md)
+ [連接 VPC Lattice 目標群組](attach-vpc-lattice-target-group-asg.md)
+ [確認連接狀態](verify-target-group-attachment-status.md)

# 準備將 VPC Lattice 目標群組連接到 Auto Scaling 群組
<a name="getting-started-vpc-lattice"></a>

將 VPC Lattice 目標群組連接到 Auto Scaling 群組之前，您必須完成以下先決條件：
+ 您必須已經建立 VPC Lattice 服務網路、服務、接聽程式和目標群組。如需詳細資訊，請參閱《*VPC Lattice 使用者指南*》中的下列主題：
  + [服務網路](https://docs.aws.amazon.com/vpc-lattice/latest/ug/service-networks.html)
  + [服務](https://docs.aws.amazon.com/vpc-lattice/latest/ug/services.html)
  + [接聽程式](https://docs.aws.amazon.com/vpc-lattice/latest/ug/listeners.html)
  + [目標群組](https://docs.aws.amazon.com/vpc-lattice/latest/ug/target-groups.html)
+ 目標群組必須與 Auto Scaling 群組位於相同的 AWS 帳戶 VPC 和區域。
+ 目標群組必須指定 `instance` 的目標類型。在使用 Auto Scaling 群組時，您無法指定 `ip` 的目標類型。
+ 您必須擁有足夠的 IAM 許可才能將目標群組連接到 Auto Scaling 群組。下列範例政策顯示連結和分離目標群組所需的最低必要許可。

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "autoscaling:AttachTrafficSources",
                  "autoscaling:DetachTrafficSources",
                  "autoscaling:DescribeTrafficSources",
                  "vpc-lattice:RegisterTargets",
                  "vpc-lattice:DeregisterTargets"
              ],
              "Resource": "*"
          }
      ]
  }
  ```

------
+ 如果 Auto Scaling 群組的啟動範本未包含 VPC Lattice 的正確設定 (例如相容的安全群組)，您必須更新啟動範本。修改啟動範本時，現有執行個體不會使用新的設定進行更新。若要更新現有的執行個體，您可以啟動執行個體重新整理以取代執行個體。如需詳細資訊，請參閱[使用執行個體重新整理來更新 Auto Scaling 群組中的執行個體](asg-instance-refresh.md)。
+ 在您的 Auto Scaling 群組上啟用 VPC Lattice 運作狀態檢查之前，您可以設定應用程式型運作狀態檢查，以確認應用程式是否按預期回應。如需詳細資訊，請參閱《*VPC Lattice 使用者指南*》中的[目標群組的運作狀態檢查](https://docs.aws.amazon.com/vpc-lattice/latest/ug/target-group-health-checks.html)一節。

## 安全群組：傳入和傳出規則
<a name="vpc-lattice-security-groups"></a>

安全群組就像是防火牆，用於關聯的 EC2 執行個體，可在執行個體層級控制傳入及傳出流量。

**注意**  
網路組態相當複雜，我們強烈建議您建立新的安全群組與 VPC Lattice 搭配使用。如果您需要聯絡他們 支援 ，也可讓您更輕鬆地提供協助。以下幾節的內容是假設您遵循此建議而撰寫。  
若要深入了解如何為 VPC Lattice 建立可與 Auto Scaling 群組搭配使用的安全群組，請參閱《*VPC Lattice 使用者指南*》中的[使用安全群組控制流量](https://docs.aws.amazon.com/vpc-lattice/latest/ug/security-groups.html)一節。若要對流量問題進行疑難排解，請參閱《*VPC Lattice 使用者指南*》以取得更多資訊。

如需有關如何建立安全群組的資訊，請參閱《*Amazon EC2 使用者指南*》中的[建立安全群組](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-security-group.html)，並使用下表來決定要選取的選項。


| 選項 | Value | 
| --- | --- | 
| 名稱  | 您容易記住的名稱。 | 
| Description | 協助您識別安全群組的描述。 | 
| VPC | 與 Auto Scaling 群組相同的 VPC。 | 

### 傳入規則
<a name="vpc-lattice-inbound-rules"></a>

當您建立安全群組時，它沒有傳入規則。將規則傳入安全群組之前，來自 VPC Lattice 服務網路內用戶端的流量都無法傳入您的執行個體。

若要允許 VPC Lattice 服務網路中的用戶端連結到 Auto Scaling 群組中的執行個體，您必須正確設定 Auto Scaling 群組的安全群組。在此情況下，請為其提供傳入規則，以允許來自 VPC Lattice AWS 受管字首清單名稱的流量，而非特定 IP 地址。VPC Lattice 字首清單是 VPC Lattice 使用 CIDR 標記法表示的 IP 地址範圍。如需詳細資訊，請參閱《*Amazon VPC 使用者指南*》中的[使用 AWS受管字首清單](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-aws-managed-prefix-lists.html)。

如需有關如何將規則新增至安全群組的資訊，請參閱《*Amazon VPC 使用者指南*》中的[設定安全群組規則](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-security-group-rules.html)，並使用下表來決定要選取的選項。


| 選項 | Value | 
| --- | --- | 
|  HTTP 規則  | 類型：HTTP 來源：com.amazonaws.*region*.vpc-lattice  | 
|  HTTPS 規則  | Type (類型)：HTTPS 來源：com.amazonaws.*region*.vpc-lattice  | 

安全群組具有狀態：它允許從 VPC Lattice 服務網路內的用戶端流量傳送回 Auto Scaling 群組中的執行個體，然後將回應傳回先前離開的用戶端。

### 傳出規則
<a name="vpc-lattice-outbound-rules"></a>

根據預設，安全群組會包含允許所有傳出流量的規則。您可以選擇移除此預設規則，並新增傳出規則以符合特定的安全需求。

## 限制
<a name="vpc-lattice-target-group-limitations"></a>
+ 支援[混合執行個體群組](ec2-auto-scaling-mixed-instances-groups.md)。如果您將 VPC Lattice 目標群組連接到具有混合執行個體政策的 Auto Scaling 群組，負載平衡演算法會將負載平均分配到所有可用資源，並假設執行個體的相似度足以處理相等的負載。

# 將 VPC Lattice 目標群組連接到 Auto Scaling 群組
<a name="attach-vpc-lattice-target-group-asg"></a>

本主題說明如何將 VPC Lattice 目標群組連接到 Auto Scaling 群組。同時也說明如何開啟 VPC Lattice 運作狀態檢查，讓 Amazon EC2 Auto Scaling 取代 VPC Lattice 報告為運作狀態不佳的執行個體。

預設情況下，Amazon EC2 Auto Scaling 只會根據 Amazon EC2 運作狀態檢查來取代運作狀態不佳或無法連接的執行個體。如果您開啟 VPC Lattice 運作狀態檢查，當您所連接之 Auto Scaling 群組有任何 VPC Lattice 目標群組報告為運作狀態不佳時，Amazon EC2 Auto Scaling 就可以取代執行中的執行個體。如需詳細資訊，請參閱[Auto Scaling 群組中的執行個體運作狀態檢查](ec2-auto-scaling-health-checks.md)。

**重要**  
繼續操作之前，請先完成上一節中的所有[先決條件](getting-started-vpc-lattice.md)。

## 連接 VPC Lattice 目標群組
<a name="attach-vpc-lattice-target-group"></a>

建立或更新群組時，您可以將一或多個目標群組連接至 Auto Scaling 群組。

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

請依照本節中的步驟，使用主控台執行下列操作：
+ 將 VPC Lattice 目標群組連接到 Auto Scaling 群組
+ 開啟 VPC Lattice 的運作狀態檢查

**將 VPC Lattice 目標群組連接到新的 Auto Scaling 群組**

1. 前往網址 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台，然後從導覽窗格中選擇 **Auto Scaling 群組**。

1. 在螢幕上方的導覽列中，選擇您建立目標群組所在的 AWS 區域 。

1. 選擇 **Create Auto Scaling group** (建立 Auto Scaling 群組)。

1.  在步驟 1 和步驟 2 中，選擇所需選項，然後繼續進行**步驟 3：設定進階選項**。

1. 針對 **VPC Lattice 整合選項**，選擇**連接至 VPC Lattice 服務**。

1. 在**選擇 VPC Lattice 目標群組**下，選擇您的目標群組。

1. (選用) 針對**運作狀態檢查**、**其他運作狀態檢查類型**，選取**開啟 VPC Lattice 運作狀態檢查**。

1. (選用) 針對**運作狀態檢查寬限期**，輸入時長，以秒為單位。此時間量是 Amazon EC2 Auto Scaling 在進入 `InService` 狀態後檢查執行個體的運作狀態所需的等待時間。如需詳細資訊，請參閱[設定 Auto Scaling 群組的運作狀態檢查寬限期。](health-check-grace-period.md)。

1. 繼續建立 Auto Scaling 群組。建立 Auto Scaling 群組之後，您的執行個體會自動註冊到 VPC Lattice 目標群組。

**將 VPC Lattice 目標群組連接到現有的 Auto Scaling 群組**

請按照下列步驟將服務的目標群組連接到現有 Auto Scaling 群組。

1. 前往網址 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台，然後從導覽窗格中選擇 **Auto Scaling 群組**。

1. 選取 Auto Scaling 群組旁的核取方塊。

   頁面底部會開啟一個分割窗格。

1. 在**詳細資訊**索引標籤上，選擇 **VPC Lattice 整合選項**、**編輯**。

1. 在 **VPC Lattice 整合選項**下，選擇**連接至 VPC Lattice 服務**。

1. 在**選擇 VPC Lattice 目標群組**下，選擇您的目標群組。

1. 選擇**更新**。

連接目標群組後，您可以選擇開啟並使用運作狀態檢查。

**開啟 VPC Lattice 運作狀態檢查**

1. 在 **Details** (詳細資訊) 索引標籤上，選擇 **Health checks** (運作狀態檢查)、**Edit** (編輯)。

1. 針對**運作狀態檢查**、**其他運作狀態檢查類型**，選取**開啟 VPC Lattice 運作狀態檢查**。

1. 針對**運作狀態檢查寬限期**，輸入時間量，以秒為單位。此時間量是 Amazon EC2 Auto Scaling 在進入 `InService` 狀態後檢查執行個體的運作狀態所需的等待時間。如需詳細資訊，請參閱[設定 Auto Scaling 群組的運作狀態檢查寬限期。](health-check-grace-period.md)。

1. 選擇**更新**。

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

請依照本節中的步驟使用 AWS CLI 來：
+ 將 VPC Lattice 目標群組連接到 Auto Scaling 群組
+ 開啟 VPC Lattice 的運作狀態檢查

**將 VPC Lattice 目標群組連接到 Auto Scaling 群組**

使用下列 [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) 命令建立 Auto Scaling 群組，同時透過指定其 Amazon Resource Name (ARN) 來連接 VPC Lattice 目標群組。

取代 `--auto-scaling-group-name`、`--vpc-zone-identifier`、`--min-size` 和 `--max-size` 的範例值。在 `--launch-template` 選項中，使用您為註冊到 VPC Lattice 目標群組的執行個體所建立的啟動範本名稱和版本來取代 `my-launch-template` 和 `1`。在 `--traffic-sources` 選項中，使用 VPC Lattice 目標群組的 ARN 來取代範例 ARN。

```
aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg \
  --launch-template LaunchTemplateName=my-launch-template,Version='1' \
  --vpc-zone-identifier "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" \
  --min-size 1 --max-size 5 \
  --traffic-sources "Identifier=arn:aws:vpc-lattice:region:account-id:targetgroup/tg-0e2f2665eEXAMPLE"
```

建立 Auto Scaling 群組後，使用以下 [attach-traffic-sources](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/attach-traffic-sources.html) 命令，將 VPC Lattice 目標群組連接至該 Auto Scaling 群組。

```
aws autoscaling attach-traffic-sources --auto-scaling-group-name my-asg \
  --traffic-sources "Identifier=arn:aws:vpc-lattice:region:account-id:targetgroup/tg-0e2f2665eEXAMPLE"
```

**開啟 VPC Lattice 運作狀態檢查**

如果您已為 **VPC Lattice** 目標群組設定應用程式型運作狀態檢查，則可以開啟這些運作狀態檢查。使用包含 `--health-check-type` 選項和 `VPC_LATTICE` 的值的 [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) 或 [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) 命令。若要指定 Auto Scaling 群組執行運作狀態檢查寬限期，請加入 `--health-check-grace-period` 選項並提供以秒為單位的值。

```
--health-check-type "VPC_LATTICE" --health-check-grace-period 60
```

------

## 分離 VPC Lattice 目標群組
<a name="detach-vpc-lattice-target-group"></a>

如果不再需要使用 VPC Lattice，請按照下列步驟將目標群組從 Auto Scaling 群組分離。

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

請依照本節中的步驟，使用主控台執行下列操作：
+ 將 VPC Lattice 目標群組從 Auto Scaling 群組分離
+ 關閉 VPC Lattice 運作狀態檢查

**將 VPC Lattice 目標群組從 Auto Scaling 群組分離**

1. 前往網址 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台，然後從導覽窗格中選擇 **Auto Scaling 群組**。

1. 選取現有群組旁邊的核取方塊。

   頁面底部會開啟一個分割窗格。

1. 在**詳細資訊**索引標籤上，選擇 **VPC Lattice 整合選項**、**編輯**。

1. 在 **VPC Lattice 整合選項**下，選擇目標群組旁的刪除 (X) 圖示。

1. 選擇**更新**。

分離目標群組後，您便可以關閉 VPC Lattice 運作狀態檢查。

**關閉 VPC Lattice 運作狀態檢查**

1. 在 **Details** (詳細資訊) 索引標籤上，選擇 **Health checks** (運作狀態檢查)、**Edit** (編輯)。

1. 針對**運作狀態檢查**、**其他運作狀態檢查類型**，取消選取**開啟 VPC Lattice 運作狀態檢查**。

1. 選擇**更新**。

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

請依照本節中的步驟使用 AWS CLI 來：
+ 將 VPC Lattice 目標群組從 Auto Scaling 群組分離
+ 關閉 VPC Lattice 運作狀態檢查

如果不再需要目標群組，請使用 [detach-traffic-sources](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/detach-traffic-sources.html) 命令將目標群組從 Auto Scaling 群組分離。

```
aws autoscaling detach-traffic-sources --auto-scaling-group-name my-asg \
  --traffic-sources "Identifier=arn:aws:vpc-lattice:region:account-id:targetgroup/tg-0e2f2665eEXAMPLE"
```

若要更新 Auto Scaling 群組的運作狀態檢查，使其不再使用 VPC Lattice 運作狀態檢查，請使用 [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) 命令。包含 `--health-check-type` 選項和 `EC2` 的值。

```
aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \
  --health-check-type "EC2"
```

------

# 確認 VPC Lattice 目標群組的連接狀態
<a name="verify-target-group-attachment-status"></a>

將 VPC Lattice 目標群組連接至 Auto Scaling 群組後，該群組將進入 `Adding` 狀態並在群組內註冊執行個體。群組內所有執行個體都完成註冊後，它會進入 `Added` 狀態。在至少有一個註冊的執行個體通過運作狀態檢查後，它就會進入 `InService` 狀態。當目標群組進入 `InService` 狀態後，Amazon EC2 Auto Scaling 可以終止和取代任何報告為運作狀態不佳的執行個體。如果沒有註冊的執行個體通過運作狀態檢查 (例如，因為運作狀態檢查的設定錯誤)，目標群組就不會進入 `InService` 狀態。Amazon EC2 Auto Scaling 不會終止和替換執行個體。

當您分離服務的目標群組後，它會進入 `Removing` 狀態，同時取消在群組中註冊執行個體。取消註冊後的執行個體仍繼續執行作業。連接耗盡 (取消註冊延遲) 預設為啟用。如果啟用了連接耗盡，則 VPC Lattice 會等待傳輸中請求完成或最大逾時過期 (以先發生者為準)，再取消註冊執行個體。

您可以使用 AWS Command Line Interface (AWS CLI) AWS SDKs來驗證連接狀態。您無法從主控台確認連接狀態。

**使用 AWS CLI 驗證連接狀態**  
以下 [describe-traffic-sources](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-traffic-sources.html) 命令會傳回指定 Auto Scaling 群組之所有流量來源的連接狀態。

```
aws autoscaling describe-traffic-sources --auto-scaling-group-name my-asg
```

此範例會傳回連接至 Auto Scaling 群組的 VPC Lattice 目標群組的 ARN，以及 `State` 元素中目標群組的連接狀態。

```
{
    "TrafficSources": [
        {
            "Identifier": "arn:aws:vpc-lattice:region:account-id:targetgroup/tg-0e2f2665eEXAMPLE",
            "State": "InService",
            "Type": "vpc-lattice"
        }
    ]
}
```