サーバー ソフトウェア 公開日 2026.04.23 更新日 2026.05.14

Auto Scalingとは?EC2の台数を自動で増減する基本をAWSで整理

Auto Scalingとは何かを、EC2の台数を自動で増減する仕組みとして整理します。Auto Scaling Group、最小・希望・最大台数、スケールアウト/イン、ヘルスチェックでの置き換え、CloudWatchメトリクスとの関係まで初心者向けにまとめます。

先に結論

Auto Scaling は、負荷に応じて EC2 の台数を自動で増減したり、壊れたインスタンスを置き換えたりする仕組みです。
AWSでは、通常 Amazon EC2 Auto Scaling を使って、Auto Scaling Group という単位でEC2群を管理します。

ざっくり言うと、

  • 普段は2台でよい
  • アクセスが増えたら4台に増やしたい
  • 深夜は2台に戻したい
  • 1台壊れたら自動で補充したい

という運用を手でやらずに回すための仕組みです。

この記事は、2026年4月23日時点で AWS 公式の What is Amazon EC2 Auto Scaling? Dynamic scaling for Amazon EC2 Auto Scaling Target tracking scaling policies Health checks for instances in an Auto Scaling group Create Auto Scaling groups using launch templates をもとに整理しています。

Auto Scalingとは何か

AWS公式では、Amazon EC2 Auto Scalingアプリの負荷を処理するのに適切な数の EC2 インスタンスを維持する サービスとして説明されています。
この説明の中には、実は2つの役割が入っています。

1. 台数を増減する

アクセスや負荷に応じて、EC2を増やしたり減らしたりします。
これが一般にイメージされやすい Auto Scaling です。

2. 壊れたインスタンスを置き換える

Auto Scaling は、単に増減するだけではなく、グループ内のインスタンスが不健全になったら新しいものへ置き換える役割も持ちます。
つまり、台数調整自己修復 の両方を担う、と理解するとかなり分かりやすいです。

まず押さえたい用語

Auto Scaling を読むと、似た言葉が続くので最初に整理しておくと楽です。

用語 意味
Auto Scaling Group EC2群をまとめて管理する単位
最小台数 これ以下には減らさない下限
希望台数 いま維持したい台数
最大台数 これ以上は増やさない上限
スケールアウト 台数を増やすこと
スケールイン 台数を減らすこと
Launch Template どんなEC2を起動するかをまとめた設定

特に大事なのは、Auto Scaling = サービス名Auto Scaling Group = 実際に管理するEC2の単位 を分けて見ることです。

Auto Scaling Group で何を決めるのか

Auto Scaling Group では、主に次のことを決めます。

  1. どんなEC2を起動するか
  2. 何台を基準に維持するか
  3. どんな条件で増減させるか

1. どんなEC2を起動するか

ここは通常、Launch Template を使います。
Launch Template には、AMI、インスタンスタイプ、セキュリティグループ、ストレージ設定などを入れます。

つまり Auto Scaling Group は、同じ性格のEC2を必要に応じて複製する箱 です。
このため、1台ごとに手で調整するより、同じ構成を横に増やせる設計のほうが相性がよいです。

2. 何台を基準に維持するか

AWS公式でも、Auto Scaling Group には min desired max を設定すると説明されています。

たとえば、

  • 最小 2
  • 希望 2
  • 最大 6

なら、平常時は2台を維持しつつ、必要に応じて最大6台まで増やせる、という意味になります。

ここで初心者が混乱しやすいのは 希望台数 です。
これは、いまこの瞬間に維持したい台数 と考えると分かりやすいです。

3. どんな条件で増減させるか

負荷が増えたら増やし、落ち着いたら減らす条件を設定します。
この判断には、通常 CloudWatch のメトリクスが使われます。

どうやって増減するのか

Auto Scaling の増減方法はいくつかありますが、AWS公式でも特に中心になるのは 動的スケーリング です。

代表的には次の3つです。

1. Target Tracking

最も初心者向けで分かりやすい方式です。
AWS公式でも、Target Tracking はサーモスタットのように目標値を保つ考え方として説明されています。

たとえば、

  • CPU使用率を平均50%前後に保ちたい
  • ALBの1ターゲットあたりリクエスト数を一定範囲に保ちたい

といった目標を置くと、Auto Scaling が必要に応じて台数を増減します。

この方式がよく使われるのは、何台増やすかを人が細かく決めなくてよい からです。

2. Step Scaling

しきい値の超え方に応じて、増減幅を段階的に変える方式です。
たとえば、

  • CPUが60%を超えたら1台増やす
  • 80%を超えたら2台増やす

のように決めます。

細かく制御したいときには向きますが、最初からここまで作り込むより、まずは Target Tracking のほうが分かりやすい場面が多いです。

3. Scheduled Scaling

毎日の決まった時間に台数を変える方法です。
たとえば、

  • 平日朝は増やす
  • 夜は減らす
  • キャンペーン時間帯だけ事前に増やす

のような予測しやすい負荷に向きます。

ヘルスチェックで置き換えるとはどういうことか

