1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ASG内のEC2をスタンバイへ移行→デタッチする際のノード補充オプションが分かりにくい件

Last updated at Posted at 2022-01-29

TL;DR

AutoScalingグループ内で稼働しているEC2のうち1台をスタンバイ状態へ変更し、さらにデタッチする際、いずれの操作においても「代替ノード補充」オプションを有効にしていないと稼働台数が減ってしまうため注意!

どういうケースでの話?

商用環境で常時2台のEC2インスタンスが稼働するAutoScalingグループがあったとする。
このうち1台の調子が悪いので、一時的に「スタンバイに設定」する。
スクリーンショット 2022-01-29 17.20.32.png

このとき、サービス影響を出したくないため代替ノードを補充する。
スタンバイ移行時に「新しいインスタンスを追加」オプションを有効にして実行する。
スクリーンショット 2022-01-29 17.20.45.png

すると当該インスタンスが「Standby」ライフサイクルへ移行すると同時に、代替インスタンスが「Pending」状態で出現し稼働準備をはじめる。
スクリーンショット 2022-01-29 17.21.03.png

ハマりポイント

さて、問題はここから。
不良インスタンスが無事にスタンバイ状態となり、代わりの新規ノードを含めた2台が「InService」状態で元気に稼働している。
スクリーンショット 2022-01-29 17.22.35.png

不良ノードのログ調査も完了したため、紛らわしいこいつはTerminateしてお掃除してしまいたい。
で、とりあえずインスタンス終了する前に**「ASGからデタッチしとくか」**という際に今回の問題が発生する。
スクリーンショット 2022-01-29 17.36.33.png

デタッチの際も代替インスタンス補充要否のオプションが提示されるのだが、現状「2台がInService+1台がStandby」なので**「インスタンス新規追加は不要だよ〜チェック入れずデタッチ…っと」**と進めてしまうと…
スクリーンショット 2022-01-29 17.36.55.png

「ASGの台数設定に違反するからダメ〜!」と怒られてしまう。
そう、チェック無しだと「Standbyノード1台」だけでなく、「代替追加されたInServiceノード1台」も合わせてデタッチしようとしてしまう仕様らしい。これは分かりにくい…。
スクリーンショット 2022-01-29 17.39.29.png

ということで、当該オプションにチェックを入れてリトライ。
すると「InService」ノード2台は変更されることなく、「Standby」ノード1台のみが「Detaching」へ移行してくれた。ほどなくしてASGから削除される。
スクリーンショット 2022-01-29 17.42.24.png

まとめ

このケースは商用稼働中のASGに対するトラブル時のワークアラウンドとしてそこそこ実施される作業ではないかと思う。
とりわけエンタープライズな環境だと、想定手順通りに作業が進まないと「イレギュラー発生」扱いとなりトラブル対応がさらに紛糾することも予想されるため、このややこしい仕様は把握しておいた方がよさそう。

というか、いちいちスタンバイへ移行することなくいきなりデタッチしてしまう方がいいかも。
さらに言うと、調査目的などでインスタンスの保全が必要な場合を除いては「不良インスタンスを停止」したり「インスタンス更新でローリング置換を実施」する方がシンプルで安全だと思われる。

※ なおASGの基本的な挙動については以下の記事もどうぞ。
 【EC2温故知新】AutoScalingグループの挙動をマネコンで観察してみる

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?