CloudFormationのjsonを可視化するツールを作ってみた
久しぶりのmakotanです。CloudFormationはAWSのプロビジョニングツールとしていつも便利に使っているので、ちょっとツール作ってみました。
はじめに
CloudFormationで困る事といえば、巨大なJsonの塊で依存関係を探すのに一苦労して、編集しようとして関連を断ってしまって動かしてから間違いに気がついたりして、起動/終了の前後関係を理解するのに苦労してたので、CFn嫌いになる前に可視化ツールを作ってみました。
まずは大好きfullbokを可視化したサンプルをどうぞ!(画像をクリックすると拡大します)
こうやってみると、おおよそどの順番で起動するのかとかparameterがどの設定と関係している等がjsonよりだいぶ分かりやすくなると思います。
右から順番に起動し、左から順番に終了します。線の上に関連名(ref等)があります。
AWSのResourceの色はAWSで使われている配色と同じにしています
導入
動作に必要な環境・ツールは以下の3つです。WindowsでもMacでもちゃんと動きます
インストール方法などは各マニュアルなどを参照してください。
mavenとGraphvizはpathを通す必要があります。
gitで cfngraph プロジェクトを取得してください
git clone https://github.com/makotan/cfngraph.git
動作確認
以下の2つのコマンドをshellやコマンドラインから実行してエラー無く動くことを確認して下さい
dot -V
maven -version
使い方
cfngraphをcloneしたディレクトリに移動して一度以下のコマンドを入力します。
mvn package
画像の生成は以下のコマンドを入力すると、templateの同じディレクトリ上にgvファイルとjpgファイルが出来上がります
mvn exec:java -Dexec.args="-i src/test/resources/cass
andra.template"
特定の名前とそれに関係するものを表示したい場合はこちら
mvn exec:java -Dexec.args="-i src/test/resources/cassandra.template -pickup CassandraRole"
依存の段階に応じて色が薄くなるようにしています。
まとめ
CloudFormationをテストするときの実行待ちに作ってたツールですが、社内のCloudFormationヘビーユーザーの受けが良かったのでOSSにしてみました。本当はクリスマスに公開するつもりだったのが忙しくて1ヶ月ほど遅くなりましたw
簡単な実装なので、改造したり機能追加したりしてpull requestお待ちしています。