PluralithでAWSアーキテクチャを生成してみる
はじめに
こんにちは、KGモーターズのエンジニアの中村です!
我々KGモーターズでは、1人乗りの小型EV mibot
を開発しています。
会社の詳細、mibot とはなんぞや?という方は以下の記事をご覧ください!
SDV開発をする上でクラウド技術は必須となりますが、クラウド開発を補助するツールを使ってみた、というのが今回の内容です。
プロジェクトに新しく入ったりした時に、よく以下を思ったことがあります。
- AWSのアーキテクチャってどうなっているんだろう
- 色んな資料に
最新版
と書いてあってどれが新しいんだ...?
IaC(Infrastructure as Code:インフラをコードで管理すること)で開発されているプロジェクトであればGithubにあるコードが最新版なことが多いと思います。
ということで、Terraformで書かれたインフラ構成を可視化できるツールPluralith
を使ってみました。(可視化のところで転けたので、備忘録の意味合いも強いです)
⚠️ 公式のGithubを見ると開発自体は止まっていそうなので、「一時的なツール」という位置付けになりそうです。
前提
- Mac (M4 チップ)
- Terraform入っている
- AWS のアクセスキー, シークレットアクセスキー, (必要に応じて)セッショントークンを環境変数に設定済み
価格
公式ページに価格表がありました。
Localで動かす分には無料。CIで走らせると500回実行で$250。
...(いやっ、まあまあたけぇ...色々調べると「CIで使える未来がある!」という記事も見ますが1回実行で約100円は高すぎる気がする...)
環境構築
男は黙ってサインアップ
アカウントがない方は、以下からサインアップしましょう。
セットアップ
ログイン後、Localで動かしたいので、Local Setupを選びます。
このあとDownload CLI
というボタンが出てきますが、反応しなかったのでGithubからダウンロードしてきました。
インストール
公式にもやり方は書いてありますが、
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 をインストールしないといけないみたいです。
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の通りにダウンロードします。
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の環境構築
再掲: 男は黙ってサインアップ
事前にサインアップはしておく。
インストールと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モーターズでは一緒に事業を作る開発エンジニアを採用中です!
カジュアル面談から可能なので、ぜひお気軽にご連絡ください!
Discussion