将 EC2 实例附加到 Auto Scaling 组 - Amazon EC2 Auto Scaling
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将 EC2 实例附加到 Auto Scaling 组

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

要附加的实例必须满足以下条件:

  • 实例处于 running 状态。

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

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

  • 实例会启动到 Auto Scaling 组中定义的某个可用区。

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

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

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

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

  • Auto Scaling 组名称 = my-asg

  • 最小大小 = 2

  • 最大大小 = 5

  • 所需容量 = 2

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

附加实例(控制台)

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

将实例附加到新 Auto Scaling 组

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格上的 INSTANCES (实例) 下,选择 Instances (实例),然后选择一个实例。

  3. 选择操作实例设置附加到 Auto Scaling 组.

  4. 在存储库的附加到 Auto Scaling 组页面, 对Auto Scaling 组,输入组的名称,然后选择Attach.

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

  5. (可选)要编辑 Auto Scaling 组的设置,请在导航窗格中的AUTO SCALING中,选择Auto Scaling 组. 选中新 Auto Scaling 组旁的复选框,选择编辑按钮,根据需要更改设置,然后选择更新.

将实例附加到现有 Auto Scaling 组

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. (可选)在导航窗格上的 AUTO SCALING 下,选择 Auto Scaling Groups (Auto Scaling 组)。选择 Auto Scaling 组并验证 Auto Scaling 组的最大大小足够大,可以再添加一个实例。否则,在 Details (详细信息) 选项卡上,增加最大容量。

  3. 在导航窗格上的 INSTANCES (实例) 下,选择 Instances (实例),然后选择一个实例。

  4. 选择操作实例设置附加到 Auto Scaling 组.

  5. 在存储库的附加到 Auto Scaling 组页面, 对Auto Scaling 组中,选择 Auto Scaling 组,然后选择 Auto Scaling 组,Attach.

  6. 如果实例不符合条件,则会显示一条错误消息并提供详细信息。例如,实例可能没有位于与 Auto Scaling 组相同的可用区中。选择 Close 并使用符合条件的实例重试。

附加一个实例 (Amazon CLI)

将实例附加到 Auto Scaling 组

  1. 使用以下内容描述特定的 Auto Scaling 组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. 使用以下方法将实例附加到 Auto Scaling 组附加实例命令。

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

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