AWS Auto Scaling で実現する需要追従型インフラ - スケーリングポリシーの設計と最適化

ターゲット追跡・予測・スケジュールドの 3 種類のポリシーを使い分け、混合インスタンスポリシーでスポットを活用したコスト最適化を実現する手法を紹介します。

Auto Scaling の概要

Auto Scaling はリソースを需要に応じて自動的にスケーリングするサービスです。トラフィックが増加するとインスタンスを追加し、減少すると削除します。過剰プロビジョニングによるコスト浪費と、不足によるパフォーマンス低下の両方を防止します。ターゲット追跡、ステップ、予測の 3 種類のスケーリングポリシーを提供し、ワークロードの特性に応じて使い分けます。

スケーリングポリシーの設計

ターゲット追跡スケーリングは最も推奨されるポリシーで、CPU 使用率 70% や ALB リクエスト数 1000/分などの目標値を設定するだけで、Auto Scaling が自動的にキャパシティを調整します。予測スケーリングは過去 14 日間のトラフィックパターンを ML で分析し、将来の需要を予測してスケジュールベースでキャパシティを事前確保します。毎朝 9 時にトラフィックが急増するパターンでは、8:50 にスケールアウトを開始します。ウォームプールは AMI からの起動とアプリケーションの初期化を事前に完了したインスタンスを待機させ、スケールアウト時に即座にサービスインさせます。

予測スケーリングとスケジュールドスケーリング

予測スケーリングは過去 14 日間のメトリクスパターンを機械学習で分析し、将来の需要を予測してスケーリングアクションを事前に実行します。ターゲット追跡ポリシーの反応遅延 (メトリクス収集からインスタンス起動完了まで数分) を補完し、急激なトラフィック増加にも対応できます。スケジュールドスケーリングは、毎日の営業時間開始前やセール開始時刻など、予測可能な需要変動に対して事前にキャパシティを確保します。予測スケーリングとスケジュールドスケーリングを組み合わせ、定常的なパターンは予測で、イベント的な需要はスケジュールでカバーする設計が効果的です。 スケーリングの設計と構築を深く理解するには、専門書籍 (Amazon)が役立ちます。

Auto Scaling のコスト最適化

Auto Scaling グループでスポットインスタンスと混合インスタンスポリシーを活用すると、オンデマンド比で最大 90% のコスト削減が可能です。複数のインスタンスタイプを指定し、キャパシティ最適化の配分戦略でスポットの中断リスクを分散します。最小キャパシティをオンデマンドで確保し、超過分をスポットで賄う構成が安定性とコストのバランスに優れています。ウォームプールを設定すると、事前に初期化済みのインスタンスをプールしておき、スケールアウト時の起動時間を短縮できます。CloudWatch のカスタムメトリクス (キューの深さ、アクティブ接続数) をスケーリングポリシーに使用し、CPU 使用率だけに頼らない精度の高いスケーリングを実現します。

まとめ

Auto Scaling はターゲット追跡、ステップ、予測の 3 種類のスケーリングポリシーで需要に追従するインフラを構築します。予測スケーリングで急激なトラフィック増加に事前対応し、混合インスタンスポリシーでスポットインスタンスを活用してコストを最適化します。ウォームプールで起動時間を短縮し、可用性とコスト効率を両立させます。