Auto Scalingはリソースの使用状況をモニタリングし、その使用状況に応じてEC2 Instanceを自動で増減するサービス。負荷の状況に応じて自動でスケールアウト・スケールインすることができる。スケーラブルで費用対効果が高い。
Auto Scalingを実行するために設定するスケーリングプランには、CloudWatchのメトリクスやスケジュールの指定などを定義する。CloudWatchのメトリクスを参照する場合、CloudWatchが一定間隔で収集したデータを参照してスケールアウト・スケールインする。デフォルトの収集間隔は5分。詳細モニタリングのオプションを有効にすることで1分間隔とすることができる。
EC2 InstanceはAuto Scalingグループで指定したサブネットで動作する。AZが複数ある場合はAZ間でEC2 Instanceの均衡を保つように起動する。EC2 Instanceの増加時はEC2 Instanceが一番少ないAZで起動する。EC2 Instanceの起動に失敗した場合は、起動が成功するまで別のAZで起動を試みる。
AZが複数ある場合のスケールインはデフォルトではEC2 Instance数が最も多いAZ内からランダムにAZを選択する。AZのInstance数が同じ場合は、最も古い起動設定を使用したEC2 InstanceがあるAZを選択する。最も古い起動設定を使用したEC2 Instanceが複数ある場合は、次に課金が発生するまでの時間が最も短いEC2 Instanceを選択する。次に課金が発生するまでの時間が最も短いEC2 Instance複数ある場合は、この中からランダムにEC2 Instanceを選択する。