Auto Scaling グループからインスタンスを一時的に削除する - Amazon EC2 Auto Scaling

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

Auto Scaling グループからインスタンスを一時的に削除する

インスタンスを InService 状態から Standby 状態に移行でき、インスタンスを更新またはトラブルシューティングして、インスタンスをサービスに返すことができます。スタンバイ状態のインスタンスはまだ Auto Scaling グループの一部ですが、ロードバランサートラフィックをアクティブに処理しません。

この機能を使用すると、Amazon EC2 Auto Scaling がヘルスチェックの一部として、またはスケールインイベント中にインスタンスを終了することを心配することはなく、インスタンスを停止して起動したり、再起動したりできます。

例えば、起動テンプレートまたは起動設定を変更することで、Auto Scaling グループの Amazon マシンイメージ (AMI) をいつでも変更できます。Auto Scaling グループが起動する後続のインスタンスには、この AMI が使用されます。ただし、Auto Scaling グループは現在稼働中のインスタンスを更新しません。これらのインスタンスを終了し、Amazon EC2 Auto Scaling で置き換えるか、インスタンスの更新機能を使用してインスタンスを終了して置き換えることができます。または、インスタンスをスタンバイ状態にしてソフトウェアを更新し、次にインスタンスをサービスに戻すことができます。

Auto Scaling グループからインスタンスをデタッチすることは、インスタンスをスタンバイ状態にすることと似ています。インスタンスをデタッチすると、インスタンスを別のグループにアタッチしたり、スタンドアロンの EC2 インスタンスのようにインスタンスを管理したり、場合によっては終了させたりする場合に便利です。詳細については、「インスタンスをデタッチまたはアタッチする」を参照してください。

スタンバイ状態の仕組み

Auto Scaling グループからインスタンスを一時的に削除できるように、スタンバイ状態は次のように機能します:

  1. ユーザーはインスタンスをスタンバイ状態にします。スタンバイ状態を終了するまで、インスタンスはこの状態のままです。

  2. Auto Scaling グループにアタッチされたロードバランサーターゲットグループまたは Classic Load Balancer がある場合、インスタンスはロードバランサーから登録解除されます。Connection Draining がロードバランサーに対して有効になっている場合、Elastic Load Balancingは登録解除プロセス完了前にデフォルトで 300 秒待ちます。これは、処理中のリクエストの完了に役立ちます。

  3. インスタンスを更新またはトラブルシューティングできます。

  4. スタンバイ状態を終了することにより、インスタンスを稼働状態に戻します。

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

Auto Scaling グループのインスタンスのライフサイクルの詳細については、「Amazon EC2 Auto Scaling インスタンスのライフサイクル」を参照してください。

考慮事項

インスタンスをスタンバイ状態に移行したり、スタンバイ状態から移行したりする際の考慮事項を次に示します。

  • インスタンスをスタンバイ状態にするとき、このオペレーションを通じて必要なキャパシティを減らすことも、同じ値を維持することもできます。

    • Auto Scaling グループの必要なキャパシティを減らさないことを選択した場合、Amazon EC2 Auto Scaling はスタンバイ状態のインスタンスを置き換えるインスタンスを起動します。その目的は、1 つ以上のインスタンスがスタンバイ状態である間にアプリケーションのキャパシティーを維持できるようにすることです。

    • Auto Scaling グループの必要なキャパシティを減らすことを選択すると、スタンバイ状態のインスタンスを置き換えるためのインスタンスを起動できなくなります。

  • インスタンスを稼働状態に戻すと、Auto Scaling グループ内のインスタンスの数を反映するために必要なキャパシティが増加します。

  • 増加 (および減少) を行うには、新しい必要なキャパシティは、最小グループサイズと最大グループサイズの間にある必要があります。それ以外の場合は、このオペレーションは失敗します。

  • インスタンスをスタンバイ状態にした後、またはスタンバイ状態を終了してインスタンスをサービスに戻した後、Auto Scaling グループがアベイラビリティーゾーン間で不均衡であることが判明した場合、Amazon EC2 Auto Scaling は、 AZRebalance プロセスを一時停止しない限り、アベイラビリティーゾーンのバランスを再調整して補正します。詳細については、「Amazon EC2 Auto Scaling プロセスの一時停止と再開」を参照してください。

  • スタンバイ状態のインスタンスに対して課金されます。

スタンバイ状態のインスタンスのヘルスステータス

Amazon EC2 Auto Scaling はスタンバイ状態にあるインスタンスのヘルスチェックを実行しません。インスタンスがスタンバイ状態にあるとき、スタンバイ状態に移行する前の状態がヘルスステータスに反映されます。Amazon EC2 Auto Scaling は、インスタンスを稼働状態に戻すまで、インスタンスのヘルスチェックを実行しません。

例えば、正常なインスタンスをスタンバイ状態に移行して終了する場合、インスタンスは正常であると Amazon EC2 Auto Scaling がレポートし続けます。スタンバイ状態の終了済みインスタンスをサービスに戻そうとすると、Amazon EC2 Auto Scaling はインスタンスのヘルスチェックを実行し、インスタンスが終了していて異常であると判断して、代替インスタンスを起動します。詳細については、「Auto Scaling グループ内のインスタンスのヘルスチェック」を参照してください。

インスタンスをスタンバイに設定して一時的に削除します。

次のいずれかの手順を使用して、インスタンスをスタンバイ状態にして一時的にサービスを停止します。

Console
インスタンスを一時的に削除するには
  1. https://console.aws.amazon.com/ec2/ でAmazon EC2 コンソールを開き、ナビゲーションペインで [Auto Scaling グループ] を選択します。

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

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

  3. [Instance management (インスタンス管理)] タブの [Instances (インスタンス)] で、インスタンスを選択します。

  4. [Actions]、[Set to Standby] を選択します。

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

  6. 確認を求めるプロンプトが表示されたら、指定したインスタンスを Standby 状態にすることを確認するために standby と入力し、[スタンバイに設定] を選択します。

  7. 必要に応じてインスタンスを更新、またはトラブルシューティングできます。終了したら、インスタンスを稼働状態に戻すために次のステップに進みます。

  8. インスタンスを選択し、[Actions]、[Set to] を選択します InService。「設定 InService」ダイアログで「設定」を選択します InService。

AWS CLI

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", "InstanceId": "t3.micro", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, ... ] }
  2. インスタンスを次の enter-standby コマンドを使用して、Standby 状態に移行させます。--should-decrement-desired-capacity オプションは、Auto Scaling グループで代わりのインスタンスが起動されないように希望するキャパシティーを減らします。

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

    以下に、応答の例を示します。

    { "Activities": [ { "ActivityId": "3b1839fe-24b0-40d9-80ae-bcd883c2be32", "AutoScalingGroupName": "my-asg", "Description": "Moving EC2 instance to Standby: i-05b4f7d5be44822a6", "Cause": "At 2023-12-15T21:31:26Z instance i-05b4f7d5be44822a6 was moved to standby in response to a user request, shrinking the capacity from 4 to 3.", "StartTime": "2023-12-15T21:31:26.150Z", "StatusCode": "InProgress", "Progress": 50, "Details": "{\"Subnet ID\":\"subnet-c934b782\",\"Availability Zone\":\"us-west-2a\"}" } ] }
  3. (オプション) Standby describe-auto-scaling-instances次のコマンドを使用して、インスタンスが起動していることを確認します。

    aws autoscaling describe-auto-scaling-instances --instance-ids i-05b4f7d5be44822a6

    以下に、応答の例を示します。インスタンスのステータスが Standby に設定されました。

    { "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": "Standby" }, ... ] }
  4. 必要に応じてインスタンスを更新、またはトラブルシューティングできます。終了したら、インスタンスを稼働状態に戻すために次のステップに進みます。

  5. 次の exit-standby コマンドを使用してインスタンスをサービスに戻します。

    aws autoscaling exit-standby --instance-ids i-05b4f7d5be44822a6 --auto-scaling-group-name my-asg

    以下に、応答の例を示します。

    { "Activities": [ { "ActivityId": "db12b166-cdcc-4c54-8aac-08c5935f8389", "AutoScalingGroupName": "my-asg", "Description": "Moving EC2 instance out of Standby: i-05b4f7d5be44822a6", "Cause": "At 2023-12-15T21:46:14Z instance i-05b4f7d5be44822a6 was moved out of standby in response to a user request, increasing the capacity from 3 to 4.", "StartTime": "2023-12-15T21:46:14.678Z", "StatusCode": "PreInService", "Progress": 30, "Details": "{\"Subnet ID\":\"subnet-c934b782\",\"Availability Zone\":\"us-west-2a\"}" } ] }
  6. (オプション) 以下の describe-auto-scaling-instances コマンドを使用して、インスタンスが稼働状態に戻っていることを確認します。

    aws autoscaling describe-auto-scaling-instances --instance-ids i-05b4f7d5be44822a6

    以下に、応答の例を示します。インスタンスのステータスが InService に設定されました。

    { "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" }, ... ] }