ちょっと話題の記事

CloudFormationのjsonを可視化するツールを作ってみた

2014.01.27

久しぶりのmakotanです。CloudFormationはAWSのプロビジョニングツールとしていつも便利に使っているので、ちょっとツール作ってみました。

はじめに

CloudFormationで困る事といえば、巨大なJsonの塊で依存関係を探すのに一苦労して、編集しようとして関連を断ってしまって動かしてから間違いに気がついたりして、起動/終了の前後関係を理解するのに苦労してたので、CFn嫌いになる前に可視化ツールを作ってみました。

まずは大好きfullbokを可視化したサンプルをどうぞ!(画像をクリックすると拡大します)

fullbok

こうやってみると、おおよそどの順番で起動するのかとかparameterがどの設定と関係している等がjsonよりだいぶ分かりやすくなると思います。

右から順番に起動し、左から順番に終了します。線の上に関連名(ref等)があります。

AWSのResourceの色はAWSで使われている配色と同じにしています

導入

動作に必要な環境・ツールは以下の3つです。WindowsでもMacでもちゃんと動きます

Java7

Maven

Graphviz

インストール方法などは各マニュアルなどを参照してください。

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/cassandra.template"

cassandra

特定の名前とそれに関係するものを表示したい場合はこちら

mvn exec:java -Dexec.args="-i src/test/resources/cassandra.template -pickup CassandraRole"

cassandra-pickup

依存の段階に応じて色が薄くなるようにしています。

まとめ

CloudFormationをテストするときの実行待ちに作ってたツールですが、社内のCloudFormationヘビーユーザーの受けが良かったのでOSSにしてみました。本当はクリスマスに公開するつもりだったのが忙しくて1ヶ月ほど遅くなりましたw

簡単な実装なので、改造したり機能追加したりしてpull requestお待ちしています。