将 EC2 实例从 Auto Scaling 组中分离出来 - Amazon EC2 Auto Scaling
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

将 EC2 实例从 Auto Scaling 组中分离出来

您可以从 Auto Scaling 组中移除(分离)实例。分离实例后,您可以独立于 Auto Scaling 组的其余部分管理实例。通过分离实例,您可以:

  • 将实例从一个 Auto Scaling 组移出,然后将其附加到其他组。有关更多信息,请参阅 将 EC2 实例附加到 Auto Scaling 组

  • 使用运行应用程序的现有实例创建 Auto Scaling 组,以此来对其进行测试。随后,您可以在测试完成后从 Auto Scaling 组中分离这些实例。

分离实例时,您可以选择按分离的实例数减少 Auto Scaling 组的所需容量。如果您选择不减少容量,Amazon EC2 Auto Scaling 会启动新实例以替换分离的实例。如果减少容量,但将多个实例从同一可用区分离,则 Amazon EC2 Auto Scaling 可以重新平衡可用区,除非您暂停AZRebalance过程。有关更多信息,请参阅 Amazon EC2 Auto Scaling 流程

如果要分离的实例的数量将 Auto Scaling 组的大小降到其最小容量以下,则必须先减小组的最小容量,然后才能分离实例。

如果将实例从具有附加负载均衡器目标组或 Classic Load Balancer Load 均衡器的 Auto Scaling 组分离,则该实例将从负载均衡器取消注册。如果为负载均衡器启用了连接耗尽,Amazon EC2 Auto Scaling 将等待运行中的请求完成。

这些示例使用具有以下配置的 Auto Scaling 组:

  • Auto Scaling 组名称 =my-asg

  • 最小容量 = 1

  • 最大容量 = 5

  • 所需容量 = 4

  • 可用区域 = us-west-2a

分离实例(控制台)

使用以下步骤将实例与 Auto Scaling 组分离。

将实例与现有 Auto Scaling 组分离

  1. 以下网址打开 Amazon EC2 Auto Scaling 控制台:https://console.aws.amazon.com/ec2autoscaling/.

  2. 选中 Auto Scaling 组旁的复选框。

    将在 Auto Scaling groups (Auto Scaling 组) 页面底部打开一个拆分窗格,其中显示有关所选组的信息。

  3. Instance management (实例管理) 选项卡上的 Instances (实例) 中,选择一个实例,然后选择 Actions (操作)Detach (分离)

  4. Detach instance (分离实例) 对话框中,选中该复选框可启动替换实例,取消选中该复选框可减少所需容量。选择 Detach instance (分离实例)

分离实例 (Amazon CLI)

使用以下步骤将实例与 Auto Scaling 组分离。

将实例与现有 Auto Scaling 组分离

  1. 使用以下网址列出当前实例描述-Auto Scaling 实例命令。

    aws autoscaling describe-auto-scaling-instances

    以下示例响应显示该组有 4 个正在运行的实例。

    { "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" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0c20ac468fa3049e8", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0787762faf1c28619", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0f280a4c58d319a8a", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" } ] }
  2. 使用以下步骤分离实例并减少所需的容量分离实例命令。

    aws autoscaling detach-instances --instance-ids i-05b4f7d5be44822a6 \ --auto-scaling-group-name my-asg --should-decrement-desired-capacity
  3. 验证是否已使用以下命令分离该实例描述-Auto Scaling 实例命令。

    aws autoscaling describe-auto-scaling-instances

    以下示例响应显示现在有 3 个正在运行的实例。

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