Terraformコードを構造化してnanobanana proでアーキテクチャ図を生成すると捗る

メディア統括本部 サービスリライアビリティグループ(SRG)の鬼海(@fat47)です。
#SRG(Service Reliability Group)は、主に弊社メディアサービスのインフラ周りを横断的にサポートしており、既存サービスの改善や新規立ち上げ、OSS貢献などを行っているグループです。
本記事は、TerraformのコードをRepomixで構造化したうえで、Gemini(Nanobana Pro)でアーキテクチャ図を作成すると良さそうという記事になります
なにかの役に立てば幸いです。
 

Nanobanana Proとは


Nano Banana Pro(Gemini 3 Pro Image)は、11/20にGoogleが発表した画像生成AIモデルで、従来のモデルとは比べ物にならないほど出力の精度が高く、文字が破綻せずに出力できる性能があります。

Repomixとは


Repomixは、yamadashyさんが作成されているOSSで、リポジトリ全体をAIが理解しやすいような単一のファイルにまとめてくれるツールです。
 
今回の例ではTerraformコードを管理しているリポジトリに対してRepomixを実行することで、リポジトリ内のディレクトリで分かれているModuleやResourceをすべてひとつのxmlファイルにまとめています。
 
Repomixインストール
 
リポジトリのディレクトリで実行すると、そのディレクトリにrepomix-output.xmlが生成されます。

アーキテクチャ図を生成させるプロンプト


日本語だとたまに画像を生成してくれないことがあったので、英語で指示しています。
📖
タスク: Nanobanana Pro を使用してアーキテクチャ図の画像を作成する。
背景:
  • 添付ファイルは Repomix を使用して XML に変換された Terraform リポジトリである。
  • ディレクトリには共有コンポーネント(例: VPC)が含まれる。
  • その他のディレクトリは個々のサービスを表す。
制約事項:
  • コンポーネント間の接続関係を明確に可視化する。
  • IAMロールは除外し、煩雑さを軽減する。
  • Route53レコード情報は除外する。
 
この指示と、Repomixで生成したファイル(repomix-output.xml)をGeminiに与えます。
今回はこのようなアーキテクチャ図が生成されました。
 

Gemini CLIで画像生成


GeminiのWebUIからではなく、CLIからも画像生成させることもできます。
CLIから画像生成するために、gemini-cli-xtensions/nanobananをインストールします。
 
gemini-cli-extensionsについてはこちらをご参照ください。
 
インストール
 
nanobanana proを有効にするために以下の環境変数を設定します。
 
geminiを起動してextensionの確認します。
これでnanobanana のextensionが有効になったことが確認できました。
 
nano bananaのextensionには以下の命令があります。
📖
/generate - スタイルやバリエーションのオプションを指定して、1枚または複数の画像を生成します。
/edit - 画像を編集します。
/restore - 画像を修復・復元します。
/icon - アプリアイコン、ファビコン、UI要素を複数のサイズで生成します。
/pattern - 背景用に使える、シームレス(継ぎ目のない)なパターンやテクスチャを生成します。
/story - 視覚的なストーリーやプロセスを伝える、連続した画像を生成します。
/diagram - 技術図面、フローチャート、建築モックアップなどを生成します。
/nanobanana - 自然言語(話し言葉)によるインターフェースです。
 
生成する画像の種類を明確に指定することもできますが、今回は/nanobananaで自然言語による命令で生成してみます。
Terrafomのコードがあるリポジトリのディレクトリで、geminiを実行してextensionを呼び出します。
 
実行コマンド
 
実行した画面を見てみると、repomix-output.xmlを読んで、generate_diagramのツールが呼び出されていることがわかります。
 
画像は実行したディレクトリの ディレクトリに生成されます。
画像を確認してみましょう。
 
diagramのツールが呼び出されたことで、GeminiのWebUIから生成した画像よりも、よりアーキテクチャ図として整理された画像になっているとおもいます。

終わりに


nanobanana proの精度の高さに驚かされますね。
CLIからも実行できるようにすることで、CIに組み込むこともできるので常に最新のアーキテクチャ図をコードの更新に合わせて生成するということもできそうです。
 
SRGにご興味ありましたらぜひこちらからご連絡ください。