ちょっと話題の記事

東京リージョンで利用可能となったAWS Auto Scaling の予測スケーリングを試してみた

2018.12.21

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

はじめに

AWSチームのすずきです。

本日、AWS Auto Scalingが東京リージョンで利用可能になりました。

AWS Auto Scaling の予測スケーリング(Predictive Scaling)、 機械学習でオートスケール環境の負荷を予測し、必要なEC2インスタンス台数の自動調整を実現する機能を試す機会がありましたので、紹介させて頂きます。

設定

Auto Scaling グループ

  • 既存のオートスケーリンググループ(EC2 Auto Scaling)を指定して、AWS Auto Scalingの設定を行いました。

  • 今回設定対象はスケーリングポリシー、スケジュールされたアクションとも未設定のものを利用しました。

スケーリングポリシー

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

AWS Auto Scaling

  • AWS Auto Scaling ダッシュボードを利用して設定をおこないました。

スケーリングプランの作成

  • EC2 Auto Scaling グループを指定して設定を行いました。

  • 今回、スケール判定のしきい値を変更するため、スケーリング戦略は「カスタム」を指定。
  • ターゲットとして、CPUの平均使用率を指定、ターゲット値はT2,T3のベース性能意識して、10、15%の低い値に設定しました。

  • 確認画面を経て、スケーリングプランを作成します。

確認

  • 作成したスケーリングプランを選択します。

  • 設定対象としたAuto Scaling グループを指定します。

  • Auto Scaling グループで実測された過去一週間の実際の負荷実績と、これを元に予想された2日間の負荷予測が確認できます。
  • 土日は負荷のかからない環境に対し、金曜の夜に設定を実施したため、二日間の負荷予測は低い判定となりました。
  • 指定したしきい値と予想を元に、EC2インスタンス数をAuto Scaling グループの最小数から最大数の範囲で適正数に調整するスケジュールが組まれます。

Auto Scaling グループ

  • AWS Auto Scalingで設定したスケーリングポリシーと、スケジュールは、EC2のAuto Scaling グループに反映されます。

スケーリングポリシー

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

まとめ

AWS Auto Scaling の予測スケーリング、既存のオートスケール環境の指定と、CPU使用率のしきい値指定だけで、簡単に設定する事ができました。 突発的なイベントなどを除き、曜日や時間帯などにより負荷が変化する多くのシステムで効果的に利用出来ると思われます。

半日程度ですが、予想スケーリングを動作させた環境では予想と実際の負荷の差異が殆どない事が確認できました。 より効果的な利用方法などについても、改めて紹介させて頂きたいと思います。

追記

AWS Auto Scaling 設定後、5日間経過後のグラフは以下の通りになりました。

営業日の12/25(火)については、予想線(オレンジ)と実績線(青色)がほぼ一致しました。

祝祭日などの対応は別途必要となる可能性はありますが、AWS Auto Scaling の予想精度、平時はかなり高いレベルで利用できると思われます。