オートスケーリング(Auto Scaling)とは、アクセス量や負荷の変化に合わせて、サーバーなどの資源の数を自動で増やしたり減らしたりする仕組みのことです。英語のAuto(自動)とScaling(規模の増減)を組み合わせた言葉で、おもにクラウド環境で使われます。
現実世界でいえば、混み具合を見てレジを開け閉めするスーパーのようなものです。お客さんが増えれば新しいレジを開けて行列をさばき、空いてくれば余分なレジを閉めて人件費を抑えます。オートスケーリングは、これをサーバーに対して自動で行います。
オートスケーリングの仕組み
オートスケーリングでは、サーバーのCPU使用率やアクセス数などを常に監視しています。あらかじめ決めた条件(たとえば「CPU使用率が70%を超えたら」)に達すると、自動でサーバーを追加します。逆に負荷が下がれば、余分なサーバーを自動で減らします。増減したサーバーへはロードバランサーがアクセスを振り分けるため、利用者は台数の変化を意識せずに使えます。
スケールアウトとスケールアップ
資源を増やす方法には、大きく2つの考え方があります。オートスケーリングは主に前者の「スケールアウト」を自動化したものです。
| 方法 | 内容 | たとえると |
|---|---|---|
| スケールアウト | サーバーの台数を増やして、処理を分担させる。オートスケーリングが得意とする方法。 | レジの数を増やす |
| スケールアップ | 1台のサーバーの性能(CPUやメモリ)を高める。台数は変えない。 | 1つのレジを高性能にする |
オートスケーリングのメリット
負荷に応じて自動で調整することで、多くの利点が得られます。
- アクセス集中に強い
急なアクセス増加にも自動で台数を増やして対応でき、サービスが止まりにくくなります。 - コストを抑えられる
負荷が低いときは台数を減らすため、使った分だけの費用で済みます。 - 手間がかからない
担当者が手作業で増減させる必要がなく、深夜や休日でも自動で対応します。 - 安定した性能を保てる
負荷が高まっても資源を補うため、応答速度を一定に保ちやすくなります。
スケールインとスケールアウト(増減の呼び方)
オートスケーリングで台数を増やすことを「スケールアウト」、減らすことを「スケールイン」と呼びます。減らす際は、処理中のアクセスが途切れないよう、安全なタイミングを選んでサーバーを切り離す工夫がされています。
オートスケーリングが使われる場面
アクセス量の変動が大きいサービスで特に効果を発揮します。セール時にアクセスが集中するECサイト、時間帯で利用者が変わる動画配信、キャンペーンで一時的に注目を集めるサイトなどが代表例です。AWSやAzure、Google Cloudといったクラウドサービスが、この機能を標準で提供しています。

コメント