将 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-size5
--min-size1
--desired-capacity2
以下 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-namemy-launch-config
\ --vpc-zone-identifier "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782
" \ --load-balancer-names "my-load-balancer
" \ --max-size5
--min-size1
--desired-capacity2
以下 attach-load-balancers 命令将指定的经典负载均衡器附加到现有 Auto Scaling 组。
aws autoscaling attach-load-balancers --auto-scaling-group-name
my-asg
\ --load-balancer-namesmy-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-namesmy-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-period300
更新可用区
您使用的命令取决于您的负载均衡器是应用程序负载均衡器还是网络负载均衡器,又或者是经典负载均衡器。仅当负载均衡器支持时,才可更新负载均衡器的子网和可用区。有关更多信息,请参阅限制。
对于具有 Application Load Balancer 或 Network Load Balancer 的 Auto Scaling 组
-
使用以下 update-auto-scaling-group 命令指定用于 Auto Scaling 组的子网。
aws autoscaling update-auto-scaling-group --auto-scaling-group-name
my-asg
\ --vpc-zone-identifiersubnet-41767929
subnet-cb663da2
subnet-8360a9e7
-
使用以下 describe-auto-scaling-groups 命令验证新子网中的实例是否准备好接受来自负载均衡器的流量。
aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name
my-asg
-
使用以下 set-subnets 命令指定用于应用 Application Load Balancer 或 Network Load Balancer 的子网。
aws elbv2 set-subnets --load-balancer-arn
my-lb-arn
\ --subnetssubnet-41767929
subnet-cb663da2
subnet-8360a9e7
对于 VPC 中具有经典负载均衡器的 Auto Scaling 组
-
使用以下 update-auto-scaling-group 命令指定用于 Auto Scaling 组的子网。
aws autoscaling update-auto-scaling-group --auto-scaling-group-name
my-asg
\ --vpc-zone-identifiersubnet-41767929
subnet-cb663da2
-
使用以下 describe-auto-scaling-groups 命令验证新子网中的实例是否准备好接受来自负载均衡器的流量。
aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name
my-asg
-
使用以下 attach-load-balancer-to-subnets 命令为经典负载均衡器启用新子网。
aws elb attach-load-balancer-to-subnets --load-balancer-name
my-lb
\ --subnetssubnet-cb663da2
要禁用子网,请运行以下 detach-load-balancer-from-subnets 命令。
aws elb detach-load-balancer-from-subnets --load-balancer-name
my-lb
\ --subnetssubnet-8360a9e7