

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 暂停和恢复 Amazon EC2 Auto Scaling 进程
<a name="as-suspend-resume-processes"></a>

本主题描述了如何暂停然后恢复自动扩缩组的一个或多个进程，以暂时禁用某些操作。

当您需要在不受扩缩策略或计划操作干扰的情况下调查或排查问题时，暂停进程非常有用。它还有助于防止 Amazon EC2 Auto Scaling 在您对自动扩缩组进行更改时将实例标记为运行状况不佳并予以替换。

**Topics**
+ [进程的类型](#process-types)
+ [注意事项](suspend-resume-considerations.md)
+ [暂停进程](suspend-processes.md)
+ [恢复进程](resume-processes.md)
+ [暂停进程如何影响其他进程](understand-how-suspending-processes-affects-other-processes.md)

**注意**  
除在启动时暂停外，Amazon EC2 Auto Scaling 也可以暂停多次启动实例失败的 Auto Scaling 组。这称为*管理暂停*。管理暂停最常用于符合以下条件的 Auto Scaling 组：连续尝试启动实例的时间超过 24 小时，但是未成功启动任何实例。您可以恢复由于管理原因被 Amazon EC2 Auto Scaling 暂停的进程。

## 进程的类型
<a name="process-types"></a>

暂停-恢复功能支持以下进程：
+ `Launch`：在自动扩缩组横向扩展时，或者在 Amazon EC2 Auto Scaling 因其他原因（例如将实例添加到暖池时）选择启动实例时，将实例添加到该组中。
+ `Terminate`：在自动扩缩组横向缩减时，或者在 Amazon EC2 Auto Scaling 因其他原因（例如，实例因超过其最大生命周期或未通过运行状况检查而被终止时）选择终止实例时，将实例从该组中移除。
+ `AddToLoadBalancer`：在实例启动时，将其添加到附加的负载均衡器目标组或者经典负载均衡器。有关更多信息，请参阅 [使用 Elastic Load Balancing，在自动扩缩组中分配传入的应用程序流量](autoscaling-load-balancer.md)。
+ `AlarmNotification`— 接受来自与动态扩展策略关联的 CloudWatch警报的通知。有关更多信息，请参阅 [Amazon EC2 Auto Scaling 的动态扩缩](as-scale-based-on-demand.md)。
+ `AZRebalance`：在该组失去平衡时（例如，之前不可用的可用区恢复到正常状态时），在所有指定的可用区之间均匀调整该组中的 EC2 实例数量。有关更多信息，请参阅 [再平衡活动](auto-scaling-benefits.md#AutoScalingBehavior.InstanceUsage)。
+ `HealthCheck`：检查实例的运行状况，如果 Amazon EC2 或 Elastic Load Balancing 通知 Amazon EC2 Auto Scaling 实例运行状况不佳，则将对应实例标记为运行状况不佳。此流程可覆盖您手动设置的实例运行状况状态。有关更多信息，请参阅 [自动扩缩组中实例的运行状况检查](ec2-auto-scaling-health-checks.md)。
+ `InstanceRefresh`：使用实例刷新功能终止并替换实例。有关更多信息，请参阅 [使用实例刷新更新自动扩缩组中的实例](asg-instance-refresh.md)。
+ `ReplaceUnhealthy`：终止被标记为运行状况不佳的实例，然后创建新实例以替换它们。有关更多信息，请参阅 [自动扩缩组中实例的运行状况检查](ec2-auto-scaling-health-checks.md)。
+ `ScheduledActions`：执行您创建的计划扩缩操作，或您在创建 AWS Auto Scaling 扩缩计划并开启预测扩缩时创建的计划扩缩操作。有关更多信息，请参阅 [Amazon EC2 Auto Scaling 的计划扩缩](ec2-auto-scaling-scheduled-scaling.md)。

# 暂停进程的注意事项
<a name="suspend-resume-considerations"></a>

暂停进程之前，请注意以下事项：
+ 暂停`AlarmNotification`允许您暂时停止群组的目标跟踪、步骤和简单扩展策略，而无需删除扩展策略或其关联 CloudWatch 警报。要暂时停止单个扩缩策略，请参阅[禁用 Auto Scaling 组的扩缩策略](as-enable-disable-scaling-policy.md)。
+ 您可选择暂停 `HealthCheck` 和 `ReplaceUnhealthy` 进程以重启实例，但不让 Amazon EC2 Auto Scaling 根据运行状况检查的结果终止实例。但是，如果需要 Amazon EC2 Auto Scaling 对剩余实例执行运行状况检查，则改用备用功能。有关更多信息，请参阅 [临时从 Auto Scaling 组中移除实例](as-enter-exit-standby.md)。
+ 如果您暂停了 `Launch` 和 `Terminate` 进程或者 `AZRebalance`，并且随后对自动扩缩组进行了更改（例如，分离实例或更改指定的可用区），则您的组可能会在可用区之间失去均衡。如果出现这种情况，在您恢复暂停的流程后，Amazon EC2 Auto Scaling 将逐步在可用区之间均匀地重新分配实例。
+ 如果您暂停该`Terminate`进程，您仍然可以使用带有强制删除选项的[delete-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/delete-auto-scaling-group.html)命令来强制终止实例。
+ 暂停 `Terminate` 进程仅适用于当前处于 `InService` 状态的实例。它不会阻止对处于其他状态（例如 `Pending`）的实例，或无法从备用状态正常恢复的实例的终止。
+ 如果该`RemoveFromLoadBalancerLowPriority`过程出现在使用 AWS CLI 或描述 Auto Scaling 组的调用中，则可以忽略该过程 SDKs。此过程已过时，保留此过程仅是为了向后兼容。

# 暂停进程
<a name="suspend-processes"></a>

要暂停自动扩缩组的进程，请使用以下方法之一：

------
#### [ Console ]

**暂停一个流程**

1. 在上打开 Amazon EC2 控制台 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)，然后从导航窗格中选择 A **uto Scaling Gro** ups。

1. 选中 Auto Scaling 组旁边的复选框。

   这时将在页面底部打开一个拆分窗格。

1. 在 **Details**（详细信息）选项卡上，选择 **Advanced configurations**（高级配置）、**Edit**（编辑）。

1. 对于 **Suspended processes**（暂停的进程），选择要暂停的进程。

1. 选择**更新**。

------
#### [ AWS CLI ]

使用下面的 [suspend-processes](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/suspend-processes.html) 命令暂停单个进程。

```
aws autoscaling suspend-processes --auto-scaling-group-name my-asg --scaling-processes HealthCheck ReplaceUnhealthy 
```

要暂停所有进程，请忽略 `--scaling-processes` 选项，如下所示。

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

------

# 恢复进程
<a name="resume-processes"></a>

要恢复自动扩缩组的暂停进程，请使用以下方法之一：

------
#### [ Console ]

**恢复一个暂停的流程**

1. 在上打开 Amazon EC2 控制台 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)，然后从导航窗格中选择 A **uto Scaling Gro** ups。

