オートスケーリングとは
オートスケーリング(Auto Scaling)とは、アプリケーションの負荷に応じてコンピューティングリソースを自動的に増減させる仕組みです。トラフィックが増加すればインスタンスを自動追加し、減少すれば自動削除することで、パフォーマンスの維持とコストの最適化を両立します。
| ひとことで言うと | アクセス量に応じて、サーバーの台数を自動で増減させる仕組み。 |
|---|---|
| 何がうれしいか | 繁忙時も落ちず、閑散時は費用を抑えられる。 |
| 注意点 | 増える速度が需要に間に合わないことがある。事前の増強も併用する。 |
スケーリングの種類
オートスケーリングには水平スケーリング(スケールアウト/イン:インスタンス数の増減)と垂直スケーリング(スケールアップ/ダウン:インスタンスのスペック変更)があります。一般的には水平スケーリングが採用され、CPU使用率、メモリ使用率、リクエスト数、キューの長さなどの指標に基づいてスケーリングルールを設定します。
1負荷を監視CPU使用率や待ち行列
▶
2しきい値を超える混み始めた
▶
3台数を増やす自動で追加起動
▶
4負荷が下がる余裕ができる
▶
5台数を減らす費用を抑える
AI推論サービスのスケーリング
AI推論サービスでは、推論リクエストの増減に応じてGPUインスタンスをスケーリングする必要があります。GPUインスタンスの起動時間が長いため、予測的スケーリング(過去のパターンに基づく先行スケーリング)やウォームプールの維持が重要です。また、GPU使用率やリクエストキューの長さをカスタムメトリクスとして利用する設定が必要です。
Kubernetesでのオートスケーリング
KubernetesではHPA(Horizontal Pod Autoscaler)がPod数の自動調整を行い、VPA(Vertical Pod Autoscaler)がPodのリソース要求を自動調整します。KEDA(Kubernetes Event-Driven Autoscaling)はイベント駆動のスケーリングを実現し、推論キューの長さに基づくスケーリングに適しています。