Amazon EC2 Auto Scaling のスケジュールされたスケーリング - Amazon EC2 Auto Scaling (日本語)

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

Amazon EC2 Auto Scaling のスケジュールされたスケーリング

スケジュールされたスケーリングにより、予想可能な負荷の変化に応じた独自のスケーリングスケジュールを設定できます。たとえば、毎週、ウェブアプリケーションへのトラフィックが水曜日に増え始め、木曜日は高いままで、金曜日に減り始めるとします。Amazon EC2 Auto Scaling では、水曜日に容量を増やし、金曜日に減らすようにスケジュールを設定できます。

スケジュールされたスケーリングを使用するには、のスケジュールされたアクション。スケジュールされたアクションは、日付と時刻に基づいて自動的に実行されます。スケジュールされたアクションを作成する際、スケーリングアクティビティーが起こる時刻、スケーリングアクションの新しい希望するサイズ、最小サイズ、最大サイズを指定します。スケジュールされたアクションは1回だけ、または反復して行われるように作成できます。

Considerations

スケジュールされたアクションを作成する場合、次の点に注意してください。

  • スケジュールされたアクションは、希望サイズ、最小サイズ、最大サイズを、スケジュールされたアクションで指定されたサイズに設定します。リクエストには、オプションで、これらのサイズの 1 つだけを含めることができます。たとえば、希望するキャパシティのみを指定してスケジュールされたアクションを作成できます。ただし、新しい希望する容量がこれらの制限を超えないようにするために、最小サイズと最大サイズを含める必要があります。

  • 既定では、設定した時刻は協定世界時 (UTC) です。AWS CLI または SDK を使用して cron 式を使用して定期的なスケジュールを指定する場合、ローカルタイムゾーンまたはネットワークの他の部分のタイムゾーンに対応するタイムゾーンに対応するタイムゾーンに変更できます。夏時間 (DST) を監視するタイムゾーンを指定すると、定期的な操作によって夏時間に合わせて自動的に調整されます。

  • 定期的なスケジュールを指定する場合は、開始時刻、終了時刻、またはその両方の日付と時刻を指定できます。

    • 開始時刻と終了時刻を慎重に選択します。開始時刻と終了時刻は UTC で設定する必要があります。

    • 開始時刻を指定した場合、Amazon EC2 Auto Scaling はこの時刻にアクションを実行し、指定された繰り返しに基づいてアクションを実行します。

    • 終了時刻を指定すると、この時刻以降にアクションの繰り返しが停止します。スケジュールされたアクションは、終了時刻に達するとアカウントに残りません。

  • 必要に応じて、スケジュールされたスケーリングをいつでも無効にして再度有効にできます。詳細については、「スケーリングプロセスの中断と再開」を参照してください。

  • スケジュールされたアクションの実行順序は、それらのアクションが同じグループ内で実行される場合は維持されますが、複数のグループ間で実行される場合は必ずしも維持されません。

  • 通常、スケジュールされたオペレーションは数秒以内に実行されます。ただし、アクションは、スケジュールされた開始時間から最大 2 分遅れる場合があります。Auto Scaling グループ内のアクションは指定された順序で実行されるため、スケジュールされている開始時間が互いに近い、スケジュールされたアクションの実行には時間がかかる可能性があります。

警告

現在、タイムゾーン機能は AWS CLI または SDK を使用している場合にのみ使用でき、コンソールからは使用できません。タイムゾーンを指定して定期的なスケジュールを指定すると、cron 式では指定されたタイムゾーンが使用されます。これは、CLI または SDK からスケジュールされたアクションを記述することで確認できます。コンソールを使用してスケジュールされたアクションを繰り返しスケジュールで更新する場合、この更新アクションはタイムゾーンを削除します(設定されている場合)。デフォルトでは、cron 式は UTC に設定されます。

スケジュールされたアクションの作成と管理 (コンソール)

コンソールを使用して、スケジュールされたアクションは 1 回のみ、または反復してスケーリングするように作成できます。スケジュールされたアクションを作成して Auto Scaling グループをスケーリングするには、以下の手順を実行します。

