Auto Scaling
用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

从 Auto Scaling 组中分离 EC2 实例

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

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

  • 通过使用正在运行应用程序的现有实例创建 Auto Scaling 组,以测试该组,然后在测试完成后将这些实例与 Auto Scaling 组分离。

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

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

如果将实例从具有附加负载均衡器的 Auto Scaling 组分离,则该实例将从负载均衡器取消注册。如果您从具有附加目标组的 Auto Scaling 组中分离实例,则实例将从目标组取消注册。如果为负载均衡器启用了连接耗尽,则 Auto Scaling 会等待未送达请求完成。

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

  • Auto Scaling 组名称 = my-asg

  • 最小容量 = 1

  • 最大容量 = 5

  • 所需容量 = 4

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

使用 AWS 管理控制台分离实例

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

使用控制台将实例与现有 Auto Scaling 组分离

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

  2. 在导航窗格上的 Auto Scaling 下,选择 Auto Scaling Groups

  3. 选择您的 Auto Scaling 组。

  4. Instances 选项卡上,选择实例,然后选择 ActionsDetach

  5. Detach Instance 页面上,选中该复选框可让 Auto Scaling 启动替换实例,取消选中该复选框可减少所需容量。选择 Detach Instance

使用 AWS CLI 分离实例

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

使用 AWS CLI 将实例与现有 Auto Scaling 组分离

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

    Copy
    aws autoscaling describe-auto-scaling-instances

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

    {
        "AutoScalingInstances": [
            {
                "AvailabilityZone": "us-west-2a",
                "InstanceId": "i-2a2d8978",
                "AutoScalingGroupName": "my-asg",
                "HealthStatus": "HEALTHY",
                "LifecycleState": "InService",
                "LaunchConfigurationName": "my-lc"
            },
            {
                "AvailabilityZone": "us-west-2a",
                "InstanceId": "i-5f2e8a0d",
                "AutoScalingGroupName": "my-asg",
                "HealthStatus": "HEALTHY",
                "LifecycleState": "InService",
                "LaunchConfigurationName": "my-lc"
            }
            {
                "AvailabilityZone": "us-west-2a",
                "InstanceId": "i-a52387f7",
                "AutoScalingGroupName": "my-asg",
                "HealthStatus": "HEALTHY",
                "LifecycleState": "InService",
                "LaunchConfigurationName": "my-lc"
            }
            {
                "AvailabilityZone": "us-west-2a",
                "InstanceId": "i-f42d89a6",
                "AutoScalingGroupName": "my-asg",
                "HealthStatus": "HEALTHY",
                "LifecycleState": "InService",
                "LaunchConfigurationName": "my-lc"
            }
        ]
    }
  2. 使用以下 detach-instances 命令分离实例并减小所需容量:

    Copy
    aws autoscaling detach-instances --instance-ids i-2a2d8978 --auto-scaling-group-name my-asg --should-decrement-desired-capacity
  3. 使用以下 describe-auto-scaling-instances 命令验证是否已分离该实例:

    Copy
    aws autoscaling describe-auto-scaling-instances

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

    {
        "AutoScalingInstances": [
            {
                "AvailabilityZone": "us-west-2a",
                "InstanceId": "i-5f2e8a0d",
                "AutoScalingGroupName": "my-asg",
                "HealthStatus": "HEALTHY",
                "LifecycleState": "InService",
                "LaunchConfigurationName": "my-lc"
            }
            {
                "AvailabilityZone": "us-west-2a",
                "InstanceId": "i-a52387f7",
                "AutoScalingGroupName": "my-asg",
                "HealthStatus": "HEALTHY",
                "LifecycleState": "InService",
                "LaunchConfigurationName": "my-lc"
            }
            {
                "AvailabilityZone": "us-west-2a",
                "InstanceId": "i-f42d89a6",
                "AutoScalingGroupName": "my-asg",
                "HealthStatus": "HEALTHY",
                "LifecycleState": "InService",
                "LaunchConfigurationName": "my-lc"
            }
        ]
    }