AWS Auto Scaling設計実践|EC2・ECSのスケーリング戦略と本番での設定方法

現場実践|AWS Auto Scaling設計
AWS Auto Scaling設計実践|EC2・ECS・EKSのスケーリング戦略と本番での設定方法
「アクセスが増えたときに自動でサーバーを追加したい」「スケールアウトの条件はどう設定すればいい?」——EC2 Auto Scaling・ECSサービスのオートスケール・スケーリングポリシーの種類と本番での設定を解説します。
💡 Auto Scalingはクラウドの最大のメリットのひとつ。適切に設定することで「急なアクセス増でサービスが落ちる」リスクと「常時過剰なリソースを確保するコスト」の両方を解消できます。
1. スケーリングポリシーの種類
ターゲット追跡スケーリング
CPU使用率70%を維持するようにEC2台数を自動調整。最もシンプルで最初に試すべき設定。CloudWatchの指標で目標値を設定するだけ。
ステップスケーリング
CPU使用率に応じて段階的にスケール(80%で+2台・90%で+4台等)。細かい制御が必要な場合に使う。
スケジュールスケーリング
「毎週月曜9時に最小台数を10台に増やす」という時刻ベースのスケーリング。トラフィックが予測可能な場合に有効。
予測スケーリング
機械学習で過去のトラフィックパターンを学習して事前にスケールアウトする。トラフィックの波が規則的な場合に効果的。
2. EC2 Auto Scaling Groupの基本設定
resource "aws_autoscaling_group" "web_asg" {
name = "web-server-asg"
vpc_zone_identifier = [aws_subnet.private_a.id, aws_subnet.private_c.id]
target_group_arns = [aws_lb_target_group.web.arn]
min_size = 2 # 最低2台を保証
max_size = 20 # 最大20台
desired_capacity = 2 # 通常時は2台
# インスタンスの混在(オンデマンド+スポット)
mixed_instances_policy {
instances_distribution {
on_demand_percentage_above_base_capacity = 20 # 20%はオンデマンド
spot_allocation_strategy = "capacity-optimized"
}
launch_template {
launch_template_specification {
launch_template_id = aws_launch_template.web.id
version = "$Latest"
}
}
}
health_check_type = "ELB"
health_check_grace_period = 300 # 起動後5分は死活判定を待つ
}3. ウォームアップとクールダウンの設定
- ウォームアップ(スケールアウト後の安定待ち):新しいEC2が追加されてからトラフィックを受け取るまでの時間(デフォルト300秒)。この時間内はさらなるスケールアウトのトリガーを無視する
- クールダウン(スケールイン後の安定待ち):スケールイン(台数削減)後に次のスケールイン判断を待つ時間。短すぎるとピンポン現象(増やして減らすの繰り返し)が起きる
📌 この記事のポイント
- ターゲット追跡(CPU70%維持)が最もシンプル。予測可能なトラフィックにはスケジュール・過去学習には予測スケーリング
- mixed_instances_policyでオンデマンド20%+スポット80%の混在構成がコスト最適なAutoScaling設計
- ウォームアップとクールダウンの設定でピンポン現象を防ぎ安定したスケーリングを実現する
キャリアの疑問、一緒に解決しませんか?
Infra Academyでは、インフラ系ITエンジニアを目指す方への個別サポートを行っています。2026年7月からフリーランス講師として本格始動予定です。
ABOUT ME




