病みつきエンジニアブログ

機械学習、Python、Scala、JavaScript、などなど

俺がTerraformファイルをいじるときに使ってるツールを雑に紹介する

Terraformは、インフラ管理をコードで管理するためのツールです。具体的にJXでは、AWSのインフラを管理するのに使っています。「インフラを管理する」というのは、今までだったらAWSのWeb管理画面(コンソール)やらAWS CLIでやっていたような作業を、ソースコード(以下、Terraform設定ファイル)で管理できるようになります。

さて、そんなTerraform設定ファイルの編集ですが、正直に言ってかなり時間がかかります。具体的には、AWSとかのリソース名とか覚えていられないし、変数とかも覚えていられないし、リソースに必須なプロパティとか覚えていられないわけです。それをいちいち調べるのがとても時間かかります。

自分なりにいろいろ試してみて、生産性があがったツールを2つ紹介します。

1. IntelliJ(無料)

ひとつ目は、IDEIntelliJ IDEAです。ScalaとかJavaとかを扱うあれです。PyCharmでも構いません。コミュニティエディション(無料)でも使えます。

IDEで編集すると聞くと大仰に感じるかもしれませんが、HCL Language Supportのプラグインが死ぬほど使いやすいです。

とにかく補完が効きます。事前定義済みのAWSのリソース名はもちろんのこと、自分で定義したリソース名や変数名なども補完が効きます。さらに、必須のプロパティが設定されてないと、黄色くなって教えてくれます(Option+Enterで、必須プロパティを全部入力してくれます)。

例)必須プロパティの補完

f:id:yamitzky:20160801164236p:plain

Option + Enterを押すと、、、

f:id:yamitzky:20160801164307p:plain

例)リソース名の補完

f:id:yamitzky:20160801164443p:plain

2. Dash (有料; $24.99)

ふたつ目は、ドキュメント検索ツールのDashです。有料ですが、使い勝手の悪さをガマンすれば無料で使えるはずです。

Dashは、各種言語などの(公式)ドキュメントを検索することができます。なので、リソースのプロパティの細かい仕様を知らなくても、すぐに調べられるわけですね。

しかも、ローカルにキャッシュしてくれるので、とても速いです。わからなくて、ググッて、ネットワークの接続待って、公式ページに辿り着いて、ネットワークの接続待って、、、ってしなくて良いので、かなり効率が上がります。

例)検索

f:id:yamitzky:20160801164910p:plain

公式ドキュメントが表示されます

f:id:yamitzky:20160801164930p:plain

まとめ

以上、2ツールを紹介しました。他に便利なものがあったら教えて下さい。