本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Elastic Load Balancing 的示例 AWS CLI
使用 AWS Command Line Interface (AWS CLI) 来连接、分离和描述负载均衡器和目标组,添加和移除 Elastic Load Balancing 运行状况检查,以及更改启用了哪些可用区。
本主题显示了执行 Amazon A EC2 uto Scaling 常见任务的 AWS CLI 命令示例。
内容
附加目标组或经典负载均衡器
使用以下create-auto-scaling-group
替换 --auto-scaling-group-name、--vpc-zone-identifier、--min-size 和 --max-size 的示例值。对于 --launch-template 选项,请将 和 my-launch-template 替换为您的自动扩缩组的启动模板的名称和版本。对于 1--traffic-sources 选项,将示例 ARN 替换为应用程序负载均衡器、网络负载均衡器或网关负载均衡器的目标组的 ARN。
aws autoscaling create-auto-scaling-group --auto-scaling-group-namemy-asg\ --launch-template LaunchTemplateName=my-launch-template,Version='1' \ --vpc-zone-identifier "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" \ --min-size1--max-size5\ --traffic-sources "Identifier=arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/12345678EXAMPLE1"
在 Auto Scaling 组创建后,使用attach-traffic-sources
以下命令可将另一个目标组添加到同一个组。
aws autoscaling attach-traffic-sources --auto-scaling-group-namemy-asg\ --traffic-sources "Identifier=arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/12345678EXAMPLE2"
或者,要将经典负载均衡器附加到您的组,请在使用 create-auto-scaling-group 或 attach-traffic-sources 时指定 --traffic-sources 和 --type 选项,如以下示例所示。请将 替换为经典负载均衡器的名称。对于 my-classic-load-balancer--type 选项,请指定 的值。elb
--traffic-sources "Identifier=my-classic-load-balancer" --type elb
描述您的目标组或经典负载均衡器
要描述附加到 Auto Scaling 组的负载均衡器或目标组,请使用以下describe-traffic-sources 替换为您的组名。my-asg
aws autoscaling describe-traffic-sources --auto-scaling-group-namemy-asg
该示例会返回附加到自动扩缩组的 Elastic Load Balancing 目标组的 ARN。
{
"TrafficSources": [
{
"Identifier": "arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/12345678EXAMPLE1",
"State": "InService",
"Type": "elbv2"
},
{
"Identifier": "arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/12345678EXAMPLE2",
"State": "InService",
"Type": "elbv2"
}
]
}
有关输出中的 State 字段说明,请参阅 验证负载均衡器的附加状态。
添加 Elastic Load Balancing 运行状况检查
要将 Elastic Load Balancing 运行状况检查添加到您的 Auto Scaling 组对实例执行的运行状况检查中,请使用以下update-auto-scaling-group为该ELB--health-check-type选项的值。将 替换为您的组名。my-asg
aws autoscaling update-auto-scaling-group --auto-scaling-group-namemy-asg\ --health-check-type "ELB"
新实例通常需要时间进行短暂的预热,然后才能通过运行状况检查。如果宽限期没有提供足够的预热时间,则实例可能未准备好提供流量。Amazon A EC2 uto Scaling 可能会认为这些实例运行状况不佳并替换它们。
若要更新运行状况检查宽限期,请在使用 update-auto-scaling-group 时使用 --health-check-grace-period 选项,如以下示例所示。如果发现新实例运行状况不佳,则将其终止之前,将其替换300为保持运行状态的秒数。
--health-check-grace-period300
有关更多信息,请参阅 自动扩缩组中实例的运行状况检查。
更改您的可用区
更改可用区时,应注意某些限制。有关更多信息,请参阅 添加可用区。
更改应用程序负载均衡器或网络负载均衡器的可用区
-
在更改负载均衡器的可用区之前,最好先更新自动扩缩组的可用区,以验证您的实例类型是否可在指定区域中使用。
要更新您的 Auto Scaling 组的可用区域,请使用以下update-auto-scaling-group
命令。将示例子网 IDs 替换 IDs 为可用区中要启用的子网。用指定的子网替换先前启用的子网。将 替换为您的组名。my-asgaws autoscaling update-auto-scaling-group --auto-scaling-group-namemy-asg\ --vpc-zone-identifier "subnet-41767929,subnet-cb663da2,subnet-8360a9e7" -
使用以下describe-auto-scaling-groups
命令验证新子网中的实例是否已启动。如果实例已启动,您将看到实例及其状态的列表。将 替换为您的组名。my-asgaws autoscaling describe-auto-scaling-groups --auto-scaling-group-namemy-asg -
使用以下 set-subnets
命令为您的负载均衡器指定子网。将示例子网 IDs 替换 IDs 为可用区中要启用的子网。每个可用区您只能指定一个子网。用指定的子网替换先前启用的子网。将 替换为负载均衡器的 ARN。my-lb-arnaws elbv2 set-subnets --load-balancer-arnmy-lb-arn\ --subnetssubnet-41767929subnet-cb663da2subnet-8360a9e7
更改经典负载均衡器的可用区
-
在更改负载均衡器的可用区之前,最好先更新自动扩缩组的可用区,以验证您的实例类型是否可在指定区域中使用。
要更新您的 Auto Scaling 组的可用区域,请使用以下update-auto-scaling-group
命令。将示例子网 IDs 替换 IDs 为可用区中要启用的子网。用指定的子网替换先前启用的子网。将 替换为您的组名。my-asgaws autoscaling update-auto-scaling-group --auto-scaling-group-namemy-asg\ --vpc-zone-identifier "subnet-41767929,subnet-cb663da2" -
使用以下describe-auto-scaling-groups
命令验证新子网中的实例是否已启动。如果实例已启动,您将看到实例及其状态的列表。将 替换为您的组名。my-asgaws autoscaling describe-auto-scaling-groups --auto-scaling-group-namemy-asg -
使用以下 attach-load-balancer-to-subnet
s 命令为您的 Classic Load Balancer 启用新的可用区。将示例子网 ID 替换为要启用的可用区的子网 ID。将 替换为您负载均衡器的名称。my-lbaws elb attach-load-balancer-to-subnets --load-balancer-namemy-lb\ --subnetssubnet-cb663da2要禁用可用区,请使用以下 detach-load-balancer-from-subnets 命令
。将示例子网 ID 替换为要禁用的可用区的子网 ID。将 替换为您负载均衡器的名称。my-lbaws elb detach-load-balancer-from-subnets --load-balancer-namemy-lb\ --subnetssubnet-8360a9e7
分离目标组或经典负载均衡器
当您不再需要目标组时,以下detach-traffic-sources
对于 --auto-scaling-group-name 选项,请将 替换为您的组名称。对于 my-asg--traffic-sources 选项,将示例 ARN 替换为应用程序负载均衡器、网络负载均衡器或网关负载均衡器的目标组的 ARN。
aws autoscaling detach-traffic-sources --auto-scaling-group-namemy-asg\ --traffic-sources "Identifier=arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/1234567890123456"
要将经典负载均衡器与您的组分离,请指定 --traffic-sources 和 --type 选项,如以下示例所示。请将 替换为经典负载均衡器的名称。对于 my-classic-load-balancer--type 选项,请指定 的值。elb
--traffic-sources "Identifier=my-classic-load-balancer" --type elb
移除 Elastic Load Balancing 运行状况检查
要从 Auto Scaling 组中移除 Elastic Load Balancing 运行状况检查,请使用以下update-auto-scaling-group为该EC2--health-check-type选项的值。将 替换为您的组名。my-asg
aws autoscaling update-auto-scaling-group --auto-scaling-group-namemy-asg\ --health-check-type "EC2"
有关更多信息,请参阅 自动扩缩组中实例的运行状况检查。
旧版命令
以下示例演示如何使用旧版 CLI 命令附加、分离和描述负载均衡器和目标组。本文档中将保留这些命令,以供希望使用它们的客户参考。我们继续支持旧版 CLI 命令,但我们建议您使用新版“流量来源”CLI 命令,该命令可以附加和分离多种流量源类型。您可以在同一自动扩缩组上同时使用旧版 CLI 命令和“流量来源”CLI 命令。
附加您的目标组
以下create-auto-scaling-group
aws autoscaling create-auto-scaling-group --auto-scaling-group-namemy-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:account-id:targetgroup/my-targets/1234567890123456" \ --min-size1--max-size5
以下 attach-load-balancer-target-groups
aws autoscaling attach-load-balancer-target-groups --auto-scaling-group-namemy-asg\ --target-group-arns "arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/1234567890123456"
附加您的经典负载均衡器
以下create-auto-scaling-group
aws autoscaling create-auto-scaling-group --auto-scaling-group-namemy-asg\ --launch-configuration-namemy-launch-config\ --vpc-zone-identifier "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" \ --load-balancer-names "my-load-balancer" \ --min-size1--max-size5
以下attach-load-balancers
aws autoscaling attach-load-balancers --auto-scaling-group-namemy-asg\ --load-balancer-namesmy-lb
描述目标组
要描述与 Auto Scaling 群组关联的目标群组,请使用 describe-load-balancer-target-groupsmy-asg。
aws autoscaling describe-load-balancer-target-groups --auto-scaling-group-namemy-asg
描述经典负载均衡器
要描述与 Auto Scaling 组关联的传统负载均衡器,请使用describe-load-balancersmy-asg
aws autoscaling describe-load-balancers --auto-scaling-group-namemy-asg
分离目标组
当你不再需要目标detach-load-balancer-target组时,以下-
aws autoscaling detach-load-balancer-target-groups --auto-scaling-group-namemy-asg\ --target-group-arns "arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/1234567890123456"
分离经典负载均衡器
当您不再需要 Classic Load Balancer 时,以下detach-load-balancers
aws autoscaling detach-load-balancers --auto-scaling-group-namemy-asg\ --load-balancer-namesmy-lb