为 CodeDeploy Amazon 云服务器部署设置负载均衡器、目标组和侦听器 - Amazon CodeDeploy
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

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

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

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

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

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

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

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

  1. 登录到 Amazon Web Services Management Console 并打开 Amazon VPC 控制台,网址:https://console.aws.amazon.com/vpc/

  2. 验证要使用的默认 VPC。在导航窗格中,选择 Your VPCs。请注意哪些 VPC 显示中的默认 VPCcolumn. 这是您的默认 VPC。其中包含您使用的默认子网。

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

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

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

  6. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  7. 从导航窗格中,选择 Security Groups

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

创建 Amazon EC2 Application Load Balancer、两个目标组和侦听器(控制台)

要使用 Amazon EC2 控制台创建 Amazon EC2 应用 Application Load Balancer,请执行以下操作:

  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/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:。配置安全设置

  11. 选择 Next:。配置安全组

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

  13. 选择 Next:。配置路由

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

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

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

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

    4. 选择 Next:。注册目标

  15. 选择 Next:。审核,然后选择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. 选择创建

    注意

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

创建 Amazon EC2 Application Load Balancer、两个目标组和侦听器 (CLI)

使用创建 Application Load BalancerAmazon CLI:

  1. 使用创建负载均衡器命令创建 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
  2. 使用创建目标组命令创建您的第一个目标组。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. 使用创建目标组命令创建第二个目标组。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