Elastic Beanstalkに時間ベースのスケーリング機能が追加されました!
以前から、Elastic BeanstalkではCloud Watchのメトリクスをトリガーとしたスケーリングが可能でした。たとえば、CPU使用率が平均で60%を越えた場合にスケールアウトさせる、などといった具合にアプリケーションの稼働状況や負荷状況に照準をあててスケーリングができます。
ただし、大規模なイベントが控えている為あらかじめサーバを増強しておきたい、特定の期間は比較的負荷が低い為サーバを減らしたい、といった要望があった場合はメトリクスベースのスケーリングでは対応が難しくなります。
今回のアップデートにより、時間をトリガーとしたスケーリングが可能となりましたのでこのような要望を満たす事が可能となります!
それでは、AWSコンソールからの設定手順をご紹介します。
スケーリングに関する設定はScalingにまとまっています。
Time-based Scaling の項目が追加されています!
スケジュールの追加は Add scheduled actionから可能です。
試しにイベントが開始するというシナリオを想定し、指定時間に3台構成になるようなスケジュールを作成してみます。
Start timeに指定する時間はUTCなのでご注意ください!
スケジュールの追加が完了するとこんな感じで表示されるようです。
次にイベントが終了するというシナリオを想定してスケジュールを作成してみます。指定時間に1台構成になる事を期待しています。
最終的にはこんな感じになりました。忘れずにApplyをクリックしてスケジュールを保存してください。
スケールアウトの指定時間になったので確認してみます。
インスタンス追加のイベントが記録されていますね。
スケールインも確認してみます。
インスタンス削除のイベントが記録されています。
以上、簡単に時間ベースでのトリガーが設定できるようになっていましたね。
また、今回は作成しませんでしたがcron式で繰り返し型のスケジュールも登録できます。お試しください!