オートスケーリング

Auto Scaling

オートスケーリングとは

オートスケーリング(Auto Scaling)とは、アプリケーションの負荷に応じてコンピューティングリソースを自動的に増減させる仕組みです。トラフィックが増加すればインスタンスを自動追加し、減少すれば自動削除することで、パフォーマンスの維持とコストの最適化を両立します。

スケーリングの種類

オートスケーリングには水平スケーリング(スケールアウト/イン:インスタンス数の増減)と垂直スケーリング(スケールアップ/ダウン:インスタンスのスペック変更)があります。一般的には水平スケーリングが採用され、CPU使用率、メモリ使用率、リクエスト数、キューの長さなどの指標に基づいてスケーリングルールを設定します。

AI推論サービスのスケーリング

AI推論サービスでは、推論リクエストの増減に応じてGPUインスタンスをスケーリングする必要があります。GPUインスタンスの起動時間が長いため、予測的スケーリング(過去のパターンに基づく先行スケーリング)やウォームプールの維持が重要です。また、GPU使用率やリクエストキューの長さをカスタムメトリクスとして利用する設定が必要です。

Kubernetesでのオートスケーリング

KubernetesではHPA(Horizontal Pod Autoscaler)がPod数の自動調整を行い、VPA(Vertical Pod Autoscaler)がPodのリソース要求を自動調整します。KEDA(Kubernetes Event-Driven Autoscaling)はイベント駆動のスケーリングを実現し、推論キューの長さに基づくスケーリングに適しています。