🔥

【生成AI】terraformからdiagramsを使ってインフラ構成図をサクッと綺麗に作成する

2024/09/23に公開

この記事は?

diagramsというライブラリを知ったので、生成AIと合わせてterraformのファイル群からインフラ構成図を自動で作るチャレンジをした。結論から言えば一発で生成できるかは運な気がするが、ある程度手を加えてやれば5〜10分くらいでインフラ構成図が作れそうである。

https://x.com/qumaiu/status/1837661175569699199?s=46

どうやったか

まずはterraformのファイルの中身を書き出した。以下のようなファイル構成を仮定したとき、

.
├── main.tf
└── modules/
    ├── hoge/
    │   └── main.tf
    ├── fuga/
    │   └── main.tf
    └── piyo/
        └── main.tf

次のコマンドでmain.tfのファイル内容を標準出力に吐き出せる。

find . -type f -name 'main.tf' -exec echo "File: {}" \; -exec cat {} \;

上記で吐き出したterraformの内容をChatGPTのo1-previewに渡して、「pythonのdiagramsを使ってインフラ構成図を作って」的なプロンプトを渡すとそれっぽいdiagramsを吐き出してくれる。

あとはcolabにコードを貼り付けて実行すれば、自前の環境構築すら不要でインフラ構成図を作成できる。できたインフラは以下のような感じ。

GCPのSecret Managerがdiagramsのコンポーネントに存在しなかったため空欄になっている。AWSだったらすべてのリソースが定義されているんだろうか。

その他備考

  • ChatGPTの知ってるdiagramsと最新のdiagramsのインポートパスが異なっていることがあるので、そこだけサポートしてやる必要がある
  • インフラの細部は自分で直した方が早い場合も多い
  • トータルの作成時間は10分ほど。2回目以降はもっと早く作れそう

Discussion