AWS Auto Scaling (Scaling Plans)
対応する AWS リソースへ設定をまとめて展開する Scaling Plans。EC2 Auto Scaling や Application Auto Scaling との境界を理解し、直接ポリシーを置く現行方式や移行手順も判断する。
- 計画は対応資源を検出し、下位サービスへ増減設定を展開する。
- EC2 は EC2 Auto Scaling、それ以外は Application Auto Scaling が動かす。
- 予測だけなら直接ポリシーを選び、既存計画は順序を守って移行する。
ここで扱う AWS Auto Scaling は、複数の AWS リソースの設定を 1 つの「スケーリング計画(Scaling Plan)」としてまとめる機能です。対象は EC2 Auto Scaling グループ、ECS サービス、DynamoDB のテーブルとグローバルセカンダリインデックス、Aurora リードレプリカ、Spot Fleet の 5 系統です。「AWS の自動増減機能全般」を指す総称とは分けて考えます。
解決する課題
アプリケーションは多くの場合、複数の AWS リソースが連動して動いています。Web 層の EC2、コンテナの ECS、バックエンドの DynamoDB といった具合に、それぞれが独自のスケーリング設定を持つため、リソースごとに個別に設定・調整するとスケーリングポリシーが分散し、全体像を把握しづらくなります。
Scaling Plans は、これらをアプリケーション単位で検出し、リソースごとに「可用性重視」「コスト重視」「バランス」などの戦略を指定して目標追跡ポリシーを生成します。ASG には予測スケーリングも設定できます。ただし AWS は、予測だけが目的なら機能の多い EC2 Auto Scaling または Application Auto Scaling の予測ポリシーへ直接設定する方式を強く推奨しており、既存計画向けの移行手順も公開しています。
主要概念と用語
- スケーリング計画(Scaling Plan): スケーリング対象のリソース群とその戦略をまとめた構成単位。AWS Auto Scaling の中心となる概念。
- スケーラブルリソース: 計画の対象にできるリソース。EC2 Auto Scaling グループ、ECS サービス、DynamoDB テーブルやインデックス、Aurora リードレプリカ、Spot フリートなどが含まれる。
- リソースの検出: CloudFormation スタックや EC2 のタグを起点に、関連するスケーラブルリソースを自動で見つけ出す仕組み。
- スケーリング戦略: 各リソースに適用する方針。可用性を優先するか、コストを優先するか、その中間(バランス)かを選ぶと、対応する目標追跡の目標値が設定される。
- 目標追跡スケーリング: 指定したメトリクス(CPU 使用率やリクエスト数など)を目標値に近づけるように容量を自動調整する方式。AWS Auto Scaling が生成するポリシーの基本。
- 予測スケーリング(Predictive Scaling): 過去のメトリクス傾向から将来の需要を予測し、先回りして容量を増やす機能。日次や週次など周期性のある負荷に向く。
- Application Auto Scaling: ECS、DynamoDB、Aurora など、EC2 Auto Scaling 以外の対応リソースを個別にスケーリングするサービス。Scaling Plans はここへ設定を展開するが、直接設定してもよい。
仕様・制限・クォータ
AWS Auto Scaling はリージョン単位のサービスで、1 つのスケーリング計画に複数の異なる種類のリソースを含められます。対象リソースは、CloudFormation スタックや EC2 インスタンスのタグを使って自動検出するか、明示的に指定します。
スケーリング計画は、対象リソースごとに目標追跡ポリシーを生成します。可用性・コスト・バランスといった事前定義された戦略を選ぶと、それに対応する目標値が設定され、必要に応じて手動で目標値を上書きすることもできます。予測スケーリングは EC2 Auto Scaling グループに対して利用でき、一定期間のメトリクス履歴を学習材料として将来の容量を見積もります。
既定クォータは 1 リージョンあたり 100 計画、1 計画あたり 500 スケーリング指示、1 指示あたり 10 目標追跡設定です。1 つのリソースを複数の計画へ同時に含めることはできません。Scaling Plans 自体に追加料金はありませんが、計画の予測スケーリングが履歴取得に使う CloudWatch GetMetricData と実リソースには料金が発生します。EC2 Auto Scaling の予測ポリシーへ直接設定した場合、その予測用 GetMetricData 呼び出しは課金されません。
EC2 Auto Scaling は ASG の EC2 を起動・終了・交換する実行機能です。Scaling Plans は ASG を含む対応リソースへ設定を展開する管理機能で、EC2 以外の実際の増減は Application Auto Scaling が担います。
内部の仕組み
横にスクロール
AWS Auto Scaling は、スケーリング計画に含まれる各リソースに対して、内部的に目標追跡スケーリングポリシーと CloudWatch アラームを生成します。EC2 Auto Scaling グループには EC2 Auto Scaling のポリシーが、ECS や DynamoDB などには Application Auto Scaling のポリシーが適用される形で、対象ごとに適切な下位の仕組みへ設定が展開されます。
戦略として可用性・コスト・バランスのいずれかを選ぶと、その方針に応じた目標値が各リソースのポリシーに反映されます。たとえば可用性重視ではメトリクスの目標値を低めに設定して余裕を持たせ、コスト重視では高めに設定して稼働率を上げます。
予測スケーリングでは、最大 14 日分の履歴を分析して次の 2 日分を 1 時間間隔で予測します。初回予測には最低 24 時間の履歴が必要です。予測は将来の最小容量を予定し、需要が立ち上がる前に確保します。実測が予測を上回る場合は、動的な目標追跡が追加容量を補います。
設計パターン / ベストプラクティス
既存の Scaling Plans を使う場合は、CloudFormation スタックやタグで対象を検出し、各リソースのポリシー所有元を計画に統一します。外部ポリシーは既定では上書きされないため、計画の状態が ActiveWithProblems なら競合と検出漏れを先に調べます。
予測可能な周期性のある負荷(平日昼にピークが来るなど)には予測スケーリングが有効で、需要の立ち上がりに先回りして容量を確保できます。一方、突発的で予測しにくいスパイクにはリアルタイムの目標追跡が向くため、両者を併用して定常的な波と突発的な変動の双方に対応させます。
新規設計では、EC2 は EC2 Auto Scaling、ECS や DynamoDB などは Application Auto Scaling へ直接設定する方式を先に比較します。直接設定では、メトリクス数式による集約や Blue/Green 更新をまたぐ履歴保持など、Scaling Plans より新しい予測機能を使えます。
既存計画を移行するときは、設定を記録し、予測ポリシーを ForecastOnly で先に検証してから、計画を削除し、直後に目標追跡ポリシーを再作成します。計画を削除すると計画が作った動的ポリシーも消え、再作成まで自動スケールしないため、この順序を入れ替えてはいけません。
最初は可用性とコストのバランス戦略による目標追跡から始め、運用しながらメトリクスの推移を見て目標値を調整するのが扱いやすい進め方です。周期性が確認できたら予測スケーリングの追加を検討します。
対象リソースはステートレスに設計し、状態は外部のデータストアやキャッシュに逃がしておくことが重要です。スケールインでリソースが縮小されても、ユーザー体験に影響しないようにします。
運用・監視
スケーリング計画ごとに、各リソースの実際の容量と予測容量、目標追跡の推移を CloudWatch メトリクスで監視できます。予測スケーリングを有効にする前に「予測のみ(forecast only)」のモードで一定期間運用し、予測が実際の需要とどの程度合っているかを確認してから本適用すると安全です。
スケーリングが頻繁に発生して容量が振動する場合は、目標値の見直しや、対象リソース側のウォームアップ・クールダウン設定の調整を行います。各リソースのスケーリング履歴は、EC2 Auto Scaling のアクティビティ履歴や Application Auto Scaling のスケーリングアクティビティから追跡できます。
予測スケーリングは過去のメトリクス傾向を学習材料にするため、履歴が十分にない初期段階や、過去と傾向が大きく変わった場合は予測精度が下がります。導入直後は予測のみモードで挙動を見極めてください。
コスト
Scaling Plans の管理機能に追加料金は発生しません。課金対象は実際に起動・利用された EC2 インスタンスや ECS タスク、DynamoDB のキャパシティに加え、計画の予測スケーリングが呼び出す CloudWatch GetMetricData です。需要に応じた容量調整で下位リソースの無駄を減らしつつ、予測取得の料金も監視します。
戦略としてコスト重視を選べば、稼働率を高めに保って無駄を減らせます。一方で可用性重視は余裕を持たせる分コストが上がるため、ワークロードの重要度に応じて戦略を使い分けます。具体的な料金は対象リソースの種類・購入オプション・リージョンによって変動するため、断定的な金額は示せません。最新の料金は各リソースの公式料金ページで確認してください。
セキュリティ
AWS Auto Scaling の操作は IAM ポリシーで制御し、スケーリング計画の作成・変更・削除を権限のある主体のみに限定します。AWS Auto Scaling は各リソースのスケーリングを設定するために、サービスにリンクされたロールを通じて EC2 Auto Scaling や Application Auto Scaling、CloudWatch などへアクセスします。
最小権限の原則に従い、計画を管理する主体には必要な操作だけを許可します。対象リソース自体のセキュリティ(EC2 のインスタンスプロファイル、ECS のタスクロール、ネットワーク構成など)は、それぞれのリソース側の設定で適切に保護します。
関連サービス・比較
Scaling Plans、EC2 Auto Scaling、Application Auto Scaling は名前が似ていますが、対象と責務が異なります。
| 観点 | Scaling Plans | EC2 Auto Scaling | Application Auto Scaling |
|---|---|---|---|
| 対象 | 対応する 5 系統を横断 | ASG 内の EC2 | ECS、DynamoDB、Aurora など |
| 設定単位 | アプリケーションの計画 | Auto Scaling グループ | スケーラブルターゲット |
| 実行責務 | 下位へ設定を展開 | EC2 の起動・終了・交換 | 対象サービスの容量変更 |
| 現行の選択 | 横断初期設定や既存計画 | EC2 は直接設定を優先 | EC2 以外は直接設定を優先 |
ハンズオン / CLI例
既存計画を読み取り、移行対象の設定を棚卸しする例です。削除前に、公式移行手順に従って直接ポリシーの設定ファイルと切替手順を準備します。
# 計画全体の状態と設定を確認する
aws autoscaling-plans describe-scaling-plans \
--scaling-plan-names web-app-plan
# 計画が作成した対象資源とポリシー情報を確認する
aws autoscaling-plans describe-scaling-plan-resources \
--scaling-plan-name web-app-plan \
--scaling-plan-version 1
AWS Service
AWS Auto Scaling (Scaling Plans)を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
コンピューティング
比較で見る軸
クラウド: AWS / カテゴリ: コンピューティング / 難易度: intermediate
導入後に効く点
EC2 は EC2 Auto Scaling、それ以外は Application Auto Scaling が動かす。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- AWS
- カテゴリ
- コンピューティング
- 難易度
- intermediate
- 関連資格
- SAA-C03 / SOA-C02 / SAP-C02
- 設計柱
- reliability / performance / cost
判断チェックリスト
- 自社の用途が「コンピューティング / reliability」に近いか確認する。
- 強みである「計画は対応資源を検出し、下位サービスへ増減設定を展開する。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。