将 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 组。为 Application Load Balancer、Network Load Balancer 或网关负载均衡器指定目标组的 Amazon Resource Name (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

以下 attach-load-balancer-target-groups 命令将目标组附加到现有 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 组关联的目标组,请使用 describe-load-balancer-target-groups 命令。以下示例列出了 my-asg 的目标组。

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

有关输出中的 State 字段说明,请参阅上一个主题中的 了解负载均衡器的附加状态 部分。

分离负载均衡器目标组

不再需要时,以下 detach-load-balancer-target-groups 命令将目标组与您的 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"

附加经典负载均衡器

以下 create-auto-scaling-group 命令将创建一个带附加经典负载均衡器的 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

以下 attach-load-balancers 命令将指定的经典负载均衡器附加到现有 Auto Scaling 组。

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

描述经典负载均衡器

要查看与 Auto Scaling 组关联的经典负载均衡器,请使用 describe-load-balancers 命令。以下示例列出了 my-asg 的经典负载均衡器。

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

有关输出中的 State 字段说明,请参阅 了解负载均衡器的附加状态

分离经典负载均衡器

不再需要时,以下 detach-load-balancers 命令将经典负载均衡器与 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 可能会将这些实例视为运行状况不佳并替换它们。有关更多信息,请参阅运行状况检查宽限期

以下 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 的 Auto Scaling 组

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

    aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \ --vpc-zone-identifier subnet-41767929 subnet-cb663da2 subnet-8360a9e7
  2. 使用以下 describe-auto-scaling-groups 命令验证新子网中的实例是否准备好接受来自负载均衡器的流量。

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

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

对于 VPC 中具有经典负载均衡器的 Auto Scaling 组

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

    aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \ --vpc-zone-identifier subnet-41767929 subnet-cb663da2
  2. 使用以下 describe-auto-scaling-groups 命令验证新子网中的实例是否准备好接受来自负载均衡器的流量。

    aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg
  3. 使用以下 attach-load-balancer-to-subnets 命令为经典负载均衡器启用新子网。

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

    要禁用子网,请运行以下 detach-load-balancer-from-subnets 命令。

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