

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

# 設定 CodeDeploy Amazon ECS 部署的負載平衡器、目標群組和接聽程式
<a name="deployment-groups-create-load-balancer-for-ecs"></a>

 在使用 Amazon ECS 運算平台執行部署之前，您必須建立 Application Load Balancer 或 Network Load Balancer、兩個目標群組，以及一個或兩個接聽程式。本主題說明如何建立 Application Load Balancer。如需詳細資訊，請參閱[開始 Amazon ECS 部署之前](deployment-steps-ecs.md#deployment-steps-prerequisites-ecs)。

 其中一個目標群組會將流量導向至 Amazon ECS 應用程式的原始任務集。另一個目標群組會將流量導向其替換任務集。在部署期間，CodeDeploy 會建立替代任務集，並將流量從原始任務集重新路由至新的任務集。CodeDeploy 會決定用於每個任務集的目標群組。

 接聽程式供負載平衡器用來將流量導向到您的目標群組。一個生產接聽程式為必要項目。您可以指定選用的測試接聽程式，負責在您執行驗證測試時引導流量到您的替換任務。

 負載平衡器必須使用 VPC 搭配不同可用區域中的兩個子網路。下列步驟說明如何確認您的預設 VPC、建立 Amazon EC2 Application Load Balancer，然後為您的負載平衡器建立兩個目標群組。如需詳細資訊，請參閱[網路負載平衡器的目標群組](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html)。

## 驗證您的預設 VPC、公有子網路和安全群組
<a name="deployment-groups-create-load-balancer-for-ecs-verify-vpc"></a>

 本主題說明如何建立 Amazon EC2 Application Load Balancer、兩個目標群組，以及可在 Amazon ECS 刪除期間使用的兩個連接埠。其中一個連接埠是選用的，且只有在部署期間將流量導向測試連接埠進行驗證測試時才需要。

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)：// 開啟 Amazon VPC 主控台。

1. 驗證要使用的預設 VPC。在導覽窗格中，選擇 **Your VPCs** (您的 VPC)。請注意，哪個 VPC 在 **Default VPC (預設 VPC)** 欄中顯示 **Yes (是)**。這是您的預設 VPC。其中包含您使用的預設子網路。

1. 選擇 **Subnets (子網路)**。記下在 **Default subnet (預設子網路)** 欄中顯示 **Yes (是)** 的兩個子網路的子網路 ID。當您建立負載平衡器時會使用這些 ID。

1. 選擇每個子網路，然後選擇 **Description (描述)** 標籤。驗證您想要使用的子網路是否位於不同的可用區域中。

1. 選擇子網路，然後選擇 **Route Table (路由表)** 標籤。若要驗證您想要使用的每個子網路是否為公有子網路，請確認路由表中有一列具有網際網路閘道的連結。

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)：// 開啟 Amazon EC2 主控台。

1. 從導覽窗格中，選擇 **Security Groups (安全群組)**。

1. 確認您想要使用的安全群組可用，並記下其群組 ID (例如，**sg-abcd1234**)。您在建立負載平衡器時會使用此項目。

## 建立 Amazon EC2 Application Load Balancer、兩個目標群組和接聽程式 （主控台）
<a name="deployment-groups-create-load-balancer-for-ecs-console"></a>

若要使用 Amazon EC2 主控台建立 Amazon EC2 Application Load Balancer：

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)：// 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **Load Balancers (負載平衡器)**。

1. 選擇 **Create Load Balancer (建立負載平衡器)**。

1. 選擇 **Application Load Balancer (應用程式負載平衡器)**，然後選擇 **Create (建立)**。

1. 在 **Name (名稱)** 中，輸入負載平衡器的名稱。

1. 在 **Scheme (結構描述)** 中，選擇 **internet-facing (面向網際網路)**。

1. 在 **IP address type (IP 地址)** 中，選擇 **ipv4**。

1. (選用) 為您的負載平衡器設定第二個接聽程式連接埠。您可以使用轉發至此連接埠的測試流量來執行部署驗證測試。

   1. 在 **Load Balancer Protocol (負載平衡器通訊協定)** 下，選擇 **Add listener (新增接聽程式)**。

   1. 在第二個接聽程式的 **Load Balancer Protocol (負載平衡器通訊協定)** 下，選擇 **HTTP**。

   1. 在 **Load Balancer Port (負載平衡器連接埠)** 下，輸入 **8080**。

1. 在 **Availability Zones (可用區域)** 下的 **VPC** 中，選擇預設 VPC，然後選取您要使用的兩個預設子網路。

1. 選擇 **Next: Configure Security Settings (下一步：設定安全設定)**。

1. 選擇 **Next: Configure Security Groups (下一步：設定安全群組)**。

1. 選擇 **Select an existing security group (選取現有的安全群組)**，選擇預設安全群組，然後記下其 ID。

1. 選擇 **Next: Configure Routing (下一步：設定路由)**。

