Auto Scaling グループからの EC2 インスタンスのデタッチ - Amazon EC2 Auto Scaling

Auto Scaling グループからの EC2 インスタンスのデタッチ

InService 状態にあるインスタンスは、Auto Scaling グループから削除 (デタッチ) することができます。インスタンスをデタッチした後、Auto Scaling グループの残りのメンバーとは別にそれらのインスタンスを管理できます。インスタンスをデタッチすることで、以下のことを行えます。

  • インスタンスを 1 つの Auto Scaling グループから移動して別のグループにアタッチします。詳細については、「Auto Scaling グループに EC2 インスタンスをアタッチする」を参照してください。

  • アプリケーションを実行している既存のインスタンスを使用して Auto Scaling グループを作成し、テストします。テストが完了したら、Auto Scaling グループからインスタンスをデタッチできます。

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

  • デタッチするインスタンス数によって Auto Scaling グループのサイズが最低キャパシティーを下回る場合、インスタンスをデタッチする前にグループの最低キャパシティーを減らす必要があります。

  • インスタンスをデタッチするときは、デタッチするインスタンスの数を Auto Scaling グループの希望するキャパシティーから減らすことができます。キャパシティーを減らさない場合、Amazon EC2 Auto Scaling はデタッチするインスタンスに置き換わる新しいインスタンスを起動します。キャパシティーを減らして、同一アベイラビリティーゾーンから複数のインスタンスをデタッチする場合は、AZRebalance プロセスを中断しない限り、Amazon EC2 Auto Scaling はアベイラビリティーゾーンを再調整できます。詳細については、「Auto Scaling グループのプロセスを中断して再開する」を参照してください。

  • ロードバランサーターゲットグループまたは Classic Load Balancer にアタッチした Auto Scaling グループからインスタンスをデタッチすると、インスタンスはロードバランサーから登録解除されます。ロードバランサーで Connection Draining (登録解除の遅延) が有効になっている場合、Amazon EC2 Auto Scaling は未処理のリクエストが完了するまで待機します。

注記

Standby 状態にあるインスタンスをデタッチする場合は注意してください。Standby 状態にしたインスタンスをデタッチしようとすると、他のインスタンスが予期せず終了することがあります。

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

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

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

  1. https://console.aws.amazon.com/ec2/ でAmazon EC2 コンソールを開き、ナビゲーションペインで [Auto Scaling グループ] を選択します。

  2. Auto Scaling グループの横にあるチェックボックスを選択します。

    [Auto Scaling groups] (Auto Scaling グループ) ページの下部にスプリットペインが開きます。

  3. [Instance management (インスタンス管理)] タブの [Instances (インスタンス)] でインスタンスを選択し、[Actions (アクション)]、[Detach (デタッチ)] の順に選択します。

  4. 代わりのインスタンスを起動する場合、[Detach instance (インスタンスのデタッチ)] ダイアログボックスでチェックボックスを選択し、代わりのインスタンスを起動するか、必要なキャパシティーを減らす場合はチェックボックスをオフのままにしておきます。[Detach instance (インスタンスのデタッチ)] を選択します。

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

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

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

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

  • 最小サイズ = 1

  • 最大サイズ = 5

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

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

  1. 次の describe-auto-scaling-instances コマンドを使用して、現在のインスタンスを一覧表示します。

    aws autoscaling describe-auto-scaling-instances

    次の応答例では、グループに実行中のインスタンスが 4 個あることが示されています。

    { "AutoScalingInstances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0c20ac468fa3049e8", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0787762faf1c28619", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0f280a4c58d319a8a", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" } ] }
  2. 次の detach-instances コマンドを使用して、インスタンスをデタッチし、使用する希望のキャパシティーを減らします。

    aws autoscaling detach-instances --instance-ids i-05b4f7d5be44822a6 \ --auto-scaling-group-name my-asg --should-decrement-desired-capacity
  3. 次の describe-auto-scaling-instances コマンドを使用して、現在のインスタンスをデタッチすることを検証します。

    aws autoscaling describe-auto-scaling-instances

    次の応答例では、実行中のインスタンスが 3 個になったことが示されています。

    { "AutoScalingInstances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0c20ac468fa3049e8", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0787762faf1c28619", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0f280a4c58d319a8a", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" } ] }