【おーとすけーりんぐ】

オートスケーリング とは?

最終更新:
💡 混雑に合わせて自動で増減する「伸び縮みする店員数」

負荷に応じてサーバーの台数やリソースを自動で増減させる仕組み。混んだら増やし、空いたら減らすことで、コストと性能のバランスを取りやすくなる。

📌 このページのポイント
負荷に合わせて、台数を調整少ない負荷多い負荷2台4台増やす減らす監視値や予定 + 台数の範囲を設定起動・準備が整うまで、時間差がある紫=追加するサーバー
台数の増減を示す例です。増減の条件、最小・最大台数、準備や終了の手順はサービスと設定で違います。
ひよこ ひよこ
オートスケーリングって何のためにあるの?
ペンギン先生 ペンギン先生
ECサイトのセール期間を想像してみて。普段は少ない台数で足りるのに、タイムセールの時間だけアクセスが大きく増える。そのピークに合わせて常に多くのサーバーを動かし続けるのはもったいないよね。オートスケーリングは負荷に合わせて台数を自動で増やしたり減らしたりしてくれるんだよ。
ひよこ ひよこ
ペンギン先生 ペンギン先生
スケールアウトはサーバーの「台数」を増やすこと。スケールアップはCPU・メモリなどの「スペック」を上げることだよ。クラウドのオートスケーリングは台数の増減が中心で、たとえばAzure Monitorのautoscaleは水平方向だけに対応している。スペック変更は再起動が必要になる場合もあるんだ。一方でKubernetesのVertical Pod Autoscalerのように、CPU・メモリの割り当てを自動調整する仕組みもあるよ。
ひよこ ひよこ
台数が増えたとき、増えたサーバーにどうやってアクセスが振り分けられるの?
ペンギン先生 ペンギン先生
ロードバランサーが間に入って振り分けるんだ。AWSなら、Auto Scalingグループにロードバランサーのターゲットグループを関連付けておくと、起動したインスタンスが自動で登録される。ロードバランサーは原則として、ヘルスチェックに合格した正常なターゲットにリクエストを送るよ。
ひよこ ひよこ
増えたサーバーが「完全に準備できる前」にトラフィックが来てしまうことってない?
ペンギン先生 ペンギン先生
あるよ。ヘルスチェックが通っても、キャッシュの読み込みなどでアプリが本調子になるまで時間がかかることがあるんだ。AWSの「インスタンスのウォームアップ」は、その間の数値をグループ全体の平均に入れず、起動直後の高いCPU使用率で余計に台数を増やさないための設定だよ。トラフィックを止める機能ではないから、準備が終わってからロードバランサーに登録したいならライフサイクルフックを使う。ヘルスチェックの内容を「実際に使える状態」に近づけることも大切だね。
もっと詳しく知りたい人へ

最小台数や最大台数は設定しなくていいの?

設定が必要だよ。オートスケーリングは、決めた最小台数と最大台数の範囲で台数を増減する。最小台数を低くしすぎると急な負荷に間に合わないことがあり、最大台数を大きくしすぎると想定外の負荷で費用が膨らむ。アクセスの多い時間帯がわかっているなら、スケジュールで先に増やしておく方法もあるよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「オートスケーリング」って出てきたら「監視値や予定に合わせて、サーバーなどの規模を自動で調整する仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「Auto Scaling」 = 自動でスケール(規模調整)する
💬 Scaleは「規模」の意味。Auto(自動)でScaling(規模調整)する、という直訳通りの名前だよ

参考資料

← 用語集にもどる