AWS Elastic Beanstalk
開発者ガイド

スケジュールされた Auto Scaling のアクション

ピークトラフィックが予測される期間の環境での Amazon EC2 インスタンスの使用を最適化するには、Auto Scaling グループを設定して、スケジュールに基づいてインスタンス数を変更します。繰り返しアクションを使用して環境を設定すれば、毎日朝はスケールアップし、トラフィックの低い夜はスケールダウンすることができます。たとえば、マーケティングイベントで一時的にトラフィックをサイトに誘導する場合は、ワンタイムイベントをスケジュールして、開始時にはスケールアップし、終了時にはスケールダウンすることができます。

環境ごとに最大 120 のスケジュールに基づくアクティブアクションを定義することができます。また、Elastic Beanstalk は、有効期限切れのスケジュールに基づくアクションを最大 150 まで保持するため、設定を更新することによって再利用できます。

スケジュールに基づくアクションの設定

Elastic Beanstalk コンソール で、環境の Auto Scaling グループ向けにスケジュールに基づくアクションを作成することができます。

Elastic Beanstalk コンソールで、スケジュールに基づくアクションを設定するには

  1. Elastic Beanstalk コンソール を開きます。

  2. お客様の環境の管理ページに移動します。

  3. [Configuration] を選択します。

  4. [キャパシティー] 設定カテゴリで、[変更] を選択します。

  5. [時間に基づくスケーリング] セクションで、[スケジュールされたアクションの追加] を選択します。

    
            Elastic Beanstalk Auto Scaling スケジュールに基づくアクションの設定ウィンドウ
  6. 次のスケジュールされたアクション設定を入力します。

    • [名前] – 最大 255 文字の英数字で一意の名前を指定し、スペースは含めないでください。

    • [インスタンス] – Auto Scaling グループに適用する最小および最大インスタンス数を選択します。

    • [希望するキャパシティー] (オプション) – Auto Scaling グループに必要な容量の初期値を設定します。スケジュールに基づくアクションが適用されたら、トリガーは設定に基づき、希望する容量を調整します。

    • [頻度] – [繰り返し] を選択して、スケジュールでスケーリングアクションを繰り返します。

    • [開始時刻] – 1 回限りのアクションの場合は、アクションの実行日時を選択します。繰り返しアクションの場合は、開始時間はオプションです。開始時間を指定して、アクションをアクティブ化する時間を指定します。指定しなかった場合、アクションはすぐにアクティブ化され、[繰り返し] 式に従って繰り返されます。

    • [繰り返し] – Cron 式を使用して、スケジュールに基づくアクションを実行する頻度を指定します。たとえば、30 6 * * 2 では、毎週火曜日の午前 6:30 (UTC 時刻) にアクションが実行されます。

    • [終了時刻] (オプション) – 繰り返しアクションの場合は、アクションを無効化する日時を選択します。[終了時刻] を指定しなかった場合、アクションは [繰り返し] 式に従って繰り返されます。

      スケジュールに基づくアクションが終了すると、Amazon EC2 Auto Scaling は自動的に以前の設定に戻ります。必要に応じて、Amazon EC2 Auto Scaling が元の設定に戻るように、スケジュールに基づいて 2 つ目のアクションを設定します。

  7. [Add] を選択します。

  8. [Apply] を選択します。

    注記

    スケジュールされたアクションは適用されるまでは保存されません。

aws:autoscaling:scheduledaction 名前空間

スケジュールに基づくアクションを多数設定する必要がある場合は、設定ファイルまたは Elastic Beanstalk API を使用して、YAML または JSON ファイルから設定オプションの変更を適用することができます。これらの方法では、Suspendオプションにアクセスして、スケジュールに基づく繰り返しアクションを一時的に無効にすることもできます。

注記

スケジュールに基づくアクション設定オプションをコンソール外で操作する場合は、ISO 8601 時刻形式を使用して UTC 時刻で開始時間および終了時間を指定します。たとえば、2015-04-28T04:07:02Z のように指定します。ISO 8601 時刻形式の詳細については、「日付と時刻形式」を参照してください。日付はすべての予定されているアクションで一意である必要があります。

