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

将 EC2 实例附加到 Auto Scaling 组

Amazon EC2 Auto Scaling 为您提供了一个选项,可通过将一个或多个 EC2 实例附加到现有 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 组名称 = my-asg

  • 最小大小 = 2

  • 最大大小 = 5

  • 所需容量 = 2

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

附加实例(控制台)

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

将实例附加到新 Auto Scaling 组

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

  2. 在导航窗格中,选择实例

  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 组)。选择新 Auto Scaling 组,再选择 Edit (编辑),根据需要更改设置,然后选择 Save (保存)

将实例附加到现有 Auto Scaling 组

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

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

  3. 在导航窗格中,选择实例

  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)

将实例附加到 Auto Scaling 组

  1. 描述使用以下 describe-auto-scaling-groups 命令特定的 Auto Scaling 组。

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

    以下示例响应显示所需的容量为 2,并且组具有两个运行的实例:

    { "AutoScalingGroups": [ { "AutoScalingGroupARN": "arn", "ServiceLinkedRoleARN": "arn", "TargetGroupARNs": [], "SuspendedProcesses": [], "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "Tags": [], "EnabledMetrics": [], "LoadBalancerNames": [], "AutoScalingGroupName": "my-asg", "DefaultCooldown": 300, "MinSize": 1, "Instances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "HealthStatus": "Healthy", "LifecycleState": "Pending" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0c20ac468fa3049e8", "HealthStatus": "Healthy", "LifecycleState": "InService" } ], "MaxSize": 5, "VPCZoneIdentifier": "subnet-c87f2be0", "HealthCheckGracePeriod": 300, "TerminationPolicies": [ "Default" ], "CreatedTime": "2019-03-18T23:30:42.611Z", "AvailabilityZones": [ "us-west-2a" ], "HealthCheckType": "EC2", "NewInstancesProtectedFromScaleIn": false, "DesiredCapacity": 2 } ] }
  2. 使用以下 attach-instances 命令将实例附加到 Auto Scaling 组。

    aws autoscaling attach-instances --instance-ids i-0787762faf1c28619 --auto-scaling-group-name my-asg
  3. 要验证是否已附加实例,请使用 describe-auto-scaling-groups命令。

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

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

    { "AutoScalingGroups": [ { "AutoScalingGroupARN": "arn", "ServiceLinkedRoleARN": "arn", "TargetGroupARNs": [], "SuspendedProcesses": [], "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "Tags": [], "EnabledMetrics": [], "LoadBalancerNames": [], "AutoScalingGroupName": "my-asg", "DefaultCooldown": 300, "MinSize": 1, "Instances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "HealthStatus": "Healthy", "LifecycleState": "Pending" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0c20ac468fa3049e8", "HealthStatus": "Healthy", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0787762faf1c28619", "HealthStatus": "Healthy", "LifecycleState": "InService" } ], "MaxSize": 5, "VPCZoneIdentifier": "subnet-c87f2be0", "HealthCheckGracePeriod": 300, "TerminationPolicies": [ "Default" ], "CreatedTime": "2019-03-18T23:30:42.611Z", "AvailabilityZones": [ "us-west-2a" ], "HealthCheckType": "EC2", "NewInstancesProtectedFromScaleIn": false, "DesiredCapacity": 3 } ] }