从您的 Auto Scaling 组 - Amazon EC2 Auto Scaling

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

从您的 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 过程。有关更多信息,请参阅 扩展流程.

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

如果将实例从具有附加负载均衡器的 Auto Scaling 组分离,则该实例将从负载均衡器取消注册。如果您从具有附加目标组的 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 控制台 https://console.aws.amazon.com/ec2/

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

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

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

  4. 实例管理 选项卡, 实例,选择一个实例,然后选择 操作分离. (旧控制台: 实例 选项卡可以分离实例。)

  5. 分离实例 对话框,选中要启动替换实例的复选框,或者将其取消选中以减少所需容量。选择 分离实例.

断开实例(AWS CLI)

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

将实例与现有 Auto Scaling 组分离

  1. 使用以下列表列出当前实例 describe-auto-scaling-instances 命令。

    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. 使用以下方法分离实例并减少所需容量 detach-instances 命令。

    aws autoscaling detach-instances --instance-ids i-05b4f7d5be44822a6 \ --auto-scaling-group-name my-asg --should-decrement-desired-capacity
  3. 使用以下方法验证实例是否已脱离 describe-auto-scaling-instances 命令。

    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" } ] }