オートスケーリングとは?負荷に応じて自動伸縮するクラウド機能を解説

システム開発・テクノロジー
オートスケーリングとは?ざっくりと3行で
  • CPU使用率やアクセス数などの指標に応じて、サーバー台数を自動で増減させるクラウドの機能。AWSではAuto Scalingとも表記される
  • アクセスが増えれば自動でサーバーを追加し、減れば自動で削除することで、過負荷によるサービス停止と無駄なコストを同時に解消できる
  • キャンペーン・セール・ニュースバズりなど突発的なトラフィックスパイクに人手なしで対応でき、エンジニアが深夜に手動でサーバーを増やす必要がなくなる

【深掘り】これだけ知ってればOK!

オートスケーリングが存在しなかった時代、Webサービスの担当エンジニアは事前にピーク予測をして人力でサーバーを増設していた。見込みが外れれば過剰投資かサービス停止のどちらかだった。オートスケーリングはその予測と人力対応を自動化した革新的な仕組みだ。

オートスケーリングの仕組みは大きく3つの要素で構成される。①メトリクスの監視——CPU使用率・リクエスト数・カスタム指標などを継続的に計測する。②スケーリングポリシー——「CPU使用率が70%超えたら台数を2倍に増やす」などのルールを定義する。③ロードバランサーとの連携——新しく追加したサーバーを自動でトラフィック分散対象に加え、削除したサーバーを対象から外す。

スケーリングにはいくつかの種類がある。ターゲット追跡スケーリングは特定メトリクスを目標値に維持するよう自動調整する最もシンプルな方法だ。ステップスケーリングは閾値に応じて段階的に台数を変える。スケジュールスケーリングは毎日9時にサーバーを増やし18時に減らすなど時間ベースで自動制御する。用途に合わせてこれらを組み合わせるのが実務の標準だ。

オートスケーリングの注意点は起動時間(ウォームアップ)だ。新しいサーバーが追加されてから実際にトラフィックを処理できる状態になるまで、数十秒〜数分かかることがある。急激なスパイクに対応するには、スケールアウトのトリガー閾値を早めに設定するか、最小台数を余裕を持って設定することがポイントだ。

コスト最適化の観点からは、最小台数と最大台数の設定が重要だ。最小台数を0にすると費用は最小になるが、リクエストが来た瞬間にサーバーが起動するため初回レスポンスが遅くなる。最小台数を1〜2台に設定することで常時稼働コストは発生するが快適なレスポンスを維持できる。ビジネスの要件と許容コストのバランスで設定値を決めることが重要だ。

よくある誤解

オートスケーリングはコストを必ず下げるわけではない

適切に設定しないとサーバーが必要以上に増え続けて費用が膨らむこともある。スケールアウトの上限(最大台数)を適切に設定し、コストアラートと組み合わせて管理することが重要だ。

オートスケーリング=全ての負荷問題が解決するわけではない

DBのコネクション数上限・アプリのメモリリーク・特定ページの処理が重いなど、サーバー台数を増やしても解決しない問題は多い。ボトルネックの特定と根本解決なしに台数だけ増やしても意味がない場合がある。

会話での使われ方

ITKAGYO運営者のアイコン画像

セール期間中はオートスケーリングで最大20台まで自動拡張する設定にしてあります。去年みたいに手動対応で徹夜にはならないはずです。

ECサイトのインフラ担当者が季節セール前の準備状況を報告している場面。

ITKAGYO運営者のアイコン画像

オートスケーリングのウォームアップ時間が2分あるので、スパイクの閾値を少し早めに設定しました。CPU70%で反応するようにしてます。

新規サービスのインフラレビューでエンジニアが設定の意図を説明している場面。

ITKAGYO運営者のアイコン画像

最小台数を0にしたら深夜コストがゼロになりましたが、朝一番のアクセスで遅いって苦情が来ました。最小1台に戻します。

コスト最適化の結果を振り返るMTGで担当者が教訓を共有している場面。

【まとめ】3つのポイント

  • 「スパイクに人手なしで対応する自動化の仕組み」:オートスケーリングはアクセス量に応じてサーバーを自動増減し、サービス停止と余剰コストを同時に解消するクラウドの中核機能だ
  • ウォームアップ時間を考慮した閾値設定が品質を決める:サーバーが起動してから稼働するまでの時間を考えて、スケールアウトのトリガーを早めに設定することが安定稼働のポイントだ
  • 最大台数とコストアラートで青天井課金を防ぐ:上限設定とコスト監視なしにオートスケーリングを動かすと、バグや攻撃でサーバーが増え続けて想定外の請求が発生しうる

よくある質問

Q
AWSでオートスケーリングを使うにはどうすればいいですか?
A

EC2 Auto Scalingグループを作成し、起動テンプレート・最小台数・最大台数・希望台数を設定します。CloudWatchのメトリクスと連携したスケーリングポリシーを設定することで、CPU使用率などに応じた自動スケールが動きます。

Q
オートスケーリングはコンテナでも使えますか?
A

はい、使えます。AWSのECS(Elastic Container Service)やEKS(Kubernetes)でもオートスケーリングが提供されており、コンテナ数を自動増減できます。KubernetesではHPA(Horizontal Pod Autoscaler)が同等の機能を担います。

Q
オートスケーリングとロードバランサーの関係は何ですか?
A

密接に連携します。オートスケーリングでサーバーが増減するとき、ロードバランサーが自動的に新サーバーをトラフィック分散の対象に追加・削除します。この連携なしにはオートスケーリングの効果が発揮されません。

Q
オートスケーリングとスケーラビリティの違いは何ですか?
A

スケーラビリティはシステムを拡張できる性質・能力のことです。オートスケーリングはその拡張を自動で実行する具体的な仕組みです。スケーラビリティの高い設計があって初めてオートスケーリングが効果を発揮します。

この用語と一緒に知っておきたい用語

用語この記事との関連
サーバーサーバーを押さえると本記事の理解がさらに深まります。ネットワークを通じて情報やサービスを提供する側のコンピューターのこと。レストランで料理を運んでくれる給仕係(server)をイメージするとわかりやすいよ
スケーラビリティスケーラビリティとの関係を知ると全体像がつかみやすくなります。システムの規模や負荷が変化したとき、性能を落とさずに柔軟に拡張・縮小できる性質のこと。日本語では「拡張性」とも訳される
スケールアウト次のステップとしてスケールアウトを学ぶと知識が広がります。スケールアウトの主要な特徴と用途を理解することで、関連する技術・制度・概念を正確に把握できるようになる
アイコンアイコンを押さえると本記事の理解がさらに深まります。アプリやファイル、操作ボタンなどをひと目でわかる小さな絵で表したもの、それがアイコンだ
Kubernetes次のステップとしてKubernetesを学ぶと知識が広がります。コンテナ化されたアプリを自動で管理・運用するコンテナオーケストレーションツール。船の操舵手(ギリシャ語由来)のように、多数のコンテナが正しく動くよう舵を取り続ける存在だ

【出典】参考URL

https://www.e-bcc.co.jp/glossary/network/jp-sa/scalability/ :オートスケーリングとスケーラビリティの関係
https://www.pc-webzine.com/article/2290 :スケーリングの種類と仕組み

コメント

「IT用語、難しすぎて心が折れそう……」という方のための、ハードル低めな用語辞典です。

情報レベルは「基礎中の基礎」。会話を止めないためのエッセンスだけを抽出しています。分かりやすさを追求するあまり、時々例え話が暴走しているかもしれませんが、そこは「ほどよく」聞き流していただけると幸いです。
ほどよくIT用語辞典システム開発・テクノロジー
デプロイ太郎のSNSを見てみる!!