予測スケールをサポートしたEC2オートスケールの予測内容を検証してみた

ネイティブで予測スケーリングを利用可能になったAmazon EC2 Auto Scalingの、予測精度を確認してみました。
2021.05.24

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWSチームのすずきりょうです。

2021年5月のEC2オートスケールのアップデートで、予測スケーリング (Predictive scaling policies)がサポートされました。

EC2オートスケールを利用中の環境で予測スケールの設定を行い、予測と実績値の差から予測精度を確認する機会がありましたので、紹介させていただきます。

予測スケーリング設定

EC2ダッシュボード

  • Auto Scaling グループ設定に、予測スケーリング(Predictive scaling policies) の項目が追加されました。

ポリシー作成

「Scale basee on forecast」はオフ、EC2のスケールアウトは行わず、予測精度の評価のみを行う設定としました。

オートスケールのしきい値は既存のターゲット追跡スケーリングの設定を踏襲しました。

しきい値は、

  • CPU使用率 (CPU)
  • ネットワーク通信量 (Network In、Network Out)
  • ターゲット毎の ALBリクエスト数 (Application Load Balancer request count per target)

と、その組み合わせ(Custom metric pair)が指定可能です。

結果

予測スケーリングを設定後、4日間(木、金、土、日)の予測値(Historic forecast)と、実績値(Actual)の差異を確認しました。

対象1

  • 1週間グラフ

  • 2週間グラフ

対象2

  • 1週間グラフ

  • 2週間グラフ

まとめ

従来より、AWS Autoscallingの機能としてEC2台数の予測スケールは利用可能でしたが、 予測結果がEC2オートスケールのスケジュール設定として登録される仕様のため、手動のスケジュール設定と共存しにくい。 ELBのリクエスト数をターゲットとして利用できない。 などの課題がありました。

予想値を元にオートスケールを発動させることで、特定日時の時間帯にアクセス急増が発生しやすいシステムでは、 適切なEC2台数の維持がより実現しやすくなる事が期待できます。 実際に予測スケールを利用した結果については、まとまり次第改めて報告させて頂きたいと思います。