Auto Scaling
用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

将 EC2 实例附加到 Auto Scaling 组

Auto Scaling 为您提供了一个选项,可通过将一个或多个 EC2 实例附加到现有 Auto Scaling 组来为这些实例启用 Auto Scaling。附加实例后,它们将成为 Auto Scaling 组的一部分。

要挂载的实例必须满足以下条件:

  • 实例处于 running 状态。

  • 用于启动实例的 AMI 必须仍然存在。

  • 实例不是其他 Auto Scaling 组的成员。

  • 实例与 Auto Scaling 组位于同一可用区。

  • 如果 Auto Scaling 组具有附加的传统负载均衡器,则实例和该负载均衡器必须都位于 EC2- 或同一 VPC 中。如果 Auto Scaling 组具有附加的目标组,则实例和负载均衡器必须都位于同一 VPC 中。

当您附加实例时,Auto Scaling 会将该组的所需容量与要附加的实例数相加。如果要附加的实例数加上所需容量超过组的最大大小,请求将失败。

如果您将实例附加到已具有附加负载均衡器的 Auto Scaling 组,则实例将注册到该负载均衡器。如果您将实例附加到已具有附加目标组的 Auto Scaling 组,则实例将注册到该目标组。

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

  • Auto Scaling 组名称 = my-asg

  • 最小大小 = 1

  • 最大大小 = 5

  • 所需容量 = 2

  • 可用区 = us-west-2a

使用 AWS 管理控制台挂载实例

您可以将现有实例挂载到现有 Auto Scaling 组或在创建新 Auto Scaling 组时挂载到新建的组。

使用控制台将实例挂载到新 Auto Scaling 组

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

  2. 在导航窗格中,选择 Instances

  3. 选择实例。

  4. 依次选择 ActionsInstance SettingsAttach to Auto Scaling Group

  5. Attach to Auto Scaling Group 页面上,选择 a new Auto Scaling group,键入组名,然后选择 Attach

    将使用新的启动配置和为 Auto Scaling 组指定的相同名称创建新的 Auto Scaling 组。启动配置从所挂载的实例获取其设置(例如,安全组和 IAM 角色)。Auto Scaling 组从所挂载的实例获取设置(例如,可用区和子网),并且有所需的容量和最大大小 1

  6. (可选)要编辑 Auto Scaling 组的设置,请在导航窗格上的 Auto Scaling 下,选择 Auto Scaling Groups。选择新 Auto Scaling 组,再选择 Edit,根据需要更改设置,然后选择 Save

使用控制台将实例挂载到现有 Auto Scaling 组

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

  2. (可选)在导航窗格上的 Auto Scaling 下,选择 Auto Scaling Groups。选择 Auto Scaling 组并验证 Auto Scaling 组的最大大小足够大,可以再添加一个实例。否则,请选择 Edit,增加最大大小,然后选择 Save

  3. 在导航窗格中,选择 Instances

  4. 选择实例。

  5. 依次选择 ActionsInstance SettingsAttach to Auto Scaling Group

  6. Attach to Auto Scaling Group 页面上,选择 an existing Auto Scaling group,选择实例,然后选择 Attach

  7. 如果实例不符合条件 (例如,与 Auto Scaling 组不在同一可用区中),则系统会提供带详细信息的错误消息。选择 Close 并使用符合条件的实例重试。

使用 AWS CLI 挂载实例

使用 AWS CLI 将实例挂载到 Auto Scaling 组

  1. 使用下面的 describe-auto-scaling-groups 命令描述一个特定的 Auto Scaling 组:

    Copy
    aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names my-asg

    下面的示例响应显示所需容量为 2 并且组有两个正在运行的实例:

    {
        "AutoScalingGroups": [
            {
                "AutoScalingGroupARN": "arn",
                "HealthCheckGracePeriod": 300,
                "SuspendedProcesses": [],
                "DesiredCapacity": 2,
                "Tags": [],
                "EnabledMetrics": [],
                "LoadBalancerNames": [],
                "AutoScalingGroupName": "my-asg",
                "DefaultCooldown": 300,
                "MinSize": 1,
                "Instances": [
                    {
                        "InstanceId": "i-a5e87793",
                        "AvailabilityZone": "us-west-2a",
                        "HealthStatus": "Healthy",
                        "LifecycleState": "InService",
                        "LaunchConfigurationName": "my-lc"
                    },
                    {
                        "InstanceId": "i-a4e87792",
                        "AvailabilityZone": "us-west-2a",
                        "HealthStatus": "Healthy",
                        "LifecycleState": "InService",
                        "LaunchConfigurationName": "my-lc"
                    }
                ],
                "MaxSize": 5,
                "VPCZoneIdentifier": "subnet-e4f33493",
                "TerminationPolicies": [
                    "Default"
                ],
                "LaunchConfigurationName": "my-lc",
                "CreatedTime": "2014-12-12T23:30:42.611Z",
                "AvailabilityZones": [
                    "us-west-2a"
                ],
                "HealthCheckType": "EC2"
            }
        ]
    }
  2. 使用下面的 attach-instances 命令将一个实例挂载到 Auto Scaling 组:

    Copy
    aws autoscaling attach-instances --instance-ids i-a8e09d9c --auto-scaling-group-name my-asg
  3. 要验证实例是否已挂载,请使用下面的 describe-auto-scaling-groups 命令:

    Copy
    aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names my-asg

    下面的示例响应显示所需容量已从 1 增加到 3,并且有一个新实例 i-a8e09d9c

    {
        "AutoScalingGroups": [
            {
                "AutoScalingGroupARN": "arn",
                "HealthCheckGracePeriod": 300,
                "SuspendedProcesses": [],
                "DesiredCapacity": 3,
                "Tags": [],
                "EnabledMetrics": [],
                "LoadBalancerNames": [],
                "AutoScalingGroupName": "my-asg",
                "DefaultCooldown": 300,
                "MinSize": 1,
                "Instances": [
                    {
                        "InstanceId": "i-a8e09d9c",
                        "AvailabilityZone": "us-west-2a",
                        "HealthStatus": "Healthy",
                        "LifecycleState": "InService",
                        "LaunchConfigurationName": "my-lc"
                    },
                    {
                        "InstanceId": "i-a5e87793",
                        "AvailabilityZone": "us-west-2a",
                        "HealthStatus": "Healthy",
                        "LifecycleState": "InService",
                        "LaunchConfigurationName": "my-lc"
                    },
                    {
                        "InstanceId": "i-a4e87792",
                        "AvailabilityZone": "us-west-2a",
                        "HealthStatus": "Healthy",
                        "LifecycleState": "InService",
                        "LaunchConfigurationName": "my-lc"
                    }
                ],
                "MaxSize": 5,
                "VPCZoneIdentifier": "subnet-e4f33493",
                "TerminationPolicies": [
                    "Default"
                ],
                "LaunchConfigurationName": "my-lc",
                "CreatedTime": "2014-12-12T23:30:42.611Z",
                "AvailabilityZones": [
                    "us-west-2a"
                ],
                "HealthCheckType": "EC2"
            }
        ]
    }