1. 在 **Target group (目標群組)** 中，選擇 **New target group (新增目標群組)**，然後設定您的第一個目標群組：

   1. 在 **Name (名稱)** 中，輸入目標群組名稱 (例如，**target-group-1**)。

   1. 在 **Target type (目標類型)** 中，選擇 **IP**。

   1. 在 **Protocol (通訊協定)** 中，選擇 **HTTP**。在 **Port (連接埠)** 中，輸入 **80**。

   1. 選擇 **Next: Register Targets (下一步：註冊目標)**。

1. 選擇 **Next: Review (下一步：檢視)**，然後選擇 **Create (建立)**。

**為您的負載平衡器建立第二個目標群組**

1. 佈建負載平衡器之後，請開啟 Amazon EC2 主控台。在導覽窗格中，選擇 **Target Groups (目標群組)**。

1. 選擇 **Create target group (建立目標群組)**。

1. 在 **Name (名稱)** 中，輸入目標群組名稱 (例如，**target-group-2**)。

1. 在 **Target type (目標類型)** 中，選擇 **IP**。

1. 在 **Protocol (通訊協定)** 中，選擇 **HTTP**。在 **Port (連接埠)** 中，輸入 **80**。

1. 在 **VPC** 中，選擇預設 VPC。

1. 選擇**建立**。
**注意**  
您必須為負載平衡器建立兩個目標群組，才能執行 Amazon ECS 部署。建立 Amazon ECS 服務時，您可以使用其中一個目標群組的 ARN。如需詳細資訊，請參閱《[Amazon ECS 使用者指南》中的步驟 4：建立 Amazon ECS 服務](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-blue-green.html#create-blue-green-taskdef)。 **

## 建立 Amazon EC2 Application Load Balancer、兩個目標群組和接聽程式 (CLI)
<a name="deployment-groups-create-load-balancer-for-ecs-cli"></a>

若要使用 建立 Application Load Balancer AWS CLI：

1. 使用 [create-load-balancer](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-load-balancer.html) 命令來建立 Application Load Balancer。指定兩個不在相同可用區域中的子網路和一個安全群組。

   ```
   aws elbv2 create-load-balancer --name bluegreen-alb \
   --subnets subnet-abcd1234 subnet-abcd5678 --security-groups sg-abcd1234 --region us-east-1
   ```

   輸出包含負載平衡器的 Amazon Resource Name (ARN)，格式如下：

   ```
   arn:aws:elasticloadbalancing:region:aws_account_id:loadbalancer/app/bluegreen-alb/e5ba62739c16e642
   ```

1. 使用 [create-target-group](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-target-group.html) 命令來建立您的第一個目標群組。CodeDeploy 將此目標群組的流量路由到您服務中的原始或替代任務集。

   ```
   aws elbv2 create-target-group --name bluegreentarget1 --protocol HTTP --port 80 \
   --target-type ip --vpc-id vpc-abcd1234 --region us-east-1
   ```

   輸出包含第一個目標群組的 ARN，格式如下：

   ```
   arn:aws:elasticloadbalancing:region:aws_account_id:targetgroup/bluegreentarget1/209a844cd01825a4
   ```

1. 使用 [create-target-group](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-target-group.html) 命令來建立第二個目標群組。CodeDeploy 會將目標群組的流量路由到第一個目標群組未提供的任務集。例如，如果您的第一個目標群組將流量路由到原始任務集，此目標群組會將流量路由到替換任務集。

   ```
   aws elbv2 create-target-group --name bluegreentarget2 --protocol HTTP --port 80 \
   --target-type ip --vpc-id vpc-abcd1234 --region us-east-1
   ```

   輸出包含第二個目標群組的 ARN，格式如下：

   ```
   arn:aws:elasticloadbalancing:region:aws_account_id:targetgroup/bluegreentarget2/209a844cd01825a4
   ```

1. 使用 [create-listener](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-listener.html) 命令，以預設規則建立接聽程式，將生產流量轉送至 8080 埠。

   ```
   aws elbv2 create-listener --load-balancer-arn arn:aws:elasticloadbalancing:region:aws_account_id:loadbalancer/app/bluegreen-alb/e5ba62739c16e642 \
   --protocol HTTP --port 80 \
   --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:region:aws_account_id:targetgroup/bluegreentarget1/209a844cd01825a4 --region us-east-1
   ```

   輸出包含接聽程式的 ARN，格式如下：

   ```
   arn:aws:elasticloadbalancing:region:aws_account_id:listener/app/bluegreen-alb/e5ba62739c16e642/665750bec1b03bd4
   ```

1. (選用) 使用 [create-listener](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-listener.html) 命令，以預設規則建立第二個接聽程式，將測試流量轉送至 8080 埠。您可以使用轉發至此連接埠的測試流量來執行部署驗證測試。

   ```
   aws elbv2 create-listener --load-balancer-arn arn:aws:elasticloadbalancing:region:aws_account_id:loadbalancer/app/bluegreen-alb/e5ba62739c16e642 \
   --protocol HTTP --port 8080 \
   --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:region:aws_account_id:targetgroup/bluegreentarget2/209a844cd01825a4 --region us-east-1
   ```

   輸出包含接聽程式的 ARN，格式如下：

   ```
   arn:aws:elasticloadbalancing:region:aws_account_id:listener/app/bluegreen-alb/e5ba62739c16e642/665750bec1b03bd4
   ```