Auto Scaling の大事な役割の1つがここです。
AWS公式では、Auto Scaling Group 内のインスタンスは継続的に健康状態を監視され、不健全と判断されたものは置き換えられると説明されています。

つまり、たとえ負荷が増えていなくても、

  • EC2のステータスチェックに失敗した
  • ロードバランサーのヘルスチェックで落ちた
  • 期待した状態になっていない

という場合には、同じ希望台数を維持するために新しいEC2を起動する ことがあります。

このため Auto Scaling は、単なるコスト最適化機能ではなく、可用性を上げるための基盤でもあります。

どんな場面で使うのか

Auto Scaling は、次のようなアプリで相性がよいです。

  • Webアプリのアクセス変動がある
  • EC2を複数台並べて運用している
  • 1台壊れてもサービスを続けたい
  • バッチや処理基盤を一定条件で増減させたい

逆に、1台の中に状態を抱え込みすぎる構成だと、Auto Scaling の効果を活かしにくいです。
同じ設定で複数台を立ち上げても困らない、という作りのほうが向いています。

よくある誤解

1. Auto Scaling はCPUが上がったら増やすだけ

それだけではありません。
不健全なインスタンスの置き換えも重要な役割です。

2. Auto Scaling を入れれば何でも自動で最適化される

そこまではいきません。
最小・最大・希望台数、どのメトリクスを見るか、ウォームアップ時間をどう考えるかは自分で決める必要があります。

3. 1台構成のままでも十分意味がある

意味がゼロではありませんが、1台落ちても自動で補充する 程度に留まりやすいです。
可用性の恩恵をしっかり受けるなら、複数台前提でロードバランサーと組み合わせる構成のほうが効果が見えやすいです。

最初に覚えるならどこを見るべきか

最初は次の順で理解すると整理しやすいです。

  1. AMILaunch Template で起動設定を決める
  2. Auto Scaling Group で 最小・希望・最大 を決める
  3. CloudWatch メトリクスで増減条件を決める
  4. ヘルスチェックで壊れた台を置き換える

この4つがつながると、Auto Scaling の全体像はかなり見えます。

EC2 Auto Scalingのよくある質問

Q. Auto Scaling は本当に自動で増減しますか?

A. 設定したルールに従って自動増減します。CPU 70%超で +1台30%未満で -1台スケジュール(平日9-18時は3台) などのルール次第。設定なしで自動 ではなく、設定通りに自動 です。

Q. 起動が遅くて急増する負荷に追いつきません。

A. AMI に必要なものを焼き込む(Custom AMI)、Warm Pools で予熱インスタンスを用意、Predictive Scaling で予測増減、で対応します。起動時間を短縮するアプリ設計も重要。

Q. スケジュールベースとメトリクスベース、どちらを使う?

A. 両方併用が定番。平日昼間は最低3台(スケジュール) + 負荷で増減(メトリクス)、のような構成。完全予測可能ならスケジュール予測困難ならメトリクス、と使い分けます。

Q. スケールイン(台数減らす)で困ることは?

A. 処理中のリクエストが切れる長時間バッチが中断、などです。Connection Draining(ALB のターゲット切り離し)、Lifecycle Hook(処理完了待ち)、で対策します。

Q. ヘルスチェック失敗時の挙動は?

A. ヘルスチェック NG のインスタンスを自動終了 → 新規インスタンスを起動。ELB ヘルスチェックEC2 ヘルスチェック の組み合わせで、より厳密な判定が可能。

Q. Auto Scaling Group とロードバランサーの関係は?

A. ALB のターゲットグループに自動登録/解除。新規起動 → ターゲットグループに追加 → ヘルスチェック合格 → トラフィック流入終了予定 → ターゲットから外す → Connection Draining → 終了、の流れ。

Q. ECSKubernetes の Auto Scaling は別物?

A. 別物。EC2 Auto Scaling は仮想マシン単位、ECS Service Auto Scaling はタスク単位、Kubernetes HPA は Pod 単位。コンテナを動かす場合は ECS/EKS の Auto Scaling と EC2 の両方を組み合わせます。

まとめ

Auto Scaling は、EC2の台数を自動で増減しつつ、不健全なインスタンスを置き換えて、必要な台数を維持する仕組みです。
AWSでは Auto Scaling Group を使って、どんなEC2を何台維持するか をまとめて管理します。

最初に押さえるなら、

  • Launch Template で起動設定をまとめる
  • 最小・希望・最大台数を決める
  • CloudWatch メトリクスで増減させる
  • ヘルスチェックで壊れた台を置き換える

この流れで考えるとかなり分かりやすいです。

この記事と一緒に読む

  1. EC2とは?仮想サーバーの基本をAWS初心者向けに整理
  2. AMIとは?EC2起動テンプレートの意味
  3. AWSで知っておくべき基本的な単語とは?EC2・IAM・S3・VPCのつながりを初心者向けに整理
  4. Launch Template
  5. CloudWatch

参考リンク

あとで見返すならここで保存

読み終わったあとに残しておきたい記事は、お気に入りからまとめて辿れます。