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

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

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

其中一个目标组会将流量定向到 Amazon ECS 应用程序的原始任务集。另一个目标组会将流量定向到其替换任务集。部署期间, CodeDeploy 创建一个替换任务集,然后将来自原始任务集的流量重新运行到新的1。 CodeDeploy 确定每个任务集使用哪个目标组。

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

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

验证您的默认vpc、公共子网和安全组

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

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

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

  3. 选择 子网. 记下显示两个子网的子网ID的注释 默认子网 列。在创建负载均衡器时,您可以使用这些 ID。

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

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

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

  7. 从导航窗格中,选择 安全组.

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

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

使用 Amazon EC2 控制台创建 Amazon EC2 应用程序负载均衡器:

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

  2. 在导航窗格中,选择 负载平衡器.

  3. 选择 创建负载均衡器.

  4. 选择 应用负载均衡器,然后选择 创建.

  5. 名称,输入负载平衡器的名称。

  6. 方案,选择 面向互联网.

  7. IP地址类型,选择 Ipv4.

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

    1. 下方 负载均衡器协议,选择 添加侦听者.

    2. 下方 负载均衡器协议 对于第二个倾听者,请选择 HTTP.

    3. 下方 负载平衡器端口,输入 8080.

  9. 下方 可用区域,在 VPC,选择默认vpc,然后选择要使用的两个默认子网。

  10. 选择 下一步: 配置安全设置.

  11. 选择 下一步: 配置安全组.

  12. 选择 选择现有安全组,选择默认安全组,然后记录其ID。

  13. 选择 下一步: 配置路由.

  14. 目标组,选择 新目标组,并配置您的第一个目标组:

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

    2. 目标类型,选择 IP.

    3. 协议 选择 HTTP. 在 端口,输入 80.

    4. 选择 下一步: 注册目标.

  15. 选择 下一步: 审核,然后选择 创建.

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

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

  2. 选择 创建目标组.

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

  4. 目标类型,选择 IP.

  5. 协议 选择 HTTP. 在 端口,输入 80.

  6. VPC,选择默认vpc。

  7. 选择 创建.

    注意

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

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

使用 应用程序负载均衡器 创建 AWS CLI:

  1. 使用 创建负载均衡器 命令创建 应用程序负载均衡器. 指定不在相同可用区的两个子网以及安全组。

    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. 使用 创建侦听者 命令以创建具有将生产流量转发到端口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. (可选)使用 创建侦听者 命令以创建具有将测试流量转发到端口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