sorta kinda...

主にAWS関連ですが、これに限らずいろいろ勉強したことや思ったことを書いていきます。

Auto Scaling で EC2 インスタンスをメンテナンスする時の注意点2 [cloudpack OSAKA blog]

ナスです。

先日、こんな記事を書きました。

nasrinjp1.hatenablog.com

結論から書くと、私が間違ってました。AWSのバグとか疑ってごめんなさい…

 

で、結局なんだったの?

Auto Scaling の設定の中に、スケーリングポリシーというものがあります。これは、例えば Auto Scaling グループ内の EC2 インスタンスの CPU 負荷が xx% 超えたら EC2 インスタンスを追加するとか、逆に xx% 以下になったら EC2 インスタンスを削除するとかするものです。負荷によって、動的に EC2 インスタンスの数を増減できるのが特徴です。

こんなのです。
f:id:nasrinjp1:20170112233303p:plain

で、私、このポリシーの動きを理解していませんでした。

スケーリングポリシーを設定していると、

  1. 最小値を -1 する
  2. スケーリングポリシーに設定した CloudWatch アラームを見て条件に合致している、と判断する
  3. 希望値が -1 される
  4. EC2 インスタンスが 1 台削除される

ということが起こっていました。しかも最小値を変更した瞬間に。1 を実施した後にアクティビティ履歴をみると、こうなってました。
f:id:nasrinjp1:20170112233354p:plain

 

こういう状況でもデタッチしたい時はある!

メンテナンスせざるを得ない時もあると思いますので、下記のように対処すれば大丈夫です。

最小値を減らす時に、「停止したプロセス」に AlarmNotification を追加します。これで、最小値を減らしても、CloudWatch からのアラームを受け取ることをやめます。
f:id:nasrinjp1:20170112233459p:plain

上の画像でも、実際に希望値は最小値と同じになっていません。これで安心してデタッチなりスタンバイ設定なりできますね。