本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Elastic Load Balancing 的示例 Amazon Command Line Interface
使用 Amazon Command Line Interface (Amazon CLI) 来连接、分离和描述负载均衡器和目标组,添加和移除 Elastic Load Balancing 运行状况检查,以及更改启用了哪些可用区。
本主题显示了执行 Amazon EC2 Auto Scaling 常见任务的 Amazon CLI 命令示例。
内容
附加目标组或经典负载均衡器
使用以下 create-auto-scaling-group 命令创建自动扩缩组,并通过指定目标组的 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
"
创建自动扩缩组后,使用 attach-traffic-sources 命令将其他目标组附加到该自动扩缩组。
以下命令可将另一个目标组添加到同一个组。
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
描述您的目标组或经典负载均衡器
要描述附加到自动扩缩组的负载均衡器或目标组,请使用以下 describe-traffic-sources 命令。将
替换为您的组名。my-asg
aws autoscaling describe-traffic-sources --auto-scaling-group-name
my-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 运行状况检查添加到您自动扩缩组对实例所执行的运行状况检查,请运行以下 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 EC2 Auto Scaling 可能会将这些实例视为运行状况不佳并替换它们。
若要更新运行状况检查宽限期,请在使用 update-auto-scaling-group 时使用 --health-check-grace-period
选项,如以下示例所示。如果发现新实例的运行状况不佳,则在将其终止前将 300
替换为保持新实例正常运行状态的秒数。
--health-check-grace-period
300
有关更多信息,请参阅 自动扩缩组中实例的运行状况检查。
更改您的可用区
更改可用区时,应注意某些限制。有关更多信息,请参阅 限制。
更改应用程序负载均衡器或网络负载均衡器的可用区
-
在更改负载均衡器的可用区之前,最好先更新自动扩缩组的可用区,以验证您的实例类型是否可在指定区域中使用。
若要更新自动扩缩组的可用区,请使用以下 update-auto-scaling-group 命令。将示例子网 ID 替换为要启用的可用区中的子网 ID。用指定的子网替换先前启用的子网。将
替换为您的组名。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 命令为您的负载均衡器指定子网。将示例子网 ID 替换为要启用的可用区中的子网 ID。每个可用区您只能指定一个子网。用指定的子网替换先前启用的子网。将
替换为负载均衡器的 ARN。my-lb-arn
aws elbv2 set-subnets --load-balancer-arn
my-lb-arn
\ --subnetssubnet-41767929
subnet-cb663da2
subnet-8360a9e7
更改经典负载均衡器的可用区
-
在更改负载均衡器的可用区之前,最好先更新自动扩缩组的可用区,以验证您的实例类型是否可在指定区域中使用。
若要更新自动扩缩组的可用区,请使用以下 update-auto-scaling-group 命令。将示例子网 ID 替换为要启用的可用区中的子网 ID。用指定的子网替换先前启用的子网。将
替换为您的组名。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-subnets 命令为您的经典负载均衡器启用新的可用区。将示例子网 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-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 运行状况检查
要将 Elastic Load Balancing 运行状况检查从您的 Auto Scaling 组移除,请运行以下 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 命令,该命令可以附加和分离多种流量源类型。您可以在同一自动扩缩组上同时使用旧版 CLI 命令和“流量来源”CLI 命令。
附加您的目标组
以下 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: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 命令将创建一个带附加经典负载均衡器的 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 命令将指定的经典负载均衡器附加到现有 Auto Scaling 组。
aws autoscaling attach-load-balancers --auto-scaling-group-name
my-asg
\ --load-balancer-namesmy-lb
描述目标组
要描述与自动扩缩组关联的目标组,请使用 describe-load-balancer-target-groups 命令。以下示例列出了 my-asg
的目标组。
aws autoscaling describe-load-balancer-target-groups --auto-scaling-group-name
my-asg
描述经典负载均衡器
要描述与自动扩缩组关联的经典负载均衡器,请使用 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
"
分离经典负载均衡器
不再需要时,以下 detach-load-balancers 命令将经典负载均衡器与 Auto Scaling 组分离。
aws autoscaling detach-load-balancers --auto-scaling-group-name
my-asg
\ --load-balancer-namesmy-lb