Auto Scaling グループからインスタンスをデタッチまたはアタッチする - Amazon EC2 Auto Scaling

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Auto Scaling グループからインスタンスをデタッチまたはアタッチする

Auto Scaling グループからインスタンスをデタッチできます。インスタンスがデタッチされると、そのインスタンスは独立し、単独で管理することも、属していた元のグループとは別の別の Auto Scaling グループにアタッチすることもできます。これは、例えば、すでにアプリケーションを実行している既存のインスタンスを使用してテストを実行する場合に便利です。

このトピックでは、インスタンスをデタッチおよびアタッチする方法について説明します。インスタンスをアタッチするときは、デタッチされたインスタンスではなく既存のインスタンスを使用することもできます。

インスタンスをデタッチして同じグループに再アタッチする代わりに、スタンバイ手順を使用してインスタンスをグループから一時的に削除することをお勧めします。詳細については、「Auto Scaling グループからインスタンスを一時的に削除する」を参照してください。

インスタンスのデタッチに関する考慮事項

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

  • インスタンスをデタッチできるのは、インスタンスが InService状態にある場合のみです。

  • インスタンスをデタッチした後も、インスタンスの実行が継続され、料金が発生します。不要な料金が発生しないように、デタッチされたインスタンスが不要になったら、再アタッチまたは終了してください。

  • デタッチするインスタンスの数に応じて、希望する容量を減らすことができます。容量を減らしない場合、Amazon EC2 Auto Scaling は新しいインスタンスを起動して、デタッチされたインスタンスを置き換え、必要な容量を維持します。

  • デタッチするインスタンスの数によって Auto Scaling グループが最小容量を下回る場合は、最小容量を減らす必要があります。

  • 必要な容量を減らさずに同じアベイラビリティーゾーンから複数のインスタンスをデタッチすると、AZRebalanceプロセスを停止しない限り、グループは再調整されます。詳細については、「Amazon EC2 Auto Scaling プロセスの一時停止と再開」を参照してください。

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

注記

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

インスタンスをアタッチする際の考慮事項

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

  • Amazon EC2 Auto Scaling は、アタッチされたインスタンスを、グループ自体によって起動されたインスタンスと同じように扱います。つまり、アタッチされたインスタンスは、スケールインイベント中に選択された場合に終了できます。AWSServiceRoleForAutoScaling サービスにリンクされたロールによって付与されたアクセス許可により、Amazon EC2 Auto Scaling はこれを行うことができます。

  • インスタンスをアタッチすると、アタッチされるインスタンスの数によって、グループの必要なキャパシティーは増加します。新しいインスタンスを追加した後に必要な容量がグループの最大サイズを超えると、より多くのインスタンスをアタッチするリクエストは失敗します。

  • アベイラビリティーゾーン間で分散が不均等になるインスタンスをグループに追加すると、Amazon EC2 Auto Scaling はグループを再調整して、AZRebalanceプロセスを停止しない限り、均等分散を再確立します。詳細については、「Amazon EC2 Auto Scaling プロセスの一時停止と再開」を参照してください。

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

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

  • インスタンスは Amazon の running状態ですEC2。

  • インスタンスの起動AMIに使用される は、まだ存在している必要があります。

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

  • インスタンスは、Auto Scaling グループで定義されたアベイラビリティーゾーンの 1 つで起動されます。

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

デタッチとアタッチを使用してインスタンスを別のグループに移動する

次のいずれかの手順を使用して、Auto Scaling グループからインスタンスをデタッチし、別の Auto Scaling グループにアタッチします。

デタッチされたインスタンスから新しい Auto Scaling グループを作成するには、「」を参照してください 既存のインスタンスからのパラメータを使用して Auto Scaling グループを作成する (推奨されません。起動設定を作成します)。

Console
Auto Scaling グループからインスタンスをデタッチするには
  1. で Amazon EC2コンソールを開きhttps://console.aws.amazon.com/ec2/、ナビゲーションペインから Auto Scaling Groups を選択します。

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

    ページの下部にスプリットペインが開きます。

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

  4. [インスタンスをデタッチ] ダイアログボックスで、[インスタンスを置き換える] チェックボックスをオンのままにして、置換インスタンスを起動します。必要なキャパシティを減らすには、チェックボックスをオフにします。

  5. 確認を求めるプロンプトが表示されたら、指定したインスタンスを Auto Scaling グループから削除することを確認するために detach と入力し、[インスタンスのデタッチ] を選択します。

インスタンスを別の 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 グループと同じアベイラビリティーゾーンにない可能性があります。閉じる を選択して、基準を満たす Auto Scaling グループでもう一度試してください。

AWS CLI

インスタンスをデタッチしてアタッチするには、次のコマンド例を使用します。各 を置き換える user input placeholder 自分の情報を入力します。

Auto Scaling グループからインスタンスをデタッチするには
  1. 現在のインスタンスを記述するには、次のdescribe-auto-scaling-instancesコマンドを使用します。

    aws autoscaling describe-auto-scaling-instances \ --query 'AutoScalingInstances[?AutoScalingGroupName==`my-asg`]'

    次の例は、このコマンドを実行したときに生成される出力を示しています。

    グループから削除するインスタンスの ID を書き留めます。この ID は次のステップで必要になります。

    { "AutoScalingInstances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "InstanceType": "t3.micro", "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", "InstanceType": "t3.micro", "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", "InstanceType": "t3.micro", "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", "InstanceType": "t3.micro", "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オプションを含めます。

    aws autoscaling detach-instances --instance-ids i-05b4f7d5be44822a6 \ --auto-scaling-group-name my-asg --should-decrement-desired-capacity

インスタンスを別の Auto Scaling グループにアタッチできるようになりました。

Auto Scaling グループにインスタンスをアタッチするには
  1. インスタンスを別の Auto Scaling グループにアタッチするには、次の attach-instances コマンドを使用します。

    aws autoscaling attach-instances --instance-ids i-05b4f7d5be44822a6 --auto-scaling-group-name my-asg-for-testing
  2. インスタンスをアタッチした後に Auto Scaling グループのサイズを確認するには、次のdescribe-auto-scaling-groupsコマンドを使用します。

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

    次のレスポンス例は、グループに実行中のインスタンスが 2 つあり、そのうちの 1 つがアタッチしたインスタンスであることを示しています。

    { "AutoScalingGroups": [ { "AutoScalingGroupName": "my-asg-for-testing", "AutoScalingGroupARN": "arn", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "2", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "MinSize": 1, "MaxSize": 5, "DesiredCapacity": 2, ... "Instances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "InstanceType": "t3.micro", "HealthStatus": "Healthy", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "2", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-00dcdfffdf5175890", "InstanceType": "t3.micro", "HealthStatus": "Healthy", "LifecycleState": "InService" } ], ... } ] }