VPCの依存リソースがあって削除できない場合の対処法

ソリューションアーキテクト森です。
今日は単純なものですが、運用Tipsをご紹介します。
よく発生するのですが、VPCの依存リソースが見つけられなくて削除できずイライラすることがただあります。とくにVPCには作成数の上限もあるので削除できないととても困ることがあります。
その場合どこ見ればいいかメモします。

VPCの依存リソースとは

まずVPCの依存リソースについて軽くご説明します。
VPCはクラウド上に作成することのできるプライベートなネットワーク空間です。このVPCの中にVSwitch(セグメント)やECSインスタンスやRDSインスタンスなどを作成していくことができます。
VPCを削除する場合には、これらVPCの中に作成されているリソースをすべて消さないと削除できません。
この依存リソースが一覧で見ることができれば一番よいのですが、現状一覧ですべてみることができないので、自分で探し当てて消さないといけません。

対処法について

困った場合には下記のリソースの確認や方法をおこなってみましょう。

1. ECS, RDS, SLBなどの基本リソースをみる

まずは削除したいVPCを選択しましょう。ここに依存リソース(の一部)を見ることができます。ここで、下記があるかどうか確認しましょう。

  • ECSインスタンスが0であること
  • RDSインスタンスが0であること
  • Route Tableが1であること(こちらはデフォルトで1つ付いています)
  • VSwitchが0であること
    • ECSインスタンスやRDSインスタンスはVSwitch内に作成されるので、ECSなどを先に削除する必要があります。
  • NAT Gatewayインスタンスが0であること
  • Security Groupが0であること
  • SLBインスタンスが0であること

2 他の隠れリソースを探す

実際、上で紹介した基本リソースが全て消されていても、削除できない場合があります。その際にはズバリ下記をみてください。自分は4番目のTableStoreのバインを見落としていて困っていました。

  • RedisインスタンスがVPCの中に存在していないか
  • MemcacheインスタンスがVPCの中に存在していないか
  • ExpressConnectのRouter InterfaceがVPCと紐付いていないか
  • TableStoreのテーブルがVPCバインドがされていないか
  • VPN GatwayがVPCとバインドされていないか

3. リソース制御には可能な限りTerraformを使う

Alibaba CloudではTerraform Providerを提供しています。すべてのプロダクトに対応しているわけではありませんが、簡単なものであれば可能な限りTerraformを使うことで、こういったことから開放できるかなと思います。Terraformを使うことで、リソースの作成や削除を自動化することが可能になります。
とても便利なツールなので、使ったことない方は騙されたと思って使ってみてください。

Github: alibaba/terraform-provider: Terraform for Alibaba Cloud.
Alibaba Cloud 日本リージョンがTerraformに対応したので試した

この記事をシェアする