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

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

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

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

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

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

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

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

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

  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 です。

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

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

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