

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 为 A CodeDeploy mazon ECS 部署设置负载均衡器、目标组和侦听器
<a name="deployment-groups-create-load-balancer-for-ecs"></a>

 在使用 Amazon ECS 计算平台运行部署之前，必须创建应用程序负载均衡器或网络负载均衡器、两个目标组以及一个或两个侦听器。本主题介绍如何创建应用程序负载均衡器。有关更多信息，请参阅 [在开始 Amazon ECS 部署之前](deployment-steps-ecs.md#deployment-steps-prerequisites-ecs)。

 其中一个目标组会将流量定向到 Amazon ECS 应用程序的原始任务集。另一个目标组会将流量定向到其替换任务集。在部署期间， CodeDeploy 创建替换任务集并将流量从原始任务集重新路由到新任务集。 CodeDeploy 决定每个任务集使用哪个目标组。

 侦听器 由负载均衡器用于将流量定向到目标组。必须提供一个生产侦听器。您可以指定一个可选的测试侦听器，在您运行验证测试时将流量定向到替换任务集。

 负载均衡器必须使用在不同的可用区中具有两个公有子网的 VPC。以下步骤介绍了如何确认默认 VPC、创建 Amazon EC2 应用程序负载均衡器，然后为负载均衡器创建两个目标组。有关更多信息，请参阅[您的网络负载均衡器的目标组](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 应用程序负载均衡器、两个目标组和两个端口，以便在 Amazon ECS 部署过程中使用。其中一个端口是可选的，仅当您在部署过程中需要将流量定向到验证测试的测试端口时为必需。

1. 登录 AWS 管理控制台 并打开 Amazon VPC 控制台，网址为[https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)。

1. 验证要使用的默认 VPC。在导航窗格中，选择**您的 VPCs**。请注意哪个 VPC 在**默认 VPC** 列中显示为**是**。这是您的默认 VPC。其中包含您使用的默认子网。

1. 选择 **Subnets（子网）**。记下**默认子网列中显示为 “**是**” IDs 的两个子网的子网**。您可以在创建负载均衡器 IDs 时使用它们。

1. 选择每个子网，然后选择 **Description（描述）**选项卡。验证要使用的子网是否位于不同的可用区中。

1. 选择子网，然后选择 **Route Table（路由表）**选项卡。要确认您要使用的每个子网是否为公有子网，请确认路由表中是否包含指向 Internet 网关链接的行。

1. 登录 AWS 管理控制台 并打开 Amazon EC2 控制台，网址为[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 从导航窗格中，选择 **Security Groups（安全组）**。

1. 验证要使用的安全组是否可用，并记下其组 ID（例如，**sg-abcd1234**）。在创建负载均衡器时，您可以使用此 ID。

## 创建一个 Amazon EC2 应用程序负载均衡器、两个目标组和侦听器（控制台）
<a name="deployment-groups-create-load-balancer-for-ecs-console"></a>

要使用 Amazon EC2 控制台来创建 Amazon EC2 应用程序负载均衡器，请执行以下操作：

1. 登录 AWS 管理控制台 并打开 Amazon EC2 控制台，网址为[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**负载均衡器**。

1. 选择 **Create Load Balancer（创建负载均衡器）**。

1. 选择 **Application Load Balancer（应用程序负载均衡器）**，然后选择 **Create（创建）**。

1. 在 **Name（名称）**中，输入负载均衡器的名称。

1. 在 **Scheme（模式）**中，选择 **internet-facing（面向 internet）**。

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. 选择**下一步：配置安全设置**。

1. 选择**下一步：配置安全组**。

1. 选择 **Select an existing security group（选择现有安全组）**，然后选择默认安全组并记下其 ID。

1. 选择**下一步：配置路由**。

1. 在 **Target group（目标组）**中，选择 **New target group（新建目标组）**并配置您的第一个目标组：

   1. 在 **Name（名称）**中，输入目标组名称（例如，**target-group-1**）。

   1. 在 **Target type（目标类型）**中，选择 **IP**。

   1. 在 **Protocol（协议）**中，选择 **HTTP**。在 **Port（端口）**中，输入 **80**。

   1. 选择**下一步：注册目标**。

1. 选择 **Next: Review（下一步：审核）**，然后选择 **Create（创建）**。

**为您的负载均衡器创建第二个目标组**

1. 在预配置您的负载均衡器后，打开 Amazon EC2 控制台。在导航窗格中，选择**目标组**。

1. 选择**创建目标组**。

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 应用程序负载均衡器、两个目标组和侦听器（CLI）
<a name="deployment-groups-create-load-balancer-for-ecs-cli"></a>

要使用 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 资源名称（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) 命令创建侦听器，该侦听器具有将生产流量转发到端口 80 的默认规则。

   ```
   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
   ```