Auto Scaling
用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

暂停和恢复 Auto Scaling 流程

Auto Scaling 允许您暂停然后恢复 Auto Scaling 组中的一个或多个 Auto Scaling 流程。如果需要调查配置问题或与 Web 应用程序相关的其他问题,然后在不触发 Auto Scaling 流程的前提下对应用程序进行更改,则此设置很有用。

Auto Scaling 可能会暂停多次启动实例失败的 Auto Scaling组的流程。这称为管理暂停,最常用于符合以下条件的 Auto Scaling 组:连续尝试启动实例的时间超过 24 小时,但是未成功启动任何实例。您可以恢复由于管理原因暂停的流程。

Auto Scaling 流程

Auto Scaling 支持以下流程:

Launch

将新的 EC2 实例添加到组,从而增加组的容量。

警告

如果您暂停 Launch,这会中断其他流程。例如,如果暂停 Launch 流程,则无法使处于备用状态的实例恢复运行,因为组无法扩展。

Terminate

从组中删除 EC2 实例,从而减少组的容量。

警告

如果您暂停 Terminate,这会中断其他流程。

HealthCheck

检查实例的运行状况。如果 Amazon EC2 或 Elastic Load Balancing 通知 Auto Scaling 实例运行状况不佳,Auto Scaling 会将该实例标记为运行状况不佳。此流程可覆盖您手动设置的实例运行状况状态。

ReplaceUnhealthy

终止被标记为运行状况不佳的实例,然后创建新实例将其替换。此流程与 HealthCheck 流程结合使用,并使用 TerminateLaunch 流程。

AZRebalance

在区域内的可用区之间均衡组中 EC2 实例的数量。如果从 Auto Scaling 组中删除可用区,或可用区运行状况不佳或无法使用,Auto Scaling 在终止运行状况不佳或无法使用的实例前,在不受影响的可用区中启动新实例。当运行状况不佳的可用区恢复正常状态时,Auto Scaling 自动在组的可用区中重新均匀分布实例。有关更多信息,请参阅 再平衡活动

如果暂停 AZRebalance 并且发生了扩展或收缩事件,Auto Scaling 仍会尝试均衡可用区。例如,在扩展期间,Auto Scaling 会在实例最少的可用区中启动实例。

如果您暂停 Launch 流程,AZRebalance 不会启动新实例,也不会终止现有实例。这是因为 AZRebalance 只会在启动替换实例后才终止实例。如果您暂停 Terminate 流程,Auto Scaling 组容量可以增加到超出最大大小百分之十,因为 Auto Scaling 允许这种情况在重新均衡活动期间临时发生。如果 Auto Scaling 不能终止实例,Auto Scaling 组可以保持超出其最大大小,直到您恢复 Terminate 流程。

AlarmNotification

接受来自与组关联的 CloudWatch 警报的通知。

如果您暂停 AlarmNotification,Auto Scaling 不会自动执行会被警报触发的策略。如果您暂停 LaunchTerminate,Auto Scaling 将分别不能执行扩大或缩小策略。

ScheduledActions

执行您创建的计划操作。

如果您暂停 LaunchTerminate,涉及启动或终止实例的计划操作会受到影响。

AddToLoadBalancer

在实例启动时,将其添加到附加的负载均衡器或目标组。

如果您暂停 AddToLoadBalancer,Auto Scaling 会启动实例,但不会将其添加到负载均衡器或目标组。如果您恢复 AddToLoadBalancer 流程,Auto Scaling 也会在启动实例时将其添加到负载均衡器或目标组。不过,Auto Scaling 不会添加在此流程暂停时启动的实例。您必须手动注册这些实例。

使用控制台暂停和恢复流程

您可以使用 AWS 管理控制台暂停和恢复单个流程。

使用控制台暂停和恢复流程

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格上的 Auto Scaling 下,选择 Auto Scaling Groups

  3. 选择 Auto Scaling 组。

  4. Details 选项卡上,选择 Edit

  5. 对于 Suspended Processes,选择要暂停的流程。

     “Suspended Processes”列表。

    要恢复已暂停的流程,请从 Suspended Processes 中删除该流程。

     “Suspended Processes”列表。
  6. 选择 Save

使用 AWS CLI 暂停和恢复流程

您可以暂停和恢复单个流程或所有流程。

暂停一个流程

使用 --scaling-processes 选项使用 suspend-processes 命令,如下所示:

Copy
aws autoscaling suspend-processes --auto-scaling-group-name my-asg --scaling-processes AlarmNotification

暂停所有流程

使用 suspend-processes 命令(省略 --scaling-processes 选项),如下所示:

Copy
aws autoscaling suspend-processes --auto-scaling-group-name my-asg

恢复一个暂停的流程

使用 resume-processes 命令,如下所示:

Copy
aws autoscaling resume-processes --auto-scaling-group-name my-asg --scaling-processes AlarmNotification

恢复所有暂停的流程

使用 resume-processes 命令(省略 --scaling-processes 选项),如下所示:

Copy
aws autoscaling resume-processes --auto-scaling-group-name my-asg