機械学習で負荷を予測し備えるPredictive Scaling(予測スケーリング)機能がAWSのAuto Scalingに追加
AWSは負荷に対応してサーバ数を自動的に増減させるAmazon EC2 Auto Scaling(以下、Auto Scaling)と呼ばれる機能を提供しています。
Auto ScalingはサーバのCPUの使用率やネットワークのトラフィックなどのメトリクスをつねにチェックし、それが一定数を超えた場合にはサーバ数、すなわちAmazon EC2のインスタンス数を増加させ、一方で一定数を下回るとインスタンス数を減少させるといった操作を自動的に行ってくれます。
このおかげでアプリケーションは負荷が高いときでも適切な性能を実現できるだけでなく、負荷が小さいときには無駄なインスタンスを終わらせることで適切な使用コストも実現できるのです。
Auto Scalingは便利な機能ではありますが、メトリクスが変化したことをトリガーにしてインスタンス数を増減させるという仕組み上、急激に負荷が上昇する場面やインスタンスの起動に数分かかるといった環境では、インスタンスの増減が間に合わなかった、といったことも発生します。
AWS Auto Scalingに機械学習を組み合わせて負荷を予測
そこでAWSは、Auto Scalingの新機能としてPredictive Scaling(予測スケーリング)機能を発表しました。
下記は「New – Predictive Scaling for EC2, Powered by Machine Learning」から説明を引用します。
Using data collected from your actual EC2 usage and further informed by billions of data points drawn from our own observations, we use well-trained Machine Learning models to predict your expected traffic (and EC2 usage) including daily and weekly patterns.
お客様の実際のEC2の利用状況に加えて私たち自身が観測する数十億ものデータポイントから得た情報などによって十分に訓練された機械学習モデルで、お客間のトラフィック(そしてEC2の利用状況)を日次と週次のパターンで予測します。
The model needs at least one day’s of historical data to start making predictions; it is re-evaluated every 24 hours to create a forecast for the next 48 hours.
このモデルでの予測には少なくとも1日分のデータを必要とし、24時間ごとにその先48時間分の予測を行います。
負荷を予測することで、負荷に対して先回りしてインスタンス数を調整しておくことが可能になります。
設定もこれまでのAuto Scalingにいくつかのオプションが加わった程度で、簡単に使い始めることができます。
Predictive Scalingは米東(オハイオ)、米西(オレゴン)、ヨーロッパ(アイルランド)、アジアパシフィック(シンガポール)の各リージョンですでに利用可能になっています。
あわせて読みたい
Kotlin用フレームワーク「Ktor 1.0」正式リリース。非同期処理に対応したWebサーバとマルチプラットフォームなクライアントの開発に対応
≪前の記事
IaaS+PaaSクラウド市場でAWSのシェアはさらに増加、引き続きトップを独走、2位はマイクロソフト。2018年第3四半期、Synergy Research Group