使用 Elastic Load Balancing 与Amazon Command Line Interface(Amazon CLI) - Amazon EC2 Auto Scaling
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

使用 Elastic Load Balancing 与Amazon Command Line Interface(Amazon CLI)

使用Amazon CLI连接和分离负载均衡器、添加 Elastic Load Balancing 运行状况检查以及更新可用区。

附加负载均衡器目标组

以下create-auto-scaling-group命令将创建带附加的目标组的 Auto Scaling 组。为应用程序 Load Balancer、Network Load Balancer 或网关负载均衡器指定目标组的 Amazon 资源名称 (ARN)。

aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg \ --launch-template "LaunchTemplateName=my-launch-template,Version=1" \ --vpc-zone-identifier "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" \ --target-group-arns "arn:aws:elasticloadbalancing:region:123456789012:targetgroup/my-targets/1234567890123456" \ --max-size 5 --min-size 1 --desired-capacity 2

以下附加负载平衡器目标组命令将目标组附加到现有 Auto Scaling 组。

aws autoscaling attach-load-balancer-target-groups --auto-scaling-group-name my-asg \ --target-group-arns "arn:aws:elasticloadbalancing:region:123456789012:targetgroup/my-targets/1234567890123456"

描述负载均衡器目标组

要查看与 Auto Scaling 组关联的目标组,请使用描述负载平衡器目标组命令。以下示例列出了my-asg

aws autoscaling describe-load-balancer-target-groups --auto-scaling-group-name my-asg

有关State字段,请参阅了解负载均衡器状态部分。

分离负载均衡器目标组

以下分离负载平衡器目标组命令可以在不再需要时将目标组与 Auto Scaling 组分离。

aws autoscaling detach-load-balancer-target-groups --auto-scaling-group-name my-asg \ --target-group-arns "arn:aws:elasticloadbalancing:region:123456789012:targetgroup/my-targets/1234567890123456"

附 Classic Load Balancer

以下create-auto-scaling-group命令创建一个带有附加 Classic Load Balancer 的 Auto Scaling 组。

aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg \ --launch-configuration-name my-launch-config \ --vpc-zone-identifier "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" \ --load-balancer-names "my-load-balancer" \ --max-size 5 --min-size 1 --desired-capacity 2

以下附加负载平衡器命令将指定的 Classic Load Balancer 附加到现有 Auto Scaling 组。

aws autoscaling attach-load-balancers --auto-scaling-group-name my-asg \ --load-balancer-names my-lb

描述 Classic 负载均衡器

要查看与 Auto Scaling 组关联的 Classic Load Balancer,请使用描述负载均衡器命令。以下示例列出了my-asg

aws autoscaling describe-load-balancers --auto-scaling-group-name my-asg

有关State字段,请参阅了解负载均衡器状态

断开 Classic Load Balancer

以下分离负载平衡器命令在不再需要时,将 Classic Load Balancer 与 Auto Scaling 组分离。

aws autoscaling detach-load-balancers --auto-scaling-group-name my-asg \ --load-balancer-names my-lb

添加 Elastic Load Balancing 健康检查

要将 Elastic Load Balancing 运行状况检查添加到 Auto Scaling 组,请运行以下update-auto-scaling-group命令并指定ELB作为--health-check-type选项。

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-lb-asg \ --health-check-type ELB

要更新运行状况检查宽限期,请使用--health-check-grace-period选项。新实例通常需要时间进行短暂的热身,然后才能通过运行状况检查。如果宽限期没有提供足够的预热时间,则实例可能未准备好服务流量。Amazon EC2 Auto Scaling 可能会将这些实例视为运行状况不佳并替换它们。有关更多信息,请参阅 运行 Health 检查宽限期

以下update-auto-scaling-group命令添加 Elastic Load Balancing 运行状况检查,并指定宽限期为 300 秒。

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-lb-asg \ --health-check-type ELB --health-check-grace-period 300

更新可用区

您使用的命令取决于您的负载均衡器是 Application Load Balancer 还是 Network Load Balancer,VPC 中的 CClassic Load Balancer,还是 EC2-Classic 中的 Classic 负载均衡器。仅当负载均衡器支持负载均衡器的子网和可用区域时,您才能更新负载均衡器的子网和可用区。有关更多信息,请参阅 Limitations

对于带应用程序负载均衡器或 Network Load Balancer 的 Auto Scaling 组

  1. 使用以下命令指定用于 Auto Scaling 组的子网update-auto-scaling-group命令。

    aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \ --vpc-zone-identifier subnet-41767929 subnet-cb663da2 subnet-8360a9e7
  2. 使用以下命令确认新子网中的实例准备好接受来自负载均衡器的流量。描述-Auto Scaling 组命令。

    aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg
  3. 使用以下命令指定用于应用 Application Load Balancer 或 Network Load Balancer 的子网集子网命令。

    aws elbv2 set-subnets --load-balancer-arn my-lb-arn \ --subnets subnet-41767929 subnet-cb663da2 subnet-8360a9e7

对于 VPC 中具有 Classic Load Balancer 的 Auto Scaling 组

  1. 使用以下命令指定用于 Auto Scaling 组的子网update-auto-scaling-group命令。

    aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \ --vpc-zone-identifier subnet-41767929 subnet-cb663da2
  2. 使用以下命令确认新子网中的实例准备好接受来自负载均衡器的流量。描述-Auto Scaling 组命令。

    aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg
  3. 使用以下方法为 Classic Load Balancer 启用新子网附加负载平衡器到子网命令。

    aws elb attach-load-balancer-to-subnets --load-balancer-name my-lb \ --subnets subnet-cb663da2

    要禁用子网,请运行以下从子网中分离负载平衡器命令。

    aws elb detach-load-balancer-from-subnets --load-balancer-name my-lb \ --subnets subnet-8360a9e7

对于在 EC2-Classic 中具有 CClassic Load Balancer 的 Auto Scaling 组

  1. 使用以下命令指定用于 Auto Scaling 组的可用区update-auto-scaling-group命令。

    aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \ --availability-zones us-west-2a us-west-2b
  2. 使用以下命令确认新可用区中的实例准备好接受来自负载均衡器的流量。描述-Auto Scaling 组命令。

    aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg
  3. 使用以下方法为您的 Classic Load Balancer 启用新的可用区为负载均衡器启用可用区命令。

    aws elb enable-availability-zones-for-load-balancer --load-balancer-name my-lb \ --availability-zones us-west-2b

    要禁用可用区,请运行以下负载均衡器的禁用可用区命令。

    aws elb disable-availability-zones-for-load-balancer --load-balancer-name my-lb \ --availability-zones us-west-2c