はじめに Terraformに関して、現在ではエンジニア界隈でどの位浸透してきているのだろうか。自身はインフラエンジニアからのスタートでは無かったこともあり、DevOps周りに興味を持ち始めてから知るようになってきたという感じだ。 ここではTerraformがどの様なものなのかという概要と使用にあたってのど基本の使い方の流れを解説していければと思う。 Terraformとは何か? 一言で言うのであれば、Terraformはコードでインフラを構築する為のツール。もう少し詳しく言うとコードによりAWSなどのクラウドサービスをコントロールする為のAPI的な窓口を提供しているものと個人的には認識している。 なぜTerraformが必要なのか? ではなぜTerraformが必要になってくるのか、もしくはなぜあると便利なのかと言うと簡単には次の2点に集約されると思う。 まず1点目はコードでインフラを管理する様になるので 構成管理をGit管理することが可能となること 。2点目はTerraformを使用することで 環境の構築または破棄が容易となること であると考えている。 つまりGit管理が可能となるので、インフラの変更の跡をコミットで残すことが出来、アプリケーションのコードの様に開発者間で構築内容を共有出来るということである。従来であれば例えばAWSのコンソール画面からポチポチとセットアップして構築していた為跡を追うのが面倒であったし、跡をドキュメントなどで残していたとしても今度はドキュメントのメンテナンス作業にコストが発生してしまっていた。 それからTerraformを使用することで環境の構築と特に破棄の面で便利さが実感出来る。恐らく1度そこそこのインフラをAWS等で構築したことがある方であれば分かると思うのだが、コンソール画面からポチポチと消す作業などをする際にその消す順番を誤ると消したいものもなかなか消せないという場面に遭遇したことはないだろうか。 これは一つ一つのサービスの依存関係によることが多いのだが、その辺りを消す際に確認せずとも比較的安全にそしてキレイに破棄を行ってくれる。これは地味にTerraformの有り難い機能の一つであると考えている。 なぜTerraformなのか? ここででは他にも同様のサービスは無いのかと思っている方もおられるかもしれないので、一応軽く触...