IP アドレス枯渇時の EC2 Auto Scaling の挙動を確認してみた

2024.04.02

はじめに

テクニカルサポートの 片方 です。
サブネット -A と サブネット -B を利用する EC2 Auto Scaling グループを起動した際に、片側の サブネットでは IP アドレスが枯渇するような希望容量の場合、どの様な挙動になるのか確認してみました。

結論から

片側のサブネットで IP アドレスが枯渇した場合でも、もう一方のサブネットに IP アドレスの空きがあれば、そのサブネットにて EC2 インスタンスが起動されます。
以下が EC2 Auto Scaling の動作原理としてあるため、このような挙動になると考えられます。

  • 指定された数の EC2 インスタンスを維持する
  • 使⽤可能な AZ の間で均等に EC2 インスタンスを配置しようとする

希望するキャパシティ: Auto Scaling グループ作成時の初期キャパシティを表します。Auto Scaling グループは希望するキャパシティを維持しようとします。まず、希望するキャパシティに指定された数のインスタンスを起動します。Auto Scaling グループにスケーリングポリシーまたはスケジュールされたアクションがアタッチされていない限り、このインスタンス数が維持されます。

耐障害性の向上。Amazon EC2 Auto Scaling では、インスタンスに異常が発生したタイミングを検出し、インスタンスを削除して、その代わりに新しいインスタンスを起動することができます。複数のアベイラビリティーゾーンを使用するように Amazon EC2 Auto Scaling を設定することもできます。1 つのアベイラビリティーゾーンが利用できなくなると、Amazon EC2 Auto Scaling は別のアベイラビリティーゾーンでインスタンスを起動して補正します。

確認してみた

1. 255.255.255.224/28 と 255.255.255.240/28 といった 合計 32 個の IP アドレスしか存在しない 2 つのサブネットを作成します。
厳密には AWS より各サブネットに対して IP アドレスが 5 個予約されているので、11 + 11 の計 22 個が使用可能な状態です。

例えば、CIDR ブロック 10.0.0.0/24 を持つサブネットの場合、次の 5 つの IP アドレスが予約されます。

2. 片側のサブネットに前もって、Name タグ: IP-Test の EC2 インスタンスを 5 台起動させます。

3. Name タグ: Auto Scaling の 希望容量 16 台で EC2 Auto Scaling を作成して起動を行います。

結果、片側のサブネットで IP アドレスが枯渇した場合でも、もう一方のサブネットで利用可能な IP アドレスが残っていれば、 EC2 インスタンスが起動されました。

まとめ

通常であれば各サブネットへ均等に 8 + 8 の計 16 台起動されますが、今回のような条件の場合では使用可能な IP アドレスが存在するサブネット側(検証環境では ap-northeast-1d)で 10 台起動されました。
本ブログが誰かの参考となれば幸いです。

参考資料

アノテーション株式会社について

アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。