Terraformの状態を可視化するツール、「Pluralith」を試す
Pluralith
とは?
プラリス
と読むみたいです。
Terraformの状態(state)を可視化するツールです。
こんな感じの図が自動で作成できたり、
コストやリソースの変更を可視化することができます。
GitHub
ドキュメント
紹介動画
特徴
-
pluralith graph
を実行するだけで構成図を自動作成可能 - CIツールに組み込むことで、ドキュメント・構成図の作成を自動化
- 最新の変更をハイライトして見やすくする
- コストの可視化ができる(
infracost
が必要)
リポジトリのREADMEを参照のこと
使ってみる
Getting Startedに沿って使ってみましょう。
※今回はRun Locally
で試しています。
インストール
Download CLI
手順に従います。
$ pluralith version
_
|_)| _ _ |._|_|_
| ||_|| (_||| | | |
→ CLI Version: 0.2.2
→ Graph Module Version: 0.2.1
ユーザ登録 & ログイン
こちらからユーザ登録します。
settingからAPIキーを取得し、CLIからログイン。
$ export PLURALITH_API_KEY="123xxxyyyzzz"
$ pluralith login --api-key $PLURALITH_API_KEY
_
|_)| _ _ |._|_|_
| ||_|| (_||| | | |
Welcome to Pluralith!
✔ API key is valid, you are authenticated!
パターン1(ネットワークリソースとEC2)
シンプルな構成です。
Terraformの実行場所に移動し、pluralith graph
を実行すると
pluralithコンソールに自動遷移し、図が表示されます。
$ pluralith graph
⠿ Initiating Graph ⇢ Posting Diagram To Pluralith Dashboard
→ Authentication
✔ API key is valid, you are authenticated!
→ Plan
✔ Local Execution Plan Generated
✔ Local Plan Cache Created
✔ Secrets Stripped
- Cost Calculation Skipped
→ Graph
✔ Local Diagram Generated
✔ Diagram Posted To Pluralith Dashboard
→ Diagram Pushed To: https://app.pluralith.com/#/orgs/...略
表示された図がこちら
おっ、わかりやすい。いいですね
パターン2(ECS on プライベートサブネット構成)
過去に作ったECS on プライベートサブネット構成で試しましょう。
すこし分かりづらいかも...
パターン3(s3を追加する)
このように既存のtfファイルにs3を追加します。
resource "aws_s3_bucket" "test" {}
applyはせずにpluralith graph
を実行すると
Changes
からs3のみグラフィカルに表示されていることがわかります。
画面左下Created
を有効にすると作成予定のリソースがグラフィカルに表示されるようです。
terraform plan
より直感的でわかりやすそうです。
パターン4(s3を削除する)
パターン3でs3をapplyした後、tfファイルから記載を削除します。
前回同様applyはせず、pluralith graph
を実行します
-resource "aws_s3_bucket" "test" {}
画面左下Destroyed
が有効になり、削除予定のs3がグラフィカルに表示されました。
パターン5(複数リソース削除する)
s3に加えてEC2とそのセキュリティグループもtfファイルより削除して更新します。
s3に加えてセキュリティグループとEC2もグラフィカルに表示されます。
これはわかりやすいです。意図しない対象の削除も直感的に気づくことができそうです。
所感
- 図は直感的でわかりやすい。導入も簡単
- 意図しないリソースの追加、削除がこれを使うと減りそう
- 簡単な図ならきれいに表示できる。リソース数が多くなってくると分かりづらい
- CIと組み合わせて、自動ドキュメント・作図をするのは夢がある
おわりに
非常に使いやすく、きれいに作図してくれるツールでした。
リソースが少ない小規模のTerraform構成に使うのがよさそうです。
リソースが多い場合は試してから検討しましょう、インストールもまったく難しくないです。
またinfracost
の存在も今回知ったため、今後さわってみたいです。
参考
Discussion