Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon A EC2 uto Scaling 的手动扩展
您可以随时手动调整 Auto Scaling 组中的EC2实例数量。手动更改实例数的这一过程称为手动扩缩。手动扩缩是自动扩缩的替代方案,尤其是在您想要进行一次性容量更改时。
在您手动扩展群组后,Amazon A EC2 uto Scaling 会根据您定义的扩展策略和计划操作恢复正常的自动扩展活动。对于启用了默认实例预热的组,任何新实例都要经过一段预热时间,然后才会开始贡献用于自动扩缩的指标。此预热时间有助于稳定组的新容量。有关更多信息,请参阅 为 Auto Scaling 组设置原定设置实例预热。
有时,您可能需要在手动扩缩组之前暂时禁用扩缩策略和计划操作。这样可以防止手动扩缩操作和自动扩缩活动之间产生冲突。有关更多信息,请参阅 关闭扩缩活动。
更改现有自动扩缩组的所需容量
当您更改 Auto Scaling 组的所需容量时,Amazon A EC2 uto Scaling 会管理启动和终止实例以达到新的所需容量的过程。
- Console
-
要更改您自动扩缩组的大小
在上打开亚马逊EC2控制台 https://console.aws.amazon.com/ec2/,然后从导航窗格中选择 A uto Scaling Gro ups。
-
选中您的自动扩缩组旁边的复选框。
这时将在页面底部显示一个拆分窗格。
-
在 Details(详细信息)选项卡上,选择 Group details(组详细信息)、Edit (编辑)。
-
对于所需容量,增加或减少所需容量。例如,要将组的大小加一,如果当前值为 1
,则输入 2
。
如果所需容量的新值大于所需的最小容量和所需的最大容量,则所需的最大容量将自动增加到新的所需容量值。
-
完成后,选择 Update(更新)。
验证您指定的组大小是否导致启动相同数量的实例。例如,如果您将组的大小加一,则请验证您的自动扩缩组是否已另外启动一个实例。
要验证 Auto Scaling 组的容量是否已更改
-
在活动选项卡的活动历史记录中,您可以查看与自动扩缩组关联的活动的进度。Status(状态)列显示您实例的当前状态。当您的实例启动时,状态列将显示 Not yet in service
。该实例启动后,状态会变为 Successful
。您还可以使用刷新图标来查看实例的当前状态。有关更多信息,请参阅 验证 Auto Scaling 组的扩缩活动。
-
在实例管理选项卡的实例中,您可以查看实例的状态。启动实例只需很短的时间。
- Amazon CLI
-
以下示例假设您创建了一个最小大小为 1,最大大小为 5 的 Auto Scaling 组。因此,该组目前正在运行的实例是 1 个。
要更改 Auto Scaling 组的大小
使用set-desired-capacity命令更改 Auto Scaling 组的大小,如以下示例所示。
aws autoscaling set-desired-capacity --auto-scaling-group-name my-asg
\
--desired-capacity 2
如果您选择遵守 Auto Scaling 组的默认冷却时间,必须指定 –-honor-cooldown
选项,如下面的示例所示。有关更多信息,请参阅 扩展 Amazon A EC2 uto Scaling 的冷却时间。
aws autoscaling set-desired-capacity --auto-scaling-group-name my-asg
\
--desired-capacity 2 --honor-cooldown
验证 Auto Scaling 组的大小
使用describe-auto-scaling-groups命令确认 Auto Scaling 组的大小是否已更改,如以下示例所示。
aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg
以下是示例输出,其提供关于组和已启动实例的详细信息。
{
"AutoScalingGroups": [
{
"AutoScalingGroupName": "my-asg",
"AutoScalingGroupARN": "arn
",
"LaunchTemplate": {
"LaunchTemplateName": "my-launch-template",
"Version": "1",
"LaunchTemplateId": "lt-050555ad16a3f9c7f"
},
"MinSize": 1,
"MaxSize": 5,
"DesiredCapacity": 2,
"DefaultCooldown": 300,
"AvailabilityZones": [
"us-west-2a"
],
"LoadBalancerNames": [],
"TargetGroupARNs": [],
"HealthCheckType": "EC2",
"HealthCheckGracePeriod": 300,
"Instances": [
{
"ProtectedFromScaleIn": false,
"AvailabilityZone": "us-west-2a",
"LaunchTemplate": {
"LaunchTemplateName": "my-launch-template",
"Version": "1",
"LaunchTemplateId": "lt-050555ad16a3f9c7f"
},
"InstanceId": "i-05b4f7d5be44822a6",
"InstanceType": "t3.micro",
"HealthStatus": "Healthy",
"LifecycleState": "Pending"
},
{
"ProtectedFromScaleIn": false,
"AvailabilityZone": "us-west-2a",
"LaunchTemplate": {
"LaunchTemplateName": "my-launch-template",
"Version": "1",
"LaunchTemplateId": "lt-050555ad16a3f9c7f"
},
"InstanceId": "i-0c20ac468fa3049e8",
"InstanceType": "t3.micro",
"HealthStatus": "Healthy",
"LifecycleState": "InService"
}
],
"CreatedTime": "2019-03-18T23:30:42.611Z",
"SuspendedProcesses": [],
"VPCZoneIdentifier": "subnet-c87f2be0",
"EnabledMetrics": [],
"Tags": [],
"TerminationPolicies": [
"Default"
],
"NewInstancesProtectedFromScaleIn": false,
"ServiceLinkedRoleARN": "arn
",
"TrafficSources": []
}
]
}
注意 DesiredCapacity
显示了新值。Auto Scaling 组已启动另一个实例。
终止您自动扩缩组中的实例(Amazon CLI)
有时,您可能想要在自动扩缩组中手动进行横向缩减,但同时又想终止指定的实例。您可以使用-scaling-group 命令在 Auto terminate-instance-in-autoScaling-group 中手动缩放,并指定要终止的实例的 ID 和--should-decrement-desired-capacity
选项,如以下示例所示。
aws autoscaling terminate-instance-in-auto-scaling-group \
--instance-id i-026e4c9f62c3e448c
--should-decrement-desired-capacity
以下是示例输出,其提供有关扩缩活动的详细信息。
{
"Activities": [
{
"ActivityId": "b8d62b03-10d8-9df4-7377-e464ab6bd0cb",
"AutoScalingGroupName": "my-asg",
"Description": "Terminating EC2 instance: i-026e4c9f62c3e448c",
"Cause": "At 2023-09-23T06:39:59Z instance i-026e4c9f62c3e448c was taken out of service in response to a user request, shrinking the capacity from 1 to 0.",
"StartTime": "2023-09-23T06:39:59.015000+00:00",
"StatusCode": "InProgress",
"Progress": 0,
"Details": "{\"Subnet ID\":\"subnet-6194ea3b\",\"Availability Zone\":\"us-west-2c\"}"
}
]
}
此选项在控制台中不可用。但是,您可以使用亚马逊EC2控制台的实例页面来终止您的 Auto Scaling 组中的实例。当您执行此操作时,Amazon A EC2 uto Scaling 会检测到该实例已停止运行,并在运行状况检查过程中自动替换该实例。在终止该实例后需要一两分钟的时间才能启动新实例。有关如何终止实例的信息,请参阅 Amazon EC2 用户指南中的终止实例。
如果您终止组中的实例,从而导致可用区之间的分布不均衡,Amazon A EC2 uto Scaling 会重新平衡该组以重新建立均衡分配,除非您暂停该AZRebalance
流程。有关更多信息,请参阅 暂停和恢复 Amazon A EC2 uto Scaling 流程。