🚀

Pluralithでterraformを可視化する

2024/05/05に公開

きっかけ

最近、自己学習の中でterraformにてAWSリソースを構築しました。
自分でインフラ構成っぽいものは書いてみたが、いいかんじで自動生成してくれるものがないか探してみたらPluralithなるものが存在したので、使用感を確かめてみるために使ってみます。
使ってみた結果、詰まるところもあったので、メモも兼ねて記事に残しておきます。

ソースコード

コードは以下のリンク先にあります。
https://github.com/ganganbiz1/pluralith-aws-practice

結論

先に結論を書きますと。
α版ということもあり、実運用で使っていくのはちょっと厳しい印象があります。
個人開発あるいは、チーム人数が少なかったり、開発初期等でドキュメントに時間をあまり掛けられないときには使ってみるのはアリかなぁと個人的には思います。
Pluralithのドキュメント通りにやってみましたが、うまくいかなかいことがあったので、導入してもトラブルシューティングに工数取られそうな印象があります。

事前のご説明

私はterraformをDockerで起動していたのですが、Docker内でPluralithをインストールして使ってみようとしましたが、うまくいきませんでした。。。
PluralithにはLinux版もあったので、うまくいくかと思いましたが、うまくいかなかったのでMacに直接、terraformやPluralithをインストールしています。

事前準備

事前にbrewのインストールとPluralithのアカウントは作成しておきます。

Pluralithのアカウントは以下から作成できます。
https://www.pluralith.com/

実際に使ってみる

実行環境

MacBookPro(M3)
Sonoma14.4.1

terraformのインストール

terraformはtfenvでインストールします。

brew install tfenv
tfenv install 1.7.5
tfenv use 1.7.5

Pluralithのインストール

今回はローカルで実行する用の手順でやっていきます。
クラウド版の手順もあるようです。

1. まずはPluralith本体のインストール

以下からMac用のバイナリをダウンロード
https://github.com/Pluralith/pluralith-cli/releases
pluralith_cli_graphing_linux_amd64_0.2.1

こちらを参考にダウンロードしたバイナリをpluralithにリネームして/usr/local/bin/配下に置いて、実行権限を付与します。

参考コマンド

mv pluralith_cli_darwin_amd64_v0.2.2 pluralith
mv pluralith /usr/local/bin/
chmod +x /usr/local/bin/pluralith

2. pluralith-cli-graphingのインストール

本来だったらPluralith本体入れればよいはずだと思ったのですが、、、うまく動かず
こちらのissueと同じ事象が発生しました。
pluralith versionを実行してもGraph Module Version: Not Installedという状態でした。
issue内で別の方がご共有されていましたが、pluralith-cli-graphingを直接インストールします。

前置きが長くなりましたが、実際にインストールしていきます。

以下からmac用のバイナリをダウンロード
https://github.com/Pluralith/pluralith-cli-graphing-release/releases

ダウンロードしたバイナリをpluralith-cli-graphingにリネームして/usr/local/bin/配下に置いて、実行権限を付与します。

参考コマンド

mv pluralith_cli_graphing_darwin_amd64_0.2.1 pluralith-cli-graphing
mv pluralith-cli-graphing /usr/local/bin/
chmod +x /usr/local/bin/pluralith-cli-graphing

3. インストール確認

pluralith version

を実行してCLI Version、Graph Module Versionが表示されればOK。

%pluralith version
parsing response failed -> GetGitHubRelease: %!w(<nil>)
 _
|_)|    _ _ |._|_|_
|  ||_|| (_||| | | |

→ CLI Version: 0.2.2
→ Graph Module Version: 0.2.1

出力

  1. まずはterraform init
terraform init
  1. pluralithにログイン(APIキーはこちらからログインすれば入手できます)
pluralith login --api-key <APIキー>
  1. 出力
pluralith graph --local-only
  1. 確認
    上記3のコマンド実行したディレクトリにPDFが出力されました。
    (ローカルの場合はPDFのみしか出せない??)

実際の出力ファイルはGithubに上げています。

ちなみに以前自分で書いたインフラ構成は以下です。

こちらもGithubに上げています。

所感

インストールで詰まったものの、出力結果を見るとかなりいいかんじにAWSリソースが可視化されていると思いました。

準備や実際の出力までの諸々のトータルで1時間くらいで出せたので、terraformを直して、その都度インフラ構成を手で修正してみたいな運用するよりも手間も少なくて早く済でしまいます。
手で書いたときはSecretManagerとかは省略してしまったのですが、ちゃんと出ています。
一方でSESといったVPCに属さないリソースはリレーションが表現されないので、このあたりは手で書いた方が細かい表現ができるといったかんじです。

なので、導入するとしたら個人開発か、開発初期等でドキュメント周りに工数かけられない場合にした方がよいかなと思いました。

この記事がどなたかのご参考になれば幸いです。

Discussion