本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将 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 组
-
打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/
。 -
在导航窗格上的 INSTANCES (实例) 下,选择 Instances (实例),然后选择一个实例。
-
依次选择 Actions、Instance settings 和 Attach to Auto Scaling Group。
-
在 Attach to Auto Scaling group (附加到 Auto Scaling 组) 页面上,对于 Auto Scaling Group (Auto Scaling 组),输入组的名称,然后选择 Attach (附加)。
将使用新的启动配置和为 Auto Scaling 组指定的相同名称创建新的 Auto Scaling 组。启动配置从所附加的实例获取其设置(例如,安全组和 IAM 角色)。Auto Scaling 组从所附加的实例获取设置(例如,可用区和子网),并且有所需的容量和最大大小
1
. -
(可选)要编辑 Auto Scaling 组的设置,请在导航窗格上的 AUTO SCALING 下,选择 Auto Scaling Groups (Auto Scaling 组). 选中新 Auto Scaling 组旁边的复选框,选择组列表上方的 Edit (编辑) 按钮,根据需要更改设置,然后选择 Update (更新).
将实例附加到现有 Auto Scaling 组
-
打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/
。 -
(可选)在导航窗格上的 AUTO SCALING 下,选择 Auto Scaling Groups (Auto Scaling 组). 选择 Auto Scaling 组并验证 Auto Scaling 组的最大大小足够大,可以再添加一个实例。否则,在 Details (详细信息) 选项卡上,增加最大容量。
-
在导航窗格上的 INSTANCES (实例) 下,选择 Instances (实例),然后选择一个实例。
-
依次选择 Actions、Instance settings 和 Attach to Auto Scaling Group。
-
在 Attach to Auto Scaling group (附加到 Auto Scaling 组) 页面上,对于 Auto Scaling Group (Auto Scaling 组),选择 Auto Scaling 组,然后选择 Attach (附加)。
-
如果实例不符合条件,则会显示一条错误消息并提供详细信息。例如,实例可能没有位于与 Auto Scaling 组相同的可用区中。选择 Close,然后使用满足条件的实例重试。
附加实例 (AWS CLI)
将实例附加到 Auto Scaling 组
-
使用以下 Auto Scalingdescribe-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 } ] }
-
使用以下 Auto Scalingattach-instances 命令将实例附加到 组。
aws autoscaling attach-instances --instance-ids
i-0787762faf1c28619
--auto-scaling-group-namemy-asg
-
要验证是否已附加实例,请使用以下 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 } ] }