Auto Scaling

オートスケーリングは、システム負荷に応じてサーバーやコンテナのリソースを自動的に増減させるしくみのことです。減ってきたら勝手に増やして、余ってきたらそれ以上余らんようにします。

日常生活でも、IoTを使って最適な温度・湿度や風向きにするスマートエアコンや、利用状況に応じて最適な電力消費にする家電や電気自動車があります。内燃機関でも、低速時は4気筒走行に自動で切り替わる車両もあります。

オートスケーリングのメリットは以下です。

  • 見張ってなくても、いい塩梅にスケールアップ・ダウンしてくれる
  • コスト効率がよくなる
  • 高い可用性が維持できる
  • もし落ちても素早く立ち上がって復旧できる

オートスケーリングは大別すると2種類あります。

  • 水平スケーリング
  • 垂直スケーリング

「水平スケーリング」は状況に応じてインスタンスやコンテナの数を増減する仕組みです。一方、「垂直スケーリング」はインスタンスのパフォーマンスを上下する仕組みです。

負荷の流れにパターンが見られる場合は、そのパターンに応じてスケーリングを設定することができます。

  • スケジュールベース・スケーリング
  • イベントベース・スケーリング

スケージュールベースのスケーリングは、たとえば昼間と夜間の利用量に差がある場合に使います。時間帯に応じてあらかじめスケーリングをスケジュールします。

イベントベースのスケーリングは、あらかじめ設定しておいた負荷以上になった場合はスケールアウト(スケールアップ)し、想定以下になった際にはスケールイン(スケールダウン)します。

予測型でオートスケーリングする場合は、データドリブンで定期的にトレンドを見直し最適化します。