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

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