Auto Scaling グループのスケジュールされたアクションを作成するには

  1. Amazon EC2 Auto Scaling コンソール (以下) を開きます。https://console.aws.amazon.com/ec2autoscaling/

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

    [Auto Scaling グループ] ページの下部に分割ペインが開き、選択したグループに関する情報が表示されます。

  3. [Automatic scaling (自動スケーリング)] タブの [Scheduled actions (スケジュールされたアクション)] で、[Create scheduled action (スケジュールされたアクションの作成)] を選択します。

  4. 「」と入力します。名前スケジュールされたアクションです。

  5. を使用する場合希望する容量Maxで、グループの新しい希望のサイズと、新しい最小容量と最大容量を選択します。

  6. を使用する場合繰り返し[] で、使用可能なオプションの 1 つを選択します。

    • スケーリングを 1 回だけ行う場合は、Once

    • 定期的にスケーリングする場合は、Amazon EC2 Auto Scaling がスケジュールされたアクションを実行する頻度を選択します。

      • [Every (毎)] で始まるオプションを選択した場合、cron 式が作成されます。

      • [Cron] を選択した場合は、いつアクションを実行するかを UTC で指定する Cron 式を入力します。Cron 式形式は、空白で区切られた 5 つのフィールドで構成されます。この形式の詳細については、「Crontab」を参照してください。cron 式の例については、https://crontab.guru/examples.html

  7. 定義する開始時間(UTC)。

    • [] を選択した場合Onceを反復として使用する場合、開始時刻は、スケジュールアクションを実行する日付と時刻を定義します。

    • 繰り返し実行するオプションを選択した場合、開始時間によって、定期的なシリーズの最初のスケジュールされたアクションが実行されるタイミングが定義されます。

  8. (オプション) 繰り返しアクションの場合は、終了時間(UTC)。

  9. [Create] を選択します。

    コンソールには、Auto Scaling グループのスケジュールされたアクションが表示されます。

Auto Scaling グループのスケジュールされたアクションを作成するには (旧コンソール)

  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。

  3. Auto Scaling グループを選択します。

  4. [Scheduled Actions] タブで、[Create Scheduled Action] を選択します。

  5. [Create Scheduled Action (スケジュールされたアクションの作成)] ページで、以下のことを行います。

    • 少なくとも 1 つを使用して、グループのサイズを指定します。Max, または希望する容量

    • を使用する場合繰り返し[] で、使用可能なオプションの 1 つを選択します。

      • スケーリングを 1 回だけ行う場合は、Once

      • 定期的にスケーリングする場合は、Amazon EC2 Auto Scaling がスケジュールされたアクションを実行する頻度を選択します。

        • [Every (毎)] で始まるオプションを選択した場合、cron 式が作成されます。

        • [Cron] を選択した場合は、いつアクションを実行するかを UTC で指定する Cron 式を入力します。Cron 式形式は、空白で区切られた 5 つのフィールドで構成されます。この形式の詳細については、「Crontab」を参照してください。cron 式の例については、https://crontab.guru/examples.html

    • 定義する開始時間

      • [] を選択した場合Onceを反復として使用する場合、開始時刻は、スケジュールアクションを実行する日時を定義します。

      • 繰り返し実行するオプションを選択した場合、開始時間によって、定期的なシリーズの最初のスケジュールされたアクションが実行されるタイミングが定義されます。

    • (オプション) 定期的なスケジュールを指定した場合、End Time (終了時刻)

  6. [Create] を選択します。

    コンソールには、Auto Scaling グループのスケジュールされたアクションが表示されます。

スケジュールされたアクションを更新する

スケジュールされたアクションを作成した後、名前とタイムゾーンを除くすべての設定を更新できます。スケジュールされたアクションを編集すると、すべての時刻は UTC になります。

