如何重启 Amazon EC2 Auto Scaling 组中的实例?

上次更新日期:2022 年 6 月 3 日

我的 Amazon Elastic Compute Cloud (Amazon EC2) 实例是 Amazon EC2 Auto Scaling 组的一部分。我想重启实例,但同时不希望 Amazon EC2 Auto Scaling 因运行状况检查失败而将其终止。我该如何操作?

简短描述

如果您在 Amazon EC2 Auto Scaling 组中重启处于 InService 状态的实例,则 Amazon EC2 Auto Scaling 会终止该实例。Amazon EC2 Auto Scaling 之所以这样做,是因为实例在重启期间达到 “正在停止”(Stopping) 或 “已停止”(Stopped) 状态时未通过运行状况检查。

使用以下任意程序可重启实例,而不会使 Amazon EC2 Auto Scaling 将实例标记为“运行状况不佳”,继而将其终止:

  • 将实例置于备用状态
  • 从组中分离实例
  • 暂停运行状况检查进程

解决方法

将实例置于备用状态

要重启 Amazon EC2 Auto Scaling 组中的实例,请先将该实例置于备用状态。您这样做是因为 Amazon EC2 Auto Scaling 不会对处于待机状态的实例执行运行状况检查。如果您需要 Amazon EC2 Auto Scaling 组自始至终管理实例,请选择此选项,因为即使实例处于备用状态,Auto Scaling 组也会对其进行管理。

按照以下步骤将实例置于备用状态,重启实例,然后将实例恢复到可用状态:

  1. 打开 Amazon EC2 控制台
  2. 在导航窗格的 Auto Scaling(自动扩缩)下,选择 Auto Scaling 组(自动扩缩组)。
  3. 选择要重启的实例所在的组。在实例视图中,选择所需的实例。
  4. 选择操作,然后选择设置为备用。在设置为备用页面上,选择设置为备用
  5. 在导航窗格中的 Instances(实例)下,选择 Instances(实例)。注意:您还可以选择 Add a new instance to the Auto Scaling group to balance the load(将一个新实例添加到 Auto Scaling 组以均衡负载),从而维持组容量。
  6. 选择您设置为 "Standby"(备用)状态的实例。依次选择 Actions(操作)、Instance State(实例状态)和 Reboot(重启)。
  7. 再次选择实例,然后选择 Status Checks(状态检查)视图。确认已通过 System Status Checks(系统状态检查)和 Instance Status Checks(实例状态检查)。
  8. 在导航窗格的 Auto Scaling(自动扩缩)下,选择 Auto Scaling 组(自动扩缩组)。
  9. 选择设置为待机状态的实例组。
  10. 选择已重启的实例。选择操作,然后选择设置为可用。在设置为可用页面上,选择设置为可用

从组中分离实例

您可以从 Amazon EC2 Auto Scaling 组中分离实例,以单独管理实例。如果您想独立于实例的 Amazon EC2 Auto Scaling 组管理实例,请选择此选项。在重启实例之后,您可以再次将实例附加到 Amazon EC2 Auto Scaling 组,也可以不附加实例。

>

按照以下步骤从 Amazon EC2 Auto Scaling 组中分离实例,重启实例,然后再次将实例附加到组:

  1. 打开 Amazon EC2 控制台
  2. 在导航窗格的 Auto Scaling(自动扩缩)下,选择 Auto Scaling 组(自动扩缩组)。
  3. 选择要重启的实例所在的组。在实例视图中,选择相应实例。
  4. 选择操作,然后选择分离
  5. 在“分离实例”页面上,选择分离实例注意:您还可以选择将一个新实例添加到 Auto Scaling 组以均衡负载,从而替换要分离的实例。
  6. 在导航窗格中的 Instances(实例)下,选择 Instances(实例)。
  7. 选择已分离的实例。依次选择 Actions(操作)、Instance State(实例状态)和 Reboot(重启)。
  8. 选择实例,然后选择 Status Checks(状态检查)视图。确认已通过 System Status Checks(系统状态检查)和 Instance Status Checks(实例状态检查)。
  9. 依次选择实例、操作实例设置附加到 Auto Scaling 组
  10. 对于附加一个实例到下的附加到 Auto Scaling 组,选择现有的 Auto Scaling 组。选择或搜索您从中分离实例的组。然后,选择附加

暂停运行状况检查进程

您可以暂停 Auto Scaling 组的运行状况检查进程,以便在 Amazon EC2 Auto Scaling 不会终止实例的情况下重启实例。

警告:暂停进程会影响 Auto Scaling 组中的所有实例。在您恢复进程之前,Amazon EC2 Auto Scaling 不会替换任何运行状况不佳的实例。如果您需要 Amazon EC2 Auto Scaling 对其余实例执行运行状况检查,则选择上述选项之一。

按照以下步骤暂停组的运行状况检查进程,重启实例,然后恢复组的运行状况检查进程:

  1. 打开 Amazon EC2 控制台
  2. 在导航窗格的 Auto Scaling(自动扩缩)下,选择 Auto Scaling 组(自动扩缩组)。
  3. 选择要重启的实例所在的组。
  4. 详细信息视图中,选择编辑
  5. Suspended Processes(暂停的进程)下,选择 HealthCheck(运行状况检查)。然后选择 Save(保存)。
  6. 在导航窗格中的 Instances(实例)下,选择 Instances(实例)。注意:您还可以选择 Add a new instance to the Auto Scaling group to balance the load(将一个新实例添加到 Auto Scaling 组以均衡负载),从而维持组容量。
  7. 选择重启的实例。依次选择 Actions(操作)、Instance State(实例状态)和 Reboot(重启)。
  8. 选择实例,然后选择 Status Checks(状态检查)视图。确认已通过 System Status Checks(系统状态检查)和 Instance Status Checks(实例状态检查)。
  9. 在导航窗格的 Auto Scaling(自动扩缩)下,选择 Auto Scaling 组(自动扩缩组)。
  10. 选择已重启的实例所在的组。
  11. Details(详细信息)视图中,选择 Edit(编辑)。在 Suspended Processes(暂停的进程)下,删除 HealthCheck(运行状况检查),然后选择 Save(保存)。