Auto Scaling グループに EC2 インスタンスをアタッチする - Amazon EC2 Auto Scaling

Auto Scaling グループに EC2 インスタンスをアタッチする

Amazon EC2 Auto Scaling では、1 つ以上の EC2 インスタンスを既存のAuto Scaling グループにアタッチするオプションが用意されています。インスタンスがアタッチされると、Auto Scaling グループの一部と見なされます。

インスタンスをアタッチするときは、次の点を考慮してください。

  • インスタンスをアタッチすると、アタッチされるインスタンスの数によって、グループの必要なキャパシティーは増加します。アタッチするインスタンスの数と希望するキャパシティーがグループの最大サイズを超える場合、リクエストは失敗します。

  • インスタンスをロードバランサーターゲットグループまたは Classic Load Balancer にアタッチした Auto Scaling グループにアタッチする場合、インスタンスはロードバランサーに登録されます。

アタッチするインスタンスについては、次の条件を満たす必要があります。

  • インスタンスが Amazon EC2 で running 状態であること。

  • インスタンスの起動に使用する AMI が引き続き存在していること。

  • インスタンスは他の Auto Scaling グループのメンバーではありません。

  • インスタンスは、Auto Scaling グループで定義されているいずれかのアベイラビリティーゾーンに起動されます。

  • Auto Scaling グループにアタッチされたロードバランサーターゲットグループまたは Classic Load Balancer がある場合は、インスタンスおよびロードバランサーは両方とも同じ VPC にある必要があります。

インスタンスをアタッチする (コンソール)

インスタンスを Auto Scaling グループにアタッチするには、以下の手順を使用します。

既存の Auto Scaling グループにインスタンスをアタッチするには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. (オプション) ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。Auto Scaling グループを選択し、Auto Scaling グループの最大サイズが別のインスタンスを追加できる十分な大きさであることを確認します。大きさが十分でない場合は、[詳細] タブで最大キャパシティーを増やします。

  3. ナビゲーションペインの [Instances] (インスタンス) で [Instances] (インスタンス) を選択してから、インスタンスを選択します。

  4. [Actions]、[Instance Settings]、[Attach to Auto Scaling Group] の順に選択します。

  5. [Attach to Auto Scaling Group (Auto Scaling Group にアタッチ)] ページで、[Auto Scaling group (Auto Scalingグループ)] を選択し、[Attach (アタッチ)] を選択します。

  6. インスタンスがこの基準を満たさない場合、エラーメッセージとその詳細が表示されます。たとえば、インスタンスが Auto Scaling グループと同じアベイラビリティーゾーンにない可能性があります。[Close (閉じる)] を選択して、条件を満たすインスタンスでもう一度試してください。

インスタンスをアタッチする (AWS CLI)

インスタンスを Auto Scaling グループにアタッチするには、以下の手順を使用します。

次の例では、次の設定で Auto Scaling グループを使用しています:

  • Auto Scaling グループ名 = my-asg

  • 最小サイズ = 1

  • 最大サイズ = 5

  • 希望するキャパシティー = 2

Auto Scaling グループにインスタンスをアタッチするには
  1. 以下を使用して、特定の Auto Scaling グループについて説明する scaling-groups コマンドを実行します。

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

    以下のレスポンスの例では、希望するキャパシティーが 2 で、グループには実行中のインスタンスが 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 } ] }