管理人Kのひとりごと

デジモノレビューやプログラミングや写真など

非存在サブネットの罠: CloudFormationのIaCGeneratorテンプレート登録失敗の真相

※タイトルは生成AIによるものです。
CloudFormationのIaC generatorで生成したテンプレートをスタックとしてインポートしようとした際、エラーが発生したため、それに対応した記録です。

経緯

(前提)IaC Generatorとは

IaC Generatorは、AWS CloudFormationの機能の一部で、既存のAWSリソースを基にCloudFormationテンプレートを生成するサービスです。類似の機能として、外部ツールの「Former2」があります。(こちらの方がIaC Generatorよりも前に存在していた)


操作内容

IaC Generatorを利用し、思いつくまま既存のVPCに紐づく、VPCやサブネット、ルートテーブルなどのリソースを登録しました。
(いろいろやっているうちによくわからないリソースが蓄積されてきたので、CloudFormationのスタックとして登録し、一括削除したかった)

エラー発生

リソースのインポート中にエラーが発生。
テンプレート内に多数の定義があったため、どの箇所がエラー箇所かわからなかったのですが、「根本原因を検出」ボタンで、該当箇所が示されました

テンプレートの当該箇所

どうやら原因はRDSのサブネットグループにある模様。RDSインスタンスは削除していたので、このあたりの不整合かな...と気づきました

実際のDBサブネットグループ内容

サブネットグループ名***be2には、subnet-***8bbが含まれてなさそう(=不整合がある)ことがわかりました

VPCサブネット存否を確認

VPC内のサブネットにも存在しないことが判明。つまり、サブネットグループ内に定義されたサブネットがないにも関わらず、インポートしようとしたためエラーが発生ことがわかりました

テンプレート編集画面から、当該定義を除去

ということで、テンプレートの編集画面から、当該定義を削除して、再度インポートしたところ成功しました

感想

依然作ったVPC関係のリソースを消したくて、1つ1つ当たるより、IaC generatorで定義化の上、スタックとして登録→削除で消した方が良いかなーと思って取り組んだのですが、てこずりました。やはり初めからCloudFormationで管理するのが良さそうですね...