スタンバイ状態の EC2 が削除できない!!その時あなたはどうする!?
「Auto Scaling グループからスタンバイ状態の EC2 インスタンスが削除できない!!」
ってお悩みの方いませんか?今回は「スタンバイ状態のおさらい」と関連する「たまにあるお問い合わせ」を2つ紹介します。 それでは早速やっていくっ!
スタンバイ状態のおさらい
Auto Scaling ライフサイクルのインスタンス状態の1つである、スタンバイ状態は、メンテナンスや調査時に一時的に切り離すのに便利です。以下の弊社ブログが分かりやすいかと思うので紹介しておきます。
【新機能】Auto Scaling groupのインスタンスに新しい状態「Standby State」が追加されました。
たまにあるお問い合わせ1
「Auto Scaling グループからスタンバイ状態の EC2 インスタンスが削除できない」という内容です。確かにマネジメントコンソール上でスタンバイ状態のインスタンスをデタッチしようとしてもクリックできません。
なぜなのか
こちらの理由は下図の Auto Scaling ライフサイクルのインスタンス状態の遷移で説明がつくと思います。スタンバイ状態(Standby)からデタッチ状態(Detached)に行くには、実行中状態(InService)の経由が必要であることが分かります。
対応方法
ではマネジメントコンソールを使って Auto Scaling グループからスタンバイ状態の EC2 インスタンスを削除してみましょう。ポイントは「実行中状態(InService)を経由すること」と「EC2 Auto Scaling グループの最大数」です。
以下に手順を示します。
- Auto Scaling グループの最大数を現在のインスタンス数 + スタンバイインスタンス数より大きな値にする
- Auto Scaling グループ「インスタンス」のタブからライフサイクルがスタンバイのインスタンスにチェックする
- 「操作」ボタンをクリック
- 「実行中に設定」をクリック
- 「実行中」になったら、「操作」ボタンから対象のインスタンスを「デタッチ」
- Auto Scaling グループの最大数を元の値に戻す
たまにある問い合わせ2
「スタンバイ状態の EC2 インスタンスをインスタンスごと削除したのに、削除した EC2 インスタンスがスタンバイ状態で Auto Scaling グループに残っている」という内容です。マネジメントコンソールで再現してみましょう。
- Auto Scaling グループ配下にあるスタンバイ状態の EC2 インスタンスをインスタンスごと削除
- Auto Scaling グループには、削除した EC2 インスタンスがスタンバイ状態で残っている(しかもヘルスステータスは Healthy )
なぜなのか
こちらの理由は、以下の公式ドキュメントに説明があります。スタンバイ状態のインスタンスはヘルスチェックが実行されないので、インスタンスごと削除しても認識されずにそのまま残っているという次第です。
Auto Scaling グループから終了した EC2 インスタンスを削除する方法を教えてください。
EC2 Auto Scaling は、スタンバイ状態のインスタンスのヘルスチェックを実行しません。EC2 Auto Scaling は、スタンバイ状態のインスタンスのインスタンス終了を認識しません。
対応方法
Auto Scaling グループから削除する方法が以下の公式ドキュメントに3つ紹介されています。自身のケースに適した方法で対応しましょう。
Auto Scaling グループから終了した EC2 インスタンスを削除する方法を教えてください。
- AWS コマンドラインインターフェイス (AWS CLI) を使用して、インスタンスを終了します。
- EC2 Auto Scaling グループからインスタンスをデタッチします。これで EC2 Auto Scaling コンソールからインスタンスが削除されます。
- インスタンスをスタンバイ状態から解除すると、Auto Scaling はヘルスチェックを使用してインスタンスの終了を検出できます。
まとめ
- スタンバイ状態の概要を理解しよう
- たまにある問い合わせの内容を理解して、対応できるようにしておこう
最後に
いかがだったでしょうか。知っていればすぐに解決できますが、意外と詰まりやすく、たまにお問い合わせもあるので紹介してみました。
以上!筧( @TakaakiKakei )でした!
更新履歴
- 2020/01/31 新規作成