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