LoginSignup
1
0

More than 5 years have passed since last update.

AutoScalingGroupからインスタンスをデタッチするときは、残すインスタンスを各Availability Zoneに均等になるように行おう

Last updated at Posted at 2015-03-13

1.想定構成と今回やりたかった事

ごくごく当たり前の構成でのお話です。
ELB配下にWebサーバを並べ、Multi-AZ構成を取っています。
Webサーバは50台でした。

とある事情があり、これらのWebサーバをAutoScalingGroupからデタッチする必要がありました。

そのときに遭遇した事象を共有します。

2.想定外①:デタッチ上限数 = 20台

AWSの仕様だと思いますが、一度にデタッチできる上限は20台だそうです。

Management Consoleで該当AutoScalingGroupの[Instances]を見ると、
1ページに20台表示され、ページングされてます。
結果的にはこれが上限値なんですね。

3.想定外②:AWSは、AZのインスタンス数偏りを自動補正する

一度に20台しかデタッチできないことがわかったので、
とりあえず20台-20台-10台でデタッチすればいいかと思い、まず20台のインスタンスをデタッチしようとしました。

すると、残った30台のインスタンスのうち、
何台か勝手にTerminateされ、Terminateされたインスタンス分、新規Launchされたのです。

正直これには焦りました。

AutoScalingGroupは、Multi-AZ構成を取っていた場合、それぞれのAZに存在するインスタンス数のバランスを取ろうとします。
つまり、20台デタッチした後の残りの30台のインスタンスのAZバランスが崩れてしまったため、その調整を行うために、AWSが自動的にTerminate - Launchしたのです。

例えば30台のバランスがAz-aが18台、AZ-cが-12台となった場合、AZ-aの3台をTerminateし、AZ-cに3台Launchする挙動をします。

厳密にこのような挙動を取るかどうかは未確認ですので、誤りあればご指摘ください。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0