スケジュールされたアクションを更新するには(コンソール)

  1. Amazon EC2 Auto Scaling コンソール (以下) を開きます。https://console.aws.amazon.com/ec2autoscaling/

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

    [Auto Scaling グループ] ページの下部に分割ペインが開き、選択したグループに関する情報が表示されます。

  3. [Automatic scaling (自動スケーリング)] タブの [Scheduled actions (スケジュールされたアクション)] で、スケジュールされたアクションを選択します。

  4. [Actions]、[Edit] の順に選択します。

  5. 必要な変更を加えて、[変更の保存

スケジュールされたアクションを削除する

スケジュールされたアクションが不要になったら、削除できます。

スケジュールされたアクションを削除するには(コンソール)

  1. Amazon EC2 Auto Scaling コンソール (以下) を開きます。https://console.aws.amazon.com/ec2autoscaling/

  2. Auto Scaling グループを選択します。

  3. [Automatic scaling (自動スケーリング)] タブの [Scheduled actions (スケジュールされたアクション)] で、スケジュールされたアクションを選択します。

  4. [ Actions] で、[Delete ] を選択します。

  5. 確認を求めるメッセージが表示されたら、[Yes, Delete] を選択します。

スケジュールされたアクションの作成と管理 (AWS CLI)

put-scheduled-update-group-action コマンドを使用して、スケジュールされたアクションは 1 回のみ、または反復してスケーリングするように作成して更新できます。

1 回だけ実行される、スケジュールされたアクションを作成する

Auto Scaling グループを 1 回だけ自動的にスケーリングするには、--start-time "YYYY-MM-DDThh:mm:ssZ"オプション。

例: 1 回のみスケールアウトするには

特定の日時に Auto Scaling グループで実行中のインスタンスの数を増やすには、以下のコマンドを使用します。

に指定された日時に--start-time(2021 年 3 月 31 日の午前 8:00 UTC) では、グループのインスタンス数が 3 未満である場合、3 インスタンスにスケールアウトされます。

aws autoscaling put-scheduled-update-group-action --scheduled-action-name my-one-time-action \ --auto-scaling-group-name my-asg --start-time "2021-03-31T08:00:00Z" --desired-capacity 3

例: 1 回のみスケールインするには

特定の日時に Auto Scaling グループで実行中のインスタンスの数を減らすには、以下のコマンドを使用します。

に指定された日時に--start-time(2021 年 3 月 31 日の午後 4 時 (UTC))、グループに現在複数のインスタンスがある場合、1 インスタンスにスケールインされます。

aws autoscaling put-scheduled-update-group-action --scheduled-action-name my-one-time-action \ --auto-scaling-group-name my-asg --start-time "2021-03-31T16:00:00Z" --desired-capacity 1

定期的なスケジュールで実行されるスケジュールされたアクションを作成する

定期的なスケーリングをスケジュールするには、--recurrence "cron expression"オプション。サポートされている cron 式形式は、空白で区切られた 5 つのフィールドで構成されます。[分] [時間] [時間] [日] [日] [] [] [] [] [] [] [] [] この形式の詳細については、「Crontab」を参照してください。cron 式の例については、https://crontab.guru/examples.html

cron 式を指定するスケジュール済みアクションの例を次に示します。

指定されたスケジュール (毎日午前 9:00 (UTC) で、グループの現在のインスタンス数が 3 未満である場合、インスタンスは 3 インスタンスにスケールアウトします。グループに 3 つ以上のインスタンスがある場合は、3 つのインスタンスにスケールインします。

aws autoscaling put-scheduled-update-group-action --scheduled-action-name my-recurring-action \ --auto-scaling-group-name my-asg --recurrence "0 9 * * *" --desired-capacity 3

タイムゾーンを指定する定期的なスケジュールされたアクションを作成する

スケジュールされたアクションは、デフォルトで UTC タイムゾーンに設定されます。別のタイムゾーンを指定するには、--time-zoneオプションを選択し、IANA タイムゾーンの正規名 (America/New_Yorkなど)。詳細については、「」を参照してください。https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

以下は、使用例です。--time-zoneオプションを使用すると、キャパシティを拡張するための定期的なスケジュール済みアクションを作成できます。

指定されたスケジュール(毎週月曜日から金曜日の午後6時、現地時間)で、グループのインスタンスが現在2つ未満の場合は、2つのインスタンスにスケールアウトします。現在、グループに 2 つ以上のインスタンスがある場合は、2 つのインスタンスにスケールインします。

aws autoscaling put-scheduled-update-group-action --scheduled-action-name my-recurring-action \ --auto-scaling-group-name my-asg --recurrence "0 18 * * 1-5" --time-zone "America/New_York" \ --desired-capacity 2

スケジュールされたアクションを記述する

Auto Scaling グループのスケジュールされたアクションを記述するには、以下のdescribe-scheduled-actionsコマンド。

aws autoscaling describe-scheduled-actions --auto-scaling-group-name my-asg

成功すると、このコマンドは以下のような出力を返します。

{ "ScheduledUpdateGroupActions": [ { "AutoScalingGroupName": "my-asg", "ScheduledActionName": "my-recurring-action", "Recurrence": "30 0 1 1,6,12 *", "ScheduledActionARN": "arn:aws:autoscaling:us-west-2:123456789012:scheduledUpdateGroupAction:8e86b655-b2e6-4410-8f29-b4f094d6871c:autoScalingGroupName/my-asg:scheduledActionName/my-recurring-action", "StartTime": "2020-12-01T00:30:00Z", "Time": "2020-12-01T00:30:00Z", "MinSize": 1, "MaxSize": 6, "DesiredCapacity": 4 } ] }

スケジュールされたアクションを削除する

スケジュールされたアクションを削除するにはdelete-scheduled-actionコマンド。

aws autoscaling delete-scheduled-action --auto-scaling-group-name my-asg \ --scheduled-action-name my-recurring-action

Limitations

  • スケジュールされたアクションの名前は、Auto Scaling グループごとに一意である必要があります。

  • スケジュールされたアクションには、一意の時間値が必要です。他のスケーリングアクティビティがすでにスケジュールされているときにアクティビティをスケジュールしようとすると、呼び出しは拒否され、このスケジュールされた開始時間のスケジュールされたアクションがすでに存在することを示すエラーが返されます。

  • Auto Scaling グループあたり最大 125 のスケジュールされたアクションを作成できます。

  • cron 式に対してのみタイムゾーンを指定できます。