暂时从您的 Auto Scaling 组 - Amazon EC2 Auto Scaling
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

暂时从您的 Auto Scaling 组

您可以放置一个位于 InService 状态为 Standby 状态、更新或故障排除实例,然后将实例返回至服务。处于备用状态的实例仍是 Auto Scaling 组的一部分,但它们不会主动处理应用程序流量。

重要

您需为处于备用状态的实例付费。

例如,您可以更改启动配置 Auto Scaling 以及任何后续实例 Auto Scaling 组启动使用此配置。不过,Auto Scaling 组不会更新当前正在运行的实例。您可以终止这些实例,并让 Auto Scaling 组替换这些实例。或者,您可以将实例置于备用状态,更新软件,然后将实例恢复运行。

待机状态如何工作

备用状态按如下方式工作以帮助您临时从 Auto Scaling 组中删除实例:

  1. 将实例置于备用状态。实例保持此状态,直至您退出备用状态。

  2. 如果已向 Auto Scaling 组附加负载均衡器或目标组,则将从该负载均衡器或目标组取消注册实例。

  3. 在默认情况下,当您将一个实例置于备用状态时,指定作为所需容量的值会减少。这可防止在您将此实例置于备用状态时启动附加实例。或者,您可以指定不减少所需容量。如果您指定此选项,则 Auto Scaling 组会启动一个实例来替换处于备用状态的实例。这样做是为了帮助您在一个或多个实例处于备用状态时保持应用程序的容量。

  4. 您可以更新实例或排查实例的问题。

  5. 可通过退出备用状态,将实例恢复运行状态。

  6. 在您将处于备用状态的实例恢复运行后,所需容量会增加。如果在将实例置于备用状态时未减少容量,Auto Scaling 组将检测到您具有超过所需数量的实例。它应用终止策略以实际减小组的大小。有关更多信息,请参阅 控制 Auto Scaling 实例在规模中终止.

  7. 如果已向 Auto Scaling 组附加负载均衡器或目标组,则会将实例注册到该负载均衡器或目标组。

下图阐释了此过程中实例状态之间的过渡:


                    实例进入和退出备用状态。

有关 Auto Scaling 组中实例的完整生命周期的更多信息,请参阅。Amazon EC2 Auto Scaling 实例生命周期.

待机状态下实例的运行状况

Amazon EC2 Auto Scaling 不对处于备用状态的实例执行运行状况检查。当实例处于备用状态时,其运行状况将反映您将实例置于备用状态之前,实例具有的状态。Amazon EC2 Auto Scaling 不对实例执行运行状况检查,直至您将实例恢复运行。

例如,如果您将运行正常的实例置于备用状态,然后终止该实例,则 Amazon EC2 Auto Scaling 会继续将实例报告为运行正常。如果您尝试将处于待机状态的已终止实例重新投入使用,则 Amazon EC2 Auto Scaling 将对实例执行运行状况检查,确定其正在终止且运行状况不佳,并启动替换实例。

暂时删除实例(控制台)

以下步骤演示更新当前正在运行的实例的一般过程。

临时删除实例

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

  2. 在导航窗格中, 自动缩放,选择 自动缩放组.

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

    分割窗格可以在 自动缩放组 页面,显示所选组的信息。

  4. 实例管理 选项卡, 实例,选择实例。(旧控制台: 实例 选项卡可以选择实例。)

  5. 选择 操作设置为待机.

  6. 设置为待机 对话框,选中要启动替换实例的复选框。取消选中可减少所需容量。选择 设置为待机.

  7. 您可以根据需要更新实例或排查实例的问题。当您完成后,请继续下一步以将实例恢复运行。

  8. 选择实例,选择 操作设置为服务. 在 设置为服务 对话框,选择 设置为服务.

暂时删除实例(AWS CLI)

以下步骤演示更新当前正在运行的实例的一般过程。

临时删除实例

  1. 使用以下内容 describe-auto-scaling-instances 命令以标识要更新的实例。

    aws autoscaling describe-auto-scaling-instances

    以下为 响应示例。

    { "AutoScalingInstances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, ... ] }
  2. 将实例移动到A Standby 使用以下内容 enter-standby 命令。TheThethe --should-decrement-desired-capacity 选项减少所需容量,以便 Auto Scaling 组不启动替换实例。

    aws autoscaling enter-standby --instance-ids i-05b4f7d5be44822a6 \ --auto-scaling-group-name my-asg --should-decrement-desired-capacity

    以下为 响应示例。

    { "Activities": [ { "Description": "Moving EC2 instance to Standby: i-05b4f7d5be44822a6", "AutoScalingGroupName": "my-asg", "ActivityId": "3b1839fe-24b0-40d9-80ae-bcd883c2be32", "Details": "{\"Availability Zone\":\"us-west-2a\"}", "StartTime": "2014-12-15T21:31:26.150Z", "Progress": 50, "Cause": "At 2014-12-15T21:31:26Z instance i-05b4f7d5be44822a6 was moved to standby in response to a user request, shrinking the capacity from 4 to 3.", "StatusCode": "InProgress" } ] }
  3. (可选)验证实例是否为 Standby 使用以下内容 describe-auto-scaling-instances 命令。

    aws autoscaling describe-auto-scaling-instances --instance-ids i-05b4f7d5be44822a6

    以下为 响应示例。注意,实例状态此时为 Standby.

    { "AutoScalingInstances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "Standby" }, ... ] }
  4. 您可以根据需要更新实例或排查实例的问题。当您完成后,请继续下一步以将实例恢复运行。

  5. 使用以下方式将实例放回服务 exit-standby 命令。

    aws autoscaling exit-standby --instance-ids i-05b4f7d5be44822a6 --auto-scaling-group-name my-asg

    以下为 响应示例。

    { "Activities": [ { "Description": "Moving EC2 instance out of Standby: i-05b4f7d5be44822a6", "AutoScalingGroupName": "my-asg", "ActivityId": "db12b166-cdcc-4c54-8aac-08c5935f8389", "Details": "{\"Availability Zone\":\"us-west-2a\"}", "StartTime": "2014-12-15T21:46:14.678Z", "Progress": 30, "Cause": "At 2014-12-15T21:46:14Z instance i-05b4f7d5be44822a6 was moved out of standby in response to a user request, increasing the capacity from 3 to 4.", "StatusCode": "PreInService" } ] }
  6. (可选)使用以下 describe-auto-scaling-instances 命令验证实例是否已恢复运行。

    aws autoscaling describe-auto-scaling-instances --instance-ids i-05b4f7d5be44822a6

    以下为 响应示例。请注意,实例状态为 InService.

    { "AutoScalingInstances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, ... ] }