1. 选中 Auto Scaling 组旁边的复选框。

   这时将在页面底部打开一个拆分窗格。

1. 在 **Details**（详细信息）选项卡上，选择 **Advanced configurations**（高级配置）、**Edit**（编辑）。

1. 对于 **Suspended processes**（已暂停的进程），移除该已暂停的进程。

1. 选择**更新**。

------
#### [ AWS CLI ]

要恢复已暂停的进程，请使用以下 [resume-processes](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/resume-processes.html) 命令。

```
aws autoscaling resume-processes --auto-scaling-group-name my-asg --scaling-processes HealthCheck
```

要恢复所有已暂停的进程，请忽略 `--scaling-processes` 选项，如下所示。

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

------

# 暂停进程如何影响其他进程
<a name="understand-how-suspending-processes-affects-other-processes"></a>

以下各节描述了单独暂停不同进程时发生的情况。

**Topics**
+ [`Launch` 已暂停](#launch-is-suspended)
+ [`Terminate` 已暂停](#terminate-is-suspended)
+ [`AddToLoadBalancer` 已暂停](#addtoloadbalancer-is-suspended)
+ [`AlarmNotification` 已暂停](#alarmnotification-is-suspended)
+ [`AZRebalance` 已暂停](#azrebalance-is-suspended)
+ [`HealthCheck` 已暂停](#healthcheck-is-suspended)
+ [`InstanceRefresh` 已暂停](#instancerefresh-is-suspended)
+ [`ReplaceUnhealthy` 已暂停](#replaceunhealthy-is-suspended)
+ [`ScheduledActions` 已暂停](#scheduledactions-is-suspended)
+ [其它注意事项](#other-considerations)

## `Launch` 已暂停
<a name="launch-is-suspended"></a>
+ `AlarmNotification` 仍处于活动状态，但是您的自动扩缩组无法为超限警报启动横向扩展活动。
+ `ScheduledActions` 处于活动状态，但是您的自动扩缩组无法为出现的任何计划操作启动横向扩展活动。
+ `AZRebalance` 停止对组进行重新平衡。
+ `ReplaceUnhealthy` 继续终止运行不正常的实例，但不启动替换实例。`Launch` 过程恢复后，Amazon EC2 Auto Scaling 会立即替换它在 `Launch` 被暂停期间终止的所有实例。
+ `InstanceRefresh` 不会替换实例。

## `Terminate` 已暂停
<a name="terminate-is-suspended"></a>
+ `AlarmNotification` 仍处于活动状态，但是您的自动扩缩组无法为超限警报启动横向缩减活动。
+ `ScheduledActions` 处于活动状态，但是您的自动扩缩组无法为出现的任何计划操作启动横向缩减活动。
+ `AZRebalance` 仍处于活动状态，但不能正常运行。它可以启动新实例而不终止旧实例。这可能导致您的 Auto Scaling 组增加到比最大大小超出百分之十，因为在重新平衡活动期间允许短时间内发生这种情况。您的 Auto Scaling 组可以保持超出其最大大小，直到您恢复 `Terminate` 进程。
+ `ReplaceUnhealthy` 处于非活动状态但未 `HealthCheck`。当 `Terminate` 恢复后，`ReplaceUnhealthy` 进程将立即开始运行。如果任何实例在 `Terminate` 暂停期间被标记为运行状况不佳，将立即替换它们。
+ `InstanceRefresh` 不会替换实例。

## `AddToLoadBalancer` 已暂停
<a name="addtoloadbalancer-is-suspended"></a>
+ Amazon EC2 Auto Scaling 会启动实例，但不会将实例添加到负载均衡器目标组或经典负载均衡器。在您恢复 `AddToLoadBalancer` 进程后，该进程也会在启动实例时将其添加到负载均衡器。不过，它不会添加在此流程暂停时启动的实例。您必须手动注册这些实例。

## `AlarmNotification` 已暂停
<a name="alarmnotification-is-suspended"></a>
+ 当 CloudWatch 警报阈值被违反时，Amazon EC2 Auto Scaling 不会调用扩展策略。当您恢复 `AlarmNotification` 时，Amazon EC2 Auto Scaling 考虑具有当前违反的警报阈值的策略。

## `AZRebalance` 已暂停
<a name="azrebalance-is-suspended"></a>
+ Amazon EC2 Auto Scaling 不会在某些事件发生后尝试重新分配实例。不过，如果发生横向扩展或横向缩减事件，扩缩进程仍会尝试平衡可用区。例如，在扩展期间，它会在实例最少的可用区中启动实例。如果组变得不平衡，同时 `AZRebalance` 处于暂停状态并且您恢复它，Amazon EC2 Auto Scaling 会尝试重新平衡组。它先调用 `Launch`，然后调用 `Terminate`。
+ `AZRebalance` 暂停时，暖池不受影响。

## `HealthCheck` 已暂停
<a name="healthcheck-is-suspended"></a>
+ Amazon EC2 Auto Scaling 停止在 EC2 和 Elastic Load Balancing 运行状况检查后将实例标记为运行状况不佳。您的自定义运行状况检查会继续正常运行。当您暂停 `HealthCheck` 后，在需要时可以手动设置组中实例的运行状况，并由 `ReplaceUnhealthy` 替换它们。

## `InstanceRefresh` 已暂停
<a name="instancerefresh-is-suspended"></a>
+ Amazon EC2 Auto Scaling 停止因实例刷新而替换实例。如果正在刷新实例，则会暂停操作而不将其取消。

## `ReplaceUnhealthy` 已暂停
<a name="replaceunhealthy-is-suspended"></a>
+ Amazon EC2 Auto Scaling 停止替换标记为运行状况不佳的实例。未通过 EC2 或 Elastic Load Balancing 运行状况检查的实例仍会被标记为运行状况不佳。一旦您恢复 `ReplaceUnhealthy` 进程，Amazon EC2 Auto Scaling 会替换在此进程暂停时标记为运行状况不佳的实例。`ReplaceUnhealthy` 进程会首先调用 `Terminate`，然后调用 `Launch`。

## `ScheduledActions` 已暂停
<a name="scheduledactions-is-suspended"></a>
+ Amazon EC2 Auto Scaling 不会运行计划在暂停期间运行的计划操作。当您恢复 `ScheduledActions` 后，Amazon EC2 Auto Scaling 仅考虑其计划时间尚未过期的计划操作。

## 其它注意事项
<a name="other-considerations"></a>

此外，在暂停 `Launch` 或 `Terminate` 时，以下功能可能无法正常运行：
+ **最大实例生命周期**：暂停 `Launch` 或 `Terminate` 时，最大实例生命周期功能无法替换任何实例。
+ **竞价型实例中断**：如果 `Terminate` 已暂停且您的自动扩缩组包含竞价型实例，这些实例在竞价型容量不再可用的情况下仍可终止。暂停 `Launch` 时，Amazon EC2 Auto Scaling 无法从其他竞价型实例池启动替换实例，也无法在同一竞价型实例池再次可用时启动替换实例。
+ **容量再平衡**：如果 `Terminate` 已暂停且您使用容量再平衡处理竞价型实例中断，则当竞价型容量不再可用时，Amazon EC2 竞价型服务仍可以终止实例。如果暂停 `Launch`，Amazon EC2 Auto Scaling 无法从其他竞价型实例池启动替换实例，也无法在同一竞价型实例池再次可用时启动替换实例。
+ **附加和分离实例**：暂停 `Launch` 和 `Terminate` 时，您可以分离附加到自动扩缩组的实例，但在暂停 `Launch` 期间，您无法将新实例附加到该组。
+ **备用实例**：暂停 `Launch` 和 `Terminate` 时，您可以将实例置于 `Standby` 状态，但在暂停 `Launch` 期间，您无法将处于 `Standby` 状态的实例恢复为服务状态。