AWS CodeDeploy
用户指南 (API 版本 2014-10-06)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

为 CodeDeploy Amazon ECS 部署设置负载均衡器、目标组和侦听器

在使用 Amazon ECS 计算平台 运行部署之前,必须创建 应用程序负载均衡器 或 Network Load Balancer、两个目标组以及一个或两个侦听器。本主题介绍了如何创建 应用程序负载均衡器。有关更多信息,请参阅 在开始 Amazon ECS 部署之前

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

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

负载均衡器必须使用在不同可用区中具有两个公有子网的 VPC。以下步骤介绍了如何确认默认 VPC、创建 Amazon EC2 应用程序负载均衡器,然后为负载均衡器创建两个目标组。有关更多信息,请参阅您的网络负载均衡器的目标组

验证您的默认 VPC、公有子网和安全组

本主题演示了如何创建 Amazon EC2 应用程序负载均衡器、两个目标组和两个端口,以便在 Amazon ECS 部署过程中使用。其中一个端口是可选的,仅当您在部署过程中需要将流量定向到验证测试的测试端口时为必需。

  1. 登录 AWS 管理控制台并通过以下网址打开 Amazon VPC 控制台:https://console.amazonaws.cn/vpc/

  2. 验证要使用的默认 VPC。在导航窗格中,选择 Your VPCs (您的 VPC)。记下哪些 VPC 在 Default VPC (默认 VPC) 列中显示 Yes (是)。这是您的默认 VPC。其中包含您使用的默认子网。

  3. 选择 Subnets (子网)。记下 Default subnet (默认子网) 列中显示 Yes (是) 的两个子网的子网 ID。在创建负载均衡器时,您可以使用这些 ID。

  4. 选择每个子网,然后选择 Description (描述) 选项卡。验证要使用的子网是否位于不同的可用区中。

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

  6. 登录 AWS 管理控制台并通过以下网址打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  7. 从导航窗格中,选择 Security Groups (安全组)

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

创建 Amazon EC2 应用程序负载均衡器、两个目标组和侦听器(控制台)

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

  1. 登录 AWS 管理控制台并通过以下网址打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中,选择 Load Balancers (负载均衡器)

  3. 选择 Create Load Balancer (创建负载均衡器)

  4. 选择 Application Load Balancer (应用程序负载均衡器),然后选择 Create (创建)

  5. Name (名称) 中,输入负载均衡器的名称。

  6. Scheme (模式) 中,选择 internet-facing (面向 internet)

  7. IP address type (IP 地址类型) 中,选择 ipv4

  8. (可选)为负载均衡器配置第二个侦听器端口。您可以使用提供给该端口的测试流量,运行部署验证测试。

    1. Load Balancer Protocol (负载均衡器协议) 下,选择 Add listener (添加侦听器)

    2. 在第二个侦听器的 Load Balancer Protocol (负载均衡器协议) 下,选择 HTTP

    3. Load Balancer Port (负载均衡器端口) 下,输入 8080

  9. Availability Zones (可用区)VPC 中,选择默认 VPC,然后选择要使用的两个默认子网。

  10. 选择 Next: Configure Security Settings (下一步:配置安全设置)

  11. 选择 Next: Configure Security Groups (下一步:配置安全组)

  12. 选择 Select an existing security group (选择现有安全组),然后选择默认安全组并记下其 ID。

  13. 选择 Next: Configure Routing (下一步:配置路由)

  14. Target group (目标组) 中,选择 New target group (新建目标组) 并配置您的第一个目标组:

    1. Name (名称) 中,输入目标组名称(例如,target-group-1)。

    2. Target type (目标类型) 中,选择 IP

    3. Protocol (协议) 中,选择 HTTP。在 Port (端口) 中,输入 80

    4. 选择 Next: Register Targets (下一步:注册目标)

  15. 选择 Next: Review (下一步:审核),然后选择 Create (创建)

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

  1. 在预配置您的负载均衡器后,打开 Amazon EC2 控制台。在导航窗格中,选择 Target Groups

  2. 选择 Create target group

  3. Name (名称) 中,输入目标组名称(例如,target-group-2)。

  4. Target type (目标类型) 中,选择 IP

  5. Protocol (协议) 中,选择 HTTP。在 Port (端口) 中,输入 80

  6. VPC 中,选择默认 VPC。

  7. 选择 Create (创建)

    注意

    要使 Amazon ECS 部署运行,您必须已为负载均衡器创建两个目标组。您在创建 Amazon ECS 服务时,可使用某个目标组的 ARN。有关更多信息,请参阅 Amazon ECS 用户指南 中的步骤 4:创建 Amazon ECS 服务

创建 Amazon EC2 应用程序负载均衡器、两个目标组和侦听器 (CLI)

要使用 AWS CLI 创建 应用程序负载均衡器,请执行以下操作:

  1. 使用 create-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
  2. 使用 create-target-group 命令创建您的第一个目标组。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
  3. 使用 create-target-group 命令创建您的第二个目标组。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
  4. 使用 create-listener 命令创建侦听器,该侦听器具有将生产流量转发到端口 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
  5. (可选)使用 create-listener 命令创建另一个侦听器,该侦听器具有将测试流量转发到端口 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