Elastic Beanstalk には、aws:autoscaling:scheduledaction 名前空間のスケジュールに基づくアクションの設定用の設定オプションが用意されています。resource_name フィールドを使用して、スケジュールに基づくアクションの名前を指定します。

例 scheduled-scale-up-specific-time-long.config

この設定ファイルでは、2015-12-12T00:00:00Z に 5 インスタンスから 10 インスタンスにスケールアウトするよう Elastic Beanstalk に指示しています。

option_settings: - namespace: aws:autoscaling:scheduledaction resource_name: ScheduledScaleUpSpecificTime option_name: MinSize value: '5' - namespace: aws:autoscaling:scheduledaction resource_name: ScheduledScaleUpSpecificTime option_name: MaxSize value: '10' - namespace: aws:autoscaling:scheduledaction resource_name: ScheduledScaleUpSpecificTime option_name: DesiredCapacity value: '5' - namespace: aws:autoscaling:scheduledaction resource_name: ScheduledScaleUpSpecificTime option_name: StartTime value: '2015-12-12T00:00:00Z'

例 scheduled-scale-up-specific-time.config

EB CLI または設定ファイルで短縮構文を使用するには、リソース名を名前空間に不可します。

option_settings: ScheduledScaleUpSpecificTime.aws:autoscaling:scheduledaction: MinSize: '5' MaxSize: '10' DesiredCapacity: '5' StartTime: '2015-12-12T00:00:00Z'

例 scheduled-scale-down-specific-time.config

この設定ファイルでは、2015-12-12T07:00:00Z にスケールインするよう Elastic Beanstalk に指示しています。

option_settings: ScheduledScaleDownSpecificTime.aws:autoscaling:scheduledaction: MinSize: '1' MaxSize: '1' DesiredCapacity: '1' StartTime: '2015-12-12T07:00:00Z'

例 scheduled-periodic-scale-up.config

この設定ファイルでは、毎日午前 9 時にスケールアウトするよう Elastic Beanstalk に指示しています。このアクションは、2015 年 5 月 14 日に開始し、2016 年 1 月 12 日に終了するようにスケジュールされます。

option_settings: ScheduledPeriodicScaleDown.aws:autoscaling:scheduledaction: MinSize: '5' MaxSize: '10' DesiredCapacity: '5' StartTime: '2015-05-14T07:00:00Z' EndTime: '2016-01-12T07:00:00Z' Recurrence: 0 9 * * *

例 scheduled-periodic-scale-down.config

この設定ファイルでは、毎日午後 6 時に、いずれの実行中のインスタンスにもスケールインしないよう Elastic Beanstalk に指示します。アプリケーションが営業時間外にほぼアイドル状態であることを知っている場合は、同様のスケジュール済みアクションを作成できます。アプリケーションを営業時間外にダウンさせる場合は、MaxSize0 に変更します。

option_settings: ScheduledPeriodicScaleUp.aws:autoscaling:scheduledaction: MinSize: '0' MaxSize: '1' DesiredCapacity: '0' StartTime: '2015-05-14T07:00:00Z' EndTime: '2016-01-12T07:00:00Z' Recurrence: 0 18 * * *

例 scheduled-weekend-scale-down.config

この設定ファイルでは、毎週金曜日の午後 6 時にスケールインするよう Elastic Beanstalk に指示しています。週末はアプリケーションが大量のトラフィックを受信しないことがわかっている場合は、同様のスケジュールに基づくアクションを作成できます。

option_settings: ScheduledWeekendScaleDown.aws:autoscaling:scheduledaction: MinSize: '1' MaxSize: '4' DesiredCapacity: '1' StartTime: '2015-12-12T07:00:00Z' EndTime: '2016-01-12T07:00:00Z' Recurrence: 0 18 * * 5