暂停和恢复扩展流程
您可以暂停然后恢复您的 Auto Scaling 组的一个或多个扩展流程。如果需要调查配置问题或与 Web 应用程序相关的其他问题,然后在不调用扩展过程的前提下对应用程序进行更改,则此设置很有用。
Amazon EC2 Auto Scaling 可能会暂停多次启动实例失败的 Auto Scaling 组的流程。这称为管理暂停。这通常适用于符合以下条件的 Auto Scaling 组:尝试启动实例的时间超过 24 小时,但未成功启动任何实例。您可以恢复由于管理原因暂停的流程。
扩展流程
Amazon EC2 Auto Scaling 支持以下扩展流程:
Launch
-
将新的 EC2 实例添加到组,从而增加组的容量。
警告
如果您暂停
Launch
,这会中断其他流程。例如,如果暂停Launch
流程,则无法使处于备用状态的实例恢复运行,因为组无法扩展。 Terminate
-
从组中删除 EC2 实例,从而减少组的容量。
警告
如果您暂停
Terminate
,这会中断其他流程,如以下部分所述。例如,如果暂停Terminate
流程,您的扩展策略将无法执行缩减操作,因为组无法终止实例。 HealthCheck
-
检查实例的运行状况。如果 Amazon EC2 或 Elastic Load Balancing 通知 Amazon EC2 Auto Scaling 实例运行状况不佳,Amazon EC2 Auto Scaling 会将该实例标记为运行状况不佳。此流程可覆盖您手动设置的实例运行状况状态。有关更多信息,请参阅Auto Scaling 实例的运行状况检查。
ReplaceUnhealthy
-
终止被标记为运行状况不佳的实例,然后创建新实例将其替换。此流程与
HealthCheck
流程结合使用,并使用Terminate
和Launch
流程。有关更多信息,请参阅Auto Scaling 实例的运行状况检查。 AZRebalance
-
在区域内的可用区之间均衡组中 EC2 实例的数量。如果从 Auto Scaling 组中删除可用区,或可用区运行状况不佳或无法使用,扩展流程会在终止运行状况不佳或无法使用的实例前,在不受影响的可用区中启动新实例。当运行状况不佳的可用区恢复正常状态时,扩展流程自动在组的可用区中重新均匀分布实例。有关更多信息,请参阅 再平衡活动。
如果您暂停
AZRebalance
并且发生了扩展或缩减事件,扩展过程仍会尝试均衡可用区。例如,在扩展期间,它会在实例最少的可用区中启动实例。如果您暂停
Launch
流程,AZRebalance
不会启动新实例,也不会终止现有实例。这是因为AZRebalance
只会在启动替换实例后才终止实例。如果您暂停Terminate
流程,Auto Scaling 组容量可以增加到超出最大大小百分之十,因为在重新均衡活动期间允许临时发生这种情况。如果扩展流程不能终止实例,Auto Scaling 组可以保持超出其最大大小,直到您恢复Terminate
流程。 AlarmNotification
-
接受来自与组关联的 CloudWatch 警报的通知。
如果您暂停
AlarmNotification
,Amazon EC2 Auto Scaling 不会自动执行会被警报触发的策略。如果您暂停Launch
或Terminate
,分别将无法执行扩展或缩减策略。 ScheduledActions
-
执行您创建的计划操作。
如果您暂停
Launch
或Terminate
,涉及启动或终止实例的计划操作会受到影响。 AddToLoadBalancer
-
在实例启动时,将其添加到附加的负载均衡器或目标组。
如果您暂停
AddToLoadBalancer
,Amazon EC2 Auto Scaling 会启动实例,但不会将其添加到负载均衡器或目标组。如果您恢复AddToLoadBalancer
流程,该流程也会在启动实例时将其添加到负载均衡器或目标组。不过,它不会添加在此流程暂停时启动的实例。您必须手动注册这些实例。
使用控制台暂停和恢复流程
您可以使用 AWS 管理控制台暂停和恢复单个流程。
使用控制台暂停和恢复流程
-
打开 Amazon EC2 控制台 https://console.aws.amazon.com/ec2/。
-
在导航窗格上的 Auto Scaling 下,选择 Auto Scaling Groups (Auto Scaling 组)。
-
选择 Auto Scaling 组。
-
在 Details 选项卡上,选择 Edit。
-
对于 Suspended Processes,选择要暂停的流程。
要恢复已暂停的流程,请从 Suspended Processes 中删除该流程。
-
选择 Save。
使用 AWS CLI 暂停和恢复流程
您可以暂停和恢复单个流程或所有流程。
暂停一个流程
将 suspend-processes 命令与 --scaling-processes
选项一起使用,如下所示:
aws autoscaling suspend-processes --auto-scaling-group-name
my-asg
--scaling-processesAlarmNotification
暂停所有流程
按以下方式使用 suspend-processes 命令(省略 --scaling-processes
选项):
aws autoscaling suspend-processes --auto-scaling-group-name
my-asg
恢复一个暂停的流程
按以下方式使用 resume-processes 命令:
aws autoscaling resume-processes --auto-scaling-group-name
my-asg
--scaling-processesAlarmNotification
恢复所有暂停的流程
按以下方式使用 resume-processes 命令(省略 --scaling-processes
选项):
aws autoscaling resume-processes --auto-scaling-group-name
my-asg