将EC2实例附加到您的 Auto Scaling 组 - 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. 附加到自动缩放组 页面,选择 一个新的自动扩展组,输入组的名称,然后选择 附加.

    全新 Auto Scaling 使用您为 Auto Scaling 组。启动配置从所附加的实例获取其设置(例如,安全组和 IAM 角色)。TheThethe Auto Scaling 组从附加的实例获取设置(例如,可用性区域和子网),并且具有所需的容量和最大大小 1.

  5. (可选)编辑 Auto Scaling 组,在导航窗格中, 自动缩放,选择 自动缩放组. 选择新建旁边的复选框 Auto Scaling 组,选择 编辑 按钮位于组列表上方,根据需要更改设置,然后选择 更新.

将实例附加到现有 Auto Scaling 组

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

  2. (可选)在导航窗格中, 自动缩放,选择 自动缩放组. 选择 Auto Scaling 并验证 Auto Scaling 组足够大,您可以添加另一个实例。否则, 详情 选项卡,增加最大容量。

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

  4. 选择 操作实例设置附加到自动缩放组.

  5. 附加到自动缩放组 页面,选择 现有自动缩放组,选择一个实例,然后选择 附加.

  6. 如果实例不符合条件,则会显示一条错误消息并提供详细信息。例如,实例可能没有位于与 Auto Scaling 组相同的可用区中。选择 关闭 然后再次尝试符合标准的实例。

附加实例(AWS CLI)

将实例附加到 Auto Scaling 组

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

    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. 将实例附加到 Auto Scaling 使用以下内容 attach-instances 命令。

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