はじめに
こんにちは、社畜Sです。
最近新しい案件でTerraformを触る機会がありました。
せっかく新しく触ったものをそのままにしておくのもなんだかもったいないので、今回はTerraformのざっくりとした概要と合わせて、初心者目線からTerraformを触ってみた感想を記事にしていこうと思います。
完全初心者目線での感想ですのでTerraform仙人の皆様には物足りない記事かもしれませんが、「自分たちにもこんな頃があったなぁ」と生暖かい目で見守ってください。
学習開始時のレベル
・仕事が始まって4か月目
・IaCは1~2か月前にAWS Cloudfourmationで簡単な環境を作った経験のみあり
・Terraformは今回の案件で初めて知ったので完全に知識0
そもそもTerraformって何?
HashiCorpによって開発されたIoC(Infrastructure as Code)ツールのことです。
他のIaCツールと同じようにクラウドリソースやインフラストラクチャをコードで管理するためのツールなんですが、CloudfourmationのようにAWS専用点ということはなく、AWS、Azure、Google Cloud、Kubernetesなど、さまざまなプラットフォームに対応しているようです。
使う構成言語は 「HCL」 という直感的かつ読みやすい独自の言語で、読みやすい設定ファイルを書くことができるのでどういう構成になっているのか理解しやすいです。
また 「terraform plan」 という、実行前にどのリソースが作成されるかを一覧で表示してくれる機能もあるので、予期しない変更を防いだり、変更が正確であることを確認することもできます。
実際使ってみた感想
今回はAWSの「Amazon EventBridge」のスケジュール、「AWS Step Functions」のステートマシン、それを実行するためのIAMロールとIAMポリシーをTerraformを作ってみました!
とりあえず結論から言いますと
めっちゃ書きやすい!(気がする)
一度手作業でやったからか、Cloudfourmation触ったことがあるからかはわかりませんがとてもスムーズに書くことができました。
テンプレート機能というポリシーやら設定などの長くなってしまう部分を別ファイルに記述できる機能が特によく、ぱっと見でどういうことをしているのかもわかりやすい、見やすいコードを書くことができました。
今回はAWSで使いましたが、ほかのクラウドサービスにも対応しているらしいので、あえてTerraform からはじめてみるのも様々なクラウドサービスに対応できていいのかもしれません
まとめ
というわけで、今回はTerraformを使ってみての初心者目線での感想を書いてみました。
私もまだ軽くリソースを何個か作っただけなので、深いことは話せていませんが、少し触っただけでもその使いやすさが伝わってくるいいツールでした!
今回紹介した「terraform plan」と「テンプレート機能」以外にもTerraformには様々なコマンドや便利な機能が数えきれないくらいあります。
ぜひ皆さんも使ってみて、Terraformのすごさを体感してみてください!