Amazon EC2 Auto Scaling (日本語)
ユーザーガイド

Amazon EC2 Auto Scaling のスケジュールに基づくスケーリング

スケジュールに基づいたスケーリングにより、予想可能な負荷の変化に対する独自のスケーリングスケジュールを設定できます。たとえば、毎週、ウェブアプリケーションへのトラフィックが水曜日に増え始め、木曜日は高いままで、金曜日に下がり始めるとします。このような場合は、ウェブアプリケーションの予測可能なトラフィックパターンに基づいてスケーリングアクションを計画できます。スケーリングアクションは、時刻と日付に応じて自動的に実行されます。

注記

予測可能な負荷の変化に基づくスケーリングの場合は、AWS Auto Scaling の予測スケーリング機能も使用できます。詳細については、AWS Auto Scaling ユーザーガイド を参照してください。

スケジュールに基づいてスケーリングするように Auto Scaling グループを設定するには、スケジュールされたアクションを作成します。スケジュールされたアクションは、特定の時刻にスケーリングアクションを実行するように Amazon EC2 Auto Scaling に指示します。スケジュールされたスケーリングアクションを作成するには、スケーリングアクションが有効になる開始時間と、そのスケーリングアクションでの新しい最小サイズ、最大サイズ、および希望するサイズを指定します。指定した時間に、Amazon EC2 Auto Scaling はスケーリングアクションで指定された最小サイズ、最大サイズ、および希望するサイズの値でグループを更新します。

1 回のみ、または定期的なスケジュールでスケーリングする、スケジュールされたアクションを作成できます。

考慮事項

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

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

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

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

  • スケジュールされたアクションには、一意の時間値が必要です。他のスケーリングアクティビティがすでにスケジュールされているときにアクティビティをスケジュールしようとすると、呼び出しは拒否され、競合を知らせるエラーメッセージが表示されます。

  • スケジュールされたアクションは、終了時刻に達するとアカウントに残りません。

  • スケジュールされたアクションを削除せずに、スケジュールされたスケーリングを一時的に無効にできます。詳細については、「スケーリングプロセスの中断と再開」を参照してください。

  • クールダウン期間はサポートされていません。

  • スケーリングアクションを Amazon EC2 以外のリソースに対してスケジュールすることもできます。詳細については、Application Auto Scaling ユーザーガイド の「スケジュールに基づくスケーリング」を参照してください。

スケジュールされたアクションを作成および管理する (コンソール)

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

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

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

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

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

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

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

    • [最小]、[最大]、[希望する容量] のうち少なくとも 1 つを使用して、グループのサイズを指定します。

    • [繰り返し] のオプションを選択します。[Once (1 回)] を選択した場合、アクションは指定された時刻に実行されます。[Cron] を選択した場合は、いつアクションを実行するかを UTC で指定する Cron 式を入力します。[Every (毎)] で始まるオプションを選択した場合、Cron 式が作成されます。

    • [繰り返し] で [Once (1 回)] を選択した場合、アクションの時刻を [開始時刻] で指定します。

    • 定期的なスケジュールを指定した場合、[開始時刻] と [終了時刻] の値を指定できます。開始時刻を指定した場合、アクションが実行される最も早い時刻はその時刻です。終了時刻を指定した場合、アクションはこの時刻より後には実行されません。

  6. [Create (作成)] を選択します。

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

要件が変化した場合は、スケジュールされたアクションを変更できます。

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

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

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

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

  4. [Scheduled Actions] タブで、スケジュールされたアクションを選択します。

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

  6. [Edit Scheduled Action] ページで、次の作業を行います。

    • [Min]、[Max] または [Desired Capacity] を使用して、必要に応じてグループのサイズを変更します。

    • 必要に応じて、指定された繰り返しを更新します。

    • 必要に応じて、開始時刻と終了時刻を更新します。

    • [Save (保存)] を選択します。

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

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

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

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

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

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

  4. [Scheduled Actions] タブで、スケジュールされたアクションを選択します。

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

  6. 確認を求めるメッセージが表示されたら、[Yes, Delete (はい、削除します)] を選択します。

スケジュールされたアクションを作成および管理する (AWS CLI)

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

1 回のみスケーリングするには

1 回のみのスケジュールを指定して、特定の日時 (UTC) に Auto Scaling グループが自動的にスケーリングされるようにできます。

  • 特定の日時に Auto Scaling グループで実行中のインスタンスの数を減らすには、以下のコマンドを使用します。--start-time に指定された日時に、グループの現在のインスタンス数が 2 以上である場合、グループは 1 インスタンスにスケールインされます。

    aws autoscaling put-scheduled-update-group-action --scheduled-action-name my-one-time-action \ --auto-scaling-group-name my-asg --start-time "2019-05-13T08:00:00Z" --desired-capacity 1
  • 特定の日時に Auto Scaling グループで実行中のインスタンスの数を増やすには、以下のコマンドを使用します。--start-time に指定された日時に、グループの現在のインスタンス数が 3 未満である場合、グループは 3 インスタンスにスケールアウトされます。

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

定期的なスケジュールでスケーリングするには

Unix の cron 構文形式を使用して定期的なスケーリングをスケジュールできます。この形式は、スペースで区切られた 5 つのフィールド ([分] [時間] [日] [月] [曜日]) で構成されます。この形式の詳細については、「Crontab」を参照してください。

以下の put-scheduled-update-group-action コマンドを使用して、毎年 1 月 1 日、6 月 1 日、12 月 1 日の 00:30 に実行するスケジュールされたアクションを作成します。

aws autoscaling put-scheduled-update-group-action --scheduled-action-name my-recurring-action \ --auto-scaling-group-name my-asg --recurrence "30 0 1 1,6,12 *" --desired-capacity 3

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

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

以下の delete-scheduled-action コマンドを使用します。

aws autoscaling delete-scheduled-action --scheduled-action-name my-recurring-action