オートスケーリング おーとすけーりんぐ
簡単に言うとこんな感じ!
負荷に応じてサーバー台数を自動で増減する仕組み。アクセスが増えたら自動で台数を増やし、静かになったら減らしてコストも節約。クラウドならではの「必要なときだけ大きくなる」魔法みたいな機能だよ。
オートスケーリングとは
オートスケーリング(Auto Scaling)とは、システムへの負荷(トラフィック・CPU使用率など)に応じて、仮想マシンやコンテナの台数を自動的に増減させる仕組みです。AWSのAuto Scaling Groups、AzureのVirtual Machine Scale Sets、GCPのManaged Instance Groupsが代表的なサービスです。
負荷が増加した際にインスタンスを追加する「スケールアウト(Scale Out)」と、負荷が落ち着いた後にインスタンスを削除する「スケールイン(Scale In)」を自動化します。これにより、手動でのサーバー増設なしに急なアクセス増加に対応でき、低負荷時はコストを抑えられます。
オートスケーリングはクラウドの従量課金モデルと組み合わせることで最大の効果を発揮します。ピーク時だけ多くのサーバーを使い、それ以外は最小構成にすることで、オンプレミスの「最大負荷に合わせてハードウェアを購入する」無駄を排除できます。
スケーリングの種類
| 種類 | 説明 | 用途 |
|---|---|---|
| 水平スケーリング(スケールアウト/イン) | インスタンス台数を増減 | Webサーバー、API |
| 垂直スケーリング(スケールアップ/ダウン) | インスタンスのサイズを変更 | DB、単一インスタンス |
スケーリングポリシーの種類
| ポリシー | トリガー | 説明 |
|---|---|---|
| ターゲット追跡 | CPU使用率70%維持など | 目標値に収まるよう自動調整 |
| ステップスケーリング | 閾値段階 | CPU80%超で+2台、90%超で+4台 |
| スケジュールスケーリング | 時刻 | 月曜朝8時に最小台数を2→5に増加 |
| 予測スケーリング | 過去データのMLによる予測 | 翌日の9時アクセス増加を事前に準備 |
歴史と背景
オートスケーリングはクラウド以前にも概念は存在しましたが、インフラの調達に時間がかかるオンプレミスでは実用困難でした。AWSが2009年にAuto Scalingサービスをリリースし、数分以内にインスタンスを自動追加できる環境が整いました。
2013年以降はコンテナの普及に伴いKubernetes Horizontal Pod Autoscaler(HPA)のようなコンテナレベルのオートスケーリングも普及しました。2019年にはAWSが機械学習を使ったPredictive Scalingを追加し、「負荷が来てから反応する」から「来る前に準備する」プロアクティブなスケーリングが可能になっています。
オートスケーリングの動作フロー
関連する規格・RFC
オートスケーリングに特定の規格はありませんが、以下が参考になります。
| 資料 | 内容 |
|---|---|
| Kubernetes HPA仕様 | コンテナレベルの水平スケーリング標準 |
| KEDA(K8s Event-driven Autoscaling) | イベント駆動型のKubernetesオートスケーリング |
関連用語
- スケールアップとスケールアウト — スケーリングの2つの方向性
- ロードバランサー — オートスケーリングと組み合わせる負荷分散
- インスタンスタイプの選び方 — スケール対象のインスタンスの選定
- 高可用性(HA) — オートスケーリングが支える可用性
- スポットインスタンス — オートスケーリングで使うとコスト効率が高い