オートスケーリング

トラフィックや負荷に応じてコンピュートリソースを自動的に増減させる仕組み

AWSスケーリング

オートスケーリングとは

オートスケーリング (Auto Scaling) は、CPU 使用率、リクエスト数、キューの深さなどのメトリクスに基づいて、コンピュートリソースを自動的に増減させる仕組みである。トラフィックのピーク時にリソースを追加し、閑散時に削減することで、パフォーマンスとコストを最適化する。

AWS のオートスケーリング

サービス スケール対象 メトリクス
EC2 Auto Scaling EC2 インスタンス数 CPU、ネットワーク、カスタム
ECS Service Auto Scaling ECS タスク数 CPU、メモリ、リクエスト数
DynamoDB Auto Scaling RCU/WCU テーブルの使用率
Lambda 同時実行数 自動 (設定不要)
Aurora Serverless ACU (Aurora Capacity Units) DB 負荷

Lambda は自動的にスケールするため、オートスケーリングの設定が不要だ。これがサーバーレスの最大のメリットの 1 つ。

スケーリングポリシー

ターゲット追跡 (推奨)

「CPU 使用率を 70% に維持する」と宣言するだけで、AWS が自動的にリソースを増減する。

ステップスケーリング

CPU 使用率の範囲に応じて、追加するインスタンス数を段階的に設定する。

CPU 70〜80%: +1 インスタンス
CPU 80〜90%: +2 インスタンス
CPU 90%以上: +3 インスタンス

スケジュールスケーリング

予測可能なトラフィックパターン (毎朝 9 時にピーク) に対して、事前にスケールアウトする。

スケールインの注意点

スケールインは慎重に行う。急激にインスタンスを減らすと、残りのインスタンスに負荷が集中する。

  • ScaleInCooldown: スケールイン後の待機時間 (5〜10 分)
  • MinCapacity: 最小インスタンス数 (0 にしない)
  • コネクションドレイニング: 処理中のリクエストを完了してから停止

Lambda のスケーリング

Lambda は自動スケールするが、同時実行数の上限 (デフォルト 1,000) がある。予約済み同時実行数 (ReservedConcurrentExecutions) で関数ごとの上限を設定し、1 つの関数が全体の枠を使い切るのを防ぐ。

詳しくは関連書籍を参照。

関連用語