🧙

PluralithでAWSアーキテクチャを生成してみる

に公開

はじめに

こんにちは、KGモーターズのエンジニアの中村です!
我々KGモーターズでは、1人乗りの小型EV mibot を開発しています。

会社の詳細、mibot とはなんぞや?という方は以下の記事をご覧ください!

https://zenn.dev/kg_motors_mibot/articles/125407531a12ec

SDV開発をする上でクラウド技術は必須となりますが、クラウド開発を補助するツールを使ってみた、というのが今回の内容です。

プロジェクトに新しく入ったりした時に、よく以下を思ったことがあります。

  • AWSのアーキテクチャってどうなっているんだろう
  • 色んな資料に最新版と書いてあってどれが新しいんだ...?

IaC(Infrastructure as Code:インフラをコードで管理すること)で開発されているプロジェクトであればGithubにあるコードが最新版なことが多いと思います。
ということで、Terraformで書かれたインフラ構成を可視化できるツールPluralithを使ってみました。(可視化のところで転けたので、備忘録の意味合いも強いです)

⚠️ 公式のGithubを見ると開発自体は止まっていそうなので、「一時的なツール」という位置付けになりそうです。

https://github.com/Pluralith/pluralith-cli

前提

  • Mac (M4 チップ)
  • Terraform入っている
  • AWS のアクセスキー, シークレットアクセスキー, (必要に応じて)セッショントークンを環境変数に設定済み

価格

公式ページに価格表がありました。
Localで動かす分には無料。CIで走らせると500回実行で$250。

...(いやっ、まあまあたけぇ...色々調べると「CIで使える未来がある!」という記事も見ますが1回実行で約100円は高すぎる気がする...)

環境構築

男は黙ってサインアップ

アカウントがない方は、以下からサインアップしましょう。

https://app.pluralith.com/#/auth

セットアップ

ログイン後、Localで動かしたいので、Local Setupを選びます。

このあとDownload CLIというボタンが出てきますが、反応しなかったのでGithubからダウンロードしてきました。
https://github.com/Pluralith/pluralith-cli/releases

インストール

公式にもやり方は書いてありますが、
pluralith コマンドを使えるように、ダウンロードした実行ファイルを /usr/local/bin に移動し、実行権限を付与します。
(PATH に /usr/local/bin が含まれているため、どのディレクトリからでも pluralith と入力するだけでコマンドが実行できるようにします)

cd {path to pluralith_cli_darwin_amd64_v0.2.2}
mv pluralith_cli_darwin_amd64_v0.2.2 pluralith
sudo mv pluralith /usr/local/bin/pluralith
chmod +x /usr/local/bin/pluralith

Pluralith の CLI でクラウド連携を使うためには、API KEY を使ってログインが必要になります。
ここで先ほど控えていたAPI KEYを使います!

# 環境変数を設定
PLURALITH_API_KEY={your API KEY}
# API Key を渡してログイン
pluralith login --api-key $PLURALITH_API_KEY

以下のように出ればOKです。

Welcome to Pluralith!
✔ API key is valid, you are authenticated!

いざ実行

該当のterraformの場所に行き、

pluralith graph

を実行するとエラーになります。

→ Graph
  ✘ Local Diagram Generation Failed

generating diagram failed -> GenerateGraph: running CLI command failed -> GenerateDiagram: fork/exec /Users/{User名}/Pluralith/bin/pluralith-cli-graphing: no such file or directory

Graph CLIのインストール

エラーメッセージの以下が怪しそうですが、
GenerateDiagram: fork/exec /Users/{User名}/Pluralith/bin/pluralith-cli-graphing: no such file or directory

ガサゴソ調べてみるとこのIssueと同じ原因でした。Graph 用の CLI をインストールしないといけないみたいです。

https://github.com/Pluralith/pluralith-cli/issues/131

versionを確認してみると、最後にGraph Module Version: Not Installedと表示されており、確かに入っていないことがわかります。

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

→ CLI Version: 0.2.2
→ Graph Module Version: Not Installed

issueの通りにダウンロードします。

https://github.com/Pluralith/pluralith-cli-graphing-release/releases

pluralithと同様に Rename し、~/Pluralith/bin/pluralith-cli-graphingに配置します。

cd {path to pluralith_cli_graphing_darwin_amd64_0.2.1}
mv pluralith_cli_graphing_darwin_amd64_0.2.1 pluralith-cli-graphing
sudo mv pluralith-cli-graphing ~/Pluralith/bin/pluralith-cli-graphing
chmod +x ~/Pluralith/bin/pluralith-cli-graphing

再度Versionを確認すると、Graph 用 CLI がダウンロードできていることがわかります。(ここ→ Graph Module Version: 0.2.1)

pluralith version

 _
|_)|    _ _ |._|_|_
|  ||_|| (_||| | | |

→ CLI Version: 0.2.2
→ Graph Module Version: 0.2.1

n 度目の正直で実行

そしていよいよアーキテクチャーの可視化を行います。

pluralith graph

ブラウザが立ち上がりました!!
(詳細はお見せできず...Blurでボカしています...すみません...)

左下のExport機能で、PDF と PNG 形式でダウンロードすることもできます。

またコスト表示も可能という目玉っぽい機能がありますが、infracost が必要になります。

せっかくなのでやってみましょう。

infracostの環境構築

再掲: 男は黙ってサインアップ

事前にサインアップはしておく。
https://dashboard.infracost.io/

インストールとAPI KEYの取得

brew install infracost
infracost auth login

ブラウザが立ち上がるので指示通りに進むと以下のような画面になります。

一方、Terminalでは、API KEYに関する情報が出てきます。

The API key was saved to /Users/{User名}/.config/infracost/credentials.yml

(n+1)度目の実行

この API KEY を使って、再度可視化します。

INFRACOST_API_KEY=xxxxxx
pluralith graph

再度ブラウザが立ち上がります。左上にあるメニューでCostに切り替えると、サービスにかかる費用が表示されています。便利そう!
月単位、時間単位、またTotalなのか前回との差分(diff)なのか、など色々変えてコストを表示できます。

最後に

補助ツールとしてPluralithを使う中でつまったり、infracostを入れるとより便利になったりとTIPS要素が多そうだったのでBlogとして残しました!

またKGモーターズでは一緒に事業を作る開発エンジニアを採用中です!
カジュアル面談から可能なので、ぜひお気軽にご連絡ください!

https://kg-m.jp/recruit

Reference

KGモーターズ Tech Blog

Discussion