LoginSignup
2
0

More than 5 years have passed since last update.

ELB(v2)配下のEC2を削除するとゾンビ化したインスタンスが残る

Posted at

ターゲットグループに所属したままのEC2インスタンスを削除すると、ターゲットグループ配下にゴミとして残りdescribe-target-healthの結果に削除済みのインスタンスが入ってくることがある。
1台起動、1台停止、1台削除した状態で以下のコマンドを実行すると、

aws elbv2 describe-target-health --target-group-arn [ターゲットグループのARN]

このような結果が返ってくることがある。

ID: i-xxxxxxxxxxxxxxxxx / state: healthy / reason: undefined          # 起動しているインスタンス
ID: i-yyyyyyyyyyyyyyyyy / state: unused / reason: Target.InvalidState # 停止しているインスタンス
ID: i-zzzzzzzzzzzzzzzzz / state: unused / reason: Target.InvalidState # 削除済みのインスタンス

削除済みのインスタンスはいずれガベコレされるものと思われるが、それがいつかは分からない。
しかも、このゾンビが停止中のインスタンスと区別が付かない。

実際、ここを見ると、Target.InvalidStateになるのは、停止しているインスタンスまたは削除済みのインスタンスである。
http://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-target-health.html

性質が悪いのは、このインスタンスがAWSコンソールから見えないこと。
EC2のターゲットグループページからインスタンスタブを開いても、一覧に表示されるのはi-xxxxxxxxxxxxxxxxxとi-yyyyyyyyyyyyyyyyyの2つだけである。

どうやらCLIから削除するしかないらしい。
これを実行することで、このゾンビを駆除できる。

aws elbv2 deregister-targets --target-group-arn [ターゲットグループのARN] --targets Id=i-zzzzzzzzzzzzzzzzz,Port=80

このコマンドの実行直後に取得すると次のような結果が返り、削除済みのインスタンスは区別できる状態となる。

ID: i-xxxxxxxxxxxxxxxxx / state: healthy / reason: undefined
ID: i-yyyyyyyyyyyyyyyyy / state: unused / reason: Target.InvalidState
ID: i-zzzzzzzzzzzzzzzzz / state: draining / reason: Target.DeregistrationInProgress

しばらく時間を置くと次のように完全に削除されるようだ。

ID: i-xxxxxxxxxxxxxxxxx / state: healthy / reason: undefined
ID: i-yyyyyyyyyyyyyyyyy / state: unused / reason: Target.InvalidState
2
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
2
0