Amazon EC2 Auto Scaling の手動スケーリング - Amazon EC2 Auto Scaling

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

Amazon EC2 Auto Scaling の手動スケーリング

Auto Scaling グループの EC2 インスタンスの数はいつでも手動で調整できます。インスタンス数を手動で変更するこのプロセスは、手動スケーリングと呼ばれます。手動スケーリングはauto スケーリングの代替手段であり、特に 1 回限りの容量変更を行う場合に役立ちます。

グループを手動でスケーリングすると、Amazon EC2 Auto Scaling は、定義したスケーリングポリシーとスケジュールされたアクションに基づいて通常の自動スケーリングアクティビティを再開します。デフォルトのインスタンスウォームアップが有効になっているグループでは、新しいインスタンスは auto Scaling に使用されるメトリックスへの貢献を開始する前にウォームアップ期間を経ます。このウォームアップ期間は、グループを新しい容量で安定させるのに役立ちます。詳細については、「Auto Scaling グループに対するインスタンスのデフォルトウォームアップを設定する」を参照してください。

グループを手動でスケーリングする前に、スケーリングポリシーとスケジュールされたアクションを一時的に無効にしたい場合があります。そうすることで、手動スケーリングアクションと自動スケーリングアクティビティの間に矛盾が生じるのを防ぐことができます。詳細については、「スケーリングアクティビティをオフにします。」を参照してください。

既存の Auto Scaling グループの希望容量を変更する

Auto Scaling グループの希望する容量を変更すると、Amazon EC2 Auto Scaling は、新しい希望のサイズになるようにインスタンスを起動および終了するプロセスを管理します。

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

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

    ページの下部に分割ペインが表示されます。

  3. [詳細] タブで、[グループの詳細]、[編集] の順に選択します。

  4. [必要な容量] で、必要な容量を増減します。たとえば、グループのサイズを 1 つ増やすには、現在の値がの場合1、と入力します2

    [希望容量] の新しい値が [最小必要容量] と [最大希望容量] よりも大きい場合、[最大必要容量] は新しい希望容量値まで自動的に増加します。

  5. 完了したら、[更新] を選択します。

指定したグループサイズによって、同じ量のインスタンスが起動されることを確認します。たとえば、グループのサイズを 1 つ増やした場合、Auto Scaling グループが追加で 1 つのインスタンスを起動したことを確認します。

Auto Scaling グループのサイズが変更されたことを確認するには
  1. アクティビティ」タブの「アクティビティ履歴」では、Auto Scaling グループに関連付けられているアクティビティの進行状況を確認できます。[ステータス] 列には、インスタンスの現在のステータスが表示されます。インスタンスが起動している間、ステータス列には [Not yet in service] と表示されます。ステータスは、インスタンスが起動されると Successful に変わります。更新アイコンを使用して、インスタンスの現在のステータスを確認することもできます。詳細については、「Auto Scaling グループのスケーリングアクティビティを検証する」を参照してください。

  2. [インスタンス] の [インスタンス管理] タブでは、インスタンスのステータスを表示できます。インスタンスの起動には短時間かかります。

    • [ライフサイクル] 列には、インスタンスの状態が表示されます。最初、インスタンスの状態は Pending です。インスタンスがトラフィックを受信できるようになったら、そのステータスは InService です。

    • Health ステータス列には、インスタンスの Amazon EC2 Auto Scaling ヘルスチェックの結果が表示されます。

AWS CLI

以下の例では、最小サイズが 1 で、最大サイズが 5 である Auto Scaling グループを作成したことを前提としています。したがって、このグループでは現在インスタンスを実行中です。

Auto Scaling グループのサイズを変更するには

以下の例に示すように、set-desired-capacityコマンドを使用して Auto Scaling グループのサイズを変更します。

aws autoscaling set-desired-capacity --auto-scaling-group-name my-asg \ --desired-capacity 2

Auto Scaling グループのデフォルトのクールダウン期間を受け入れることを選択した場合は、以下の例に示しているように –-honor-cooldown オプションを指定する必要があります。詳細については、「Amazon EC2 Auto Scaling のスケーリングクールダウン」を参照してください。

aws autoscaling set-desired-capacity --auto-scaling-group-name my-asg \ --desired-capacity 2 --honor-cooldown
Auto Scaling グループのサイズを確認するには

以下の例のように、describe-auto-scaling-groupsコマンドを使用して Auto Scaling グループのサイズが変更されたことを確認します。

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

以下は出力例で、グループと起動されたインスタンスに関する詳細が表示されます。

{ "AutoScalingGroups": [ { "AutoScalingGroupName": "my-asg", "AutoScalingGroupARN": "arn", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "MinSize": 1, "MaxSize": 5, "DesiredCapacity": 2, "DefaultCooldown": 300, "AvailabilityZones": [ "us-west-2a" ], "LoadBalancerNames": [], "TargetGroupARNs": [], "HealthCheckType": "EC2", "HealthCheckGracePeriod": 300, "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": "Pending" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0c20ac468fa3049e8", "InstanceType": "t3.micro", "HealthStatus": "Healthy", "LifecycleState": "InService" } ], "CreatedTime": "2019-03-18T23:30:42.611Z", "SuspendedProcesses": [], "VPCZoneIdentifier": "subnet-c87f2be0", "EnabledMetrics": [], "Tags": [], "TerminationPolicies": [ "Default" ], "NewInstancesProtectedFromScaleIn": false, "ServiceLinkedRoleARN": "arn", "TrafficSources": [] } ] }

DesiredCapacity が新しい値を示していることに注意してください。また、Auto Scaling グループによって追加のインスタンスが起動されています。

Auto Scaling グループのインスタンスを終了する (AWS CLI)

Auto Scaling グループを手動でスケールインしたいが、特定のインスタンスを終了したい場合があります。次の例に示すように、terminate-instance-in-auto-scaling-group コマンドを使用し、終了するインスタンスの ID --should-decrement-desired-capacity とオプションを指定することで、Auto Scaling グループを手動でスケーリングできます。

aws autoscaling terminate-instance-in-auto-scaling-group \ --instance-id i-026e4c9f62c3e448c --should-decrement-desired-capacity

以下は、スケーリングアクティビティの詳細を示す出力例です。

{ "Activities": [ { "ActivityId": "b8d62b03-10d8-9df4-7377-e464ab6bd0cb", "AutoScalingGroupName": "my-asg", "Description": "Terminating EC2 instance: i-026e4c9f62c3e448c", "Cause": "At 2023-09-23T06:39:59Z instance i-026e4c9f62c3e448c was taken out of service in response to a user request, shrinking the capacity from 1 to 0.", "StartTime": "2023-09-23T06:39:59.015000+00:00", "StatusCode": "InProgress", "Progress": 0, "Details": "{\"Subnet ID\":\"subnet-6194ea3b\",\"Availability Zone\":\"us-west-2c\"}" } ] }

このオプションはコンソールでは利用できません。ただし、Amazon EC2 コンソールのインスタンスページを使用して Auto Scaling グループのインスタンスを終了できます。これを行うと、Amazon EC2 Auto Scaling はインスタンスが実行中でなくなったことを検出し、ヘルスチェックプロセスの一環として自動的に置き換えます。インスタンスを終了してから新しいインスタンスが起動するまでに 1 ~ 2 分かかります。インスタンスを終了する方法については、『Linux インスタンス用 Amazon EC2 ユーザーガイド』の「インスタンスの削除」を参照してください。

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