はじめに
学習で作った AWS リソースを片付けようとしていました。EC2・RDS・ロードバランサー(ALB)など、いろいろあるので、「VPC をまとめて消せば、中のものも一緒に消えるだろう」と考えて、VPC の削除から手をつけました。
ところが、削除しようとするとエラーで止まる。「VPC を消そうとしているのに、消せない」状態になりました。
「いや、消したいのはこの VPC なんだけど…?」と固まりました😅
原因は VPC そのものではなく、まだ中に残っているリソースでした。片付けの順番でつまずいた人のために残します。
環境
- AWS(VPC の中に EC2 / RDS / ALB などを作成済み)
- リージョン ap-northeast-1
起きたこと
最初は VPC からまとめて消そうとして、エラーになりました。VPC を削除しようとすると、「依存しているリソースがある」といった内容で止まり、先に進めません。
正直、この時点では何が悪いのか分かっていませんでした。中身(EC2 や ALB)はまだ動いていたり、削除しきれていなかったりする状態。入れ物(VPC)を先に捨てようとして、中身が引っかかっていたわけです。
原因
VPC は、中に依存するリソースが残っていると削除できません。今回引っかかっていたのは、主にこのあたりでした。
- 稼働中の EC2 … インスタンスを終了しないと、VPC のサブネットを使ったまま
- ALB … 削除しても、サブネットに作られた**ネットワークインターフェース(ENI)**がしばらく残ることがある
- RDS … 削除に数分以上かかることがあり、その間はサブネットを掴んだまま
「VPC が消せない」のは VPC の問題ではなく、中身が先に片付いていないのが原因だったんですね。
解決(作った順の逆で消す)
片付けは、作ったときの逆順(依存される側を後に)でやると、すんなり進みました。
削除する順番
① ALB(ロードバランサー)
② ターゲットグループ
③ RDS
④ EC2(インスタンスを終了)
⑤ DB サブネットグループ ← RDS 削除後
⑥ VPC ← ①〜⑤が消えてから
ポイントは2つでした。
- VPC は最後。 中身(EC2・RDS・ALB など)を先に消す。
- ①の ALB と④の EC2 は「完全に消えた」ことを確認してから VPC へ。 ALB を消した直後はネットワークインターフェース(ENI)の解放に少し時間がかかることがあるので、数分待ってから確認すると安全でした。
VPC の削除画面では、関連するサブネット・ルートテーブル・インターネットゲートウェイ・セキュリティグループなども削除対象として表示され、まとめて片付けられました。
学び
- VPC は中に依存リソースがあると消せない。 「消せない」はだいたい、中身が残っているサイン。
- 片付けは「作った順の逆」で。 入れ物(VPC)は最後。
- 削除直後はすぐ消えないことがある。 ALB の ENI 解放や RDS の削除待ちなど、少し時間を置くと依存が外れる。
おわりに
「入れ物を先に捨てたくなる」気持ちをぐっとこらえて、中身から片付ける——という小さなメモです😅 学習で作った AWS を片付ける人の役に立てば嬉しいです🙌