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

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

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

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

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

また、アプリケーションの Auto Scaling で、スケジュールに基づくスケーリングを使用することもできます。詳細については、『アプリケーションの Auto Scaling ユーザーガイド』の「スケジュールに基づくスケーリング」を参照してください。

スケジュールされたアクションでの考慮事項

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

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

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

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

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

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

コンソールを使ったスケジュールされたアクションの作成

スケジュールされたアクションを作成して 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] ページで、次の作業を行います。

    • [Min]、[Max]、[Desired Capacity] のうち、少なくとも 1 つを使用してグループのサイズを指定します。

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

    • [Recurrence] で [Once] を選択した場合、アクションの時刻を [Start Time] で指定します。

    • 定期的なスケジュールを指定した場合、[Start Time] と [End Time] の値を指定できます。開始時刻を指定した場合、アクションはこの時刻に実行され、定期的なスケジュールに基づくアクションが続けて実行されます。終了時刻を指定した場合、アクションはこの時刻より後には実行されません。

  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] を選択します。

AWS CLI を使用したスケジュールされたアクションの作成または更新

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

1 回のみのスケーリングをスケジュールするには

指定した時間に Auto Scaling グループで実行中のインスタンスの数を増加させるには、UTC の "YYYY-MM-DDThh:mm:ssZ" 形式で、次の put-scheduled-update-group-action コマンドを実行します。

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

指定した時間に Auto Scaling グループで実行中のインスタンスの数を減少させるには、UTC の "YYYY-MM-DDThh:mm:ssZ" 形式で、次の put-scheduled-update-group-action コマンドを実行します。

aws autoscaling put-scheduled-update-group-action --scheduled-action-name ScaleDown --auto-scaling-group-name my-asg --start-time "2013-05-13T08:00:00Z" --desired-capacity 1

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

UTC の Cron 形式を使用して定期的なスケジュールを指定できます。この形式の詳細については、「Crontab」を参照してください。

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

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

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

スケジュールされたアクションを使い終わったら削除することができます。

コンソールを使用してスケジュールされたアクションを削除するには

  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 を使用してスケジュールされたアクションを削除するには

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

aws autoscaling delete-scheduled-action --scheduled-action-name ScaleUp