Amazon EC2 Auto Scaling (日本語)
ユーザーガイド

Auto Scaling グループへの EC2 インスタンスのアタッチ

Amazon EC2 Auto Scaling では、1 つ以上の 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

  • 最小サイズ = 1

  • 最大サイズ = 5

  • 希望する容量 = 2

  • アベイラビリティーゾーン = us-west-2a

インスタンスのアタッチ (コンソール)

既存の Auto Scaling グループまたは作成する新しい Auto Scaling グループに既存のインスタンスをアタッチできます。

インスタンスを新しい Auto Scaling グループにアタッチするには

  1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。

  2. ナビゲーションペインで、[インスタンス] を選択します。

  3. インスタンスを選択します。

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

  5. [Attach to Auto Scaling Group] ページで、新しい Auto Scaling グループを選択し、そのグループの名前を入力して、[Attach] を選択します。

    Auto Scaling グループに指定したものと同じ名前で、新しい起動設定を使用して新しい Auto Scaling グループが作成されます。起動設定は、アタッチしたインスタンスから設定(セキュリティグループや IAM ロールなど)を取得します。Auto Scaling グループは、アタッチしたインスタンスから設定(たとえばアベイラビリティーゾーンおよびサブネット) を取得し、希望する容量と最大サイズ 1 があります。

  6. (オプション) Auto Scaling グループの設定を編集するには、ナビゲーションペインの [Auto Scaling] で [Auto Scaling グループ] を選択します。新しい Auto Scaling グループを選択し、[編集] を選択して必要に応じて設定を変更したら、[保存] を選択します。

インスタンスを既存の Auto Scaling グループにアタッチするには

  1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。

  2. (オプション) ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。Auto Scaling グループを選択し、Auto Scaling グループの最大サイズが別のインスタンスを追加できる十分な大きさであることを確認します。それ以外の場合は、[Edit] を選択して最大サイズを増やし、[Save] を選択します。

  3. ナビゲーションペインで、[インスタンス] を選択します。

  4. インスタンスを選択します。

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

  6. [Attach to Auto Scaling Group] ページで、既存の Auto Scaling グループを選択し、インスタンスを選択したら、[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 で、グループには実行中のインスタンスが 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 } ] }