🧊

AWS ECS オートスケーリング Cooldownを知った【2025夏】

に公開

オートスケーリングポリシーの設定をいじっていたら、、ScaleInCooldown/ScaleOutCooldown という設定値がありました。オートスケーリングの挙動を決める設定値だったのですが、知らなかったので、調べました〜。

ScaleInCooldown

  • スケールインが完了してから、次のスケールイン開始までの秒数
  • 一気にスケールインしてうことを防ぐ。様子見しながら徐々にスケールインしていくため。(保守的)
  • スケールインクールダウン中に、他のメトリクスからスケールアウトが実行された場合は、スケールアウトが動く

ScaleOutCooldown

  • スケールアウトが完了してから、次のスケールアウト開始までの秒数
  • 急激な負荷で過剰にスケールアウトされることを防ぐ

ターゲット追跡ポリシーの場合は、ウォームアップ期間

ターゲット追跡ポリシーとステップスケーリングポリシーは、クールダウン期間の終了を待つことなく、ただちにスケールアウトアクティビティを開始できます。その代わり、Auto Scaling グループがインスタンスを起動するときは、常に個々のインスタンスにウォームアップ期間が設定されます。

ターゲット追跡ポリシーの場合は、クールダウンの設定は影響しないとのこと、、。(設定してました。)
代わりにインスタンスのウォームアップ期間が設定されています。

  • ウォームアップ中のインスタンスは、スケーリングの判断に使用されるメトリクスの計算対象から除外される。
  • ウォームアップ期間はスケールインされない。

ウォームアップ期間が長すぎたりすると、実際には追加したインスタンスが稼働しているが、計算から除外されるため、まだインスタンス数が足りないと判断され、過剰にスケールアウトしてしまう可能性もありそうです。適切な時間を設定することが大事そう。

まとめ

  • スケールアウト/インが過剰に起こらないように設計されている
  • クールダウンもウォームアップも大事

参照

Discussion