Lapis Lazuli

technical blog for web developer

Terraformはじめました

はじめに

最近terraformを会社で導入しました。
インフラをVPCから新規で一式用意することになって、せっかくなのでインフラのコード化をしてみようかなと思いました。
しばらくしか使わない可能性がありますし、コードで管理していたほうが後々便利だなと思ったからです。
本音は使ってみたかったというのが大きいんですけどね・・・笑

terraformとは

いわゆるinfrastructure as codeと言われるものになります。
コードでAWSGCPなどのクラウドリソースを管理できるものです。
コードでリソースを管理するので、同じ構成をいくつも作るとなったときに漏れなく同じものを作れます。
コンソールからポチポチやってもいいのですが、当然ヒューマンエラーというものは発生しますし、手順書を作っても仕組みが変わっていて使えないとかあります。
それを解消してくれるのがterraformはじめインフラ構成ツールですね。

terraformを選定した理由

terraform以外にもAWSだったらCloudFormationやCDKなどあるのですが、私が特にメリットだと思ったのは以下のポイントになります。

  1. AWS以外のクラウドにも対応している
  2. HCLの仕組みが単純でとっつきやすい
  3. 採用例が多く、調べて問題解決しやすい

特に1が大きいですかね。GCPも使っているので、そのまま応用できるのはメリットです。
逆にデメリットだなと思うのはこれでしょうか。

  1. バージョンが0.12が最新で1に達していなくて、仕様変更が多い
  2. やや構築の挙動にクセがあり、慣れていないと思わぬ構成になってしまう

バージョン1は出ると言われてますが、まだリリースされていません。
なので書き方の仕様変更が多く(他リソースの呼び出し方など)、やや不安定なところがあります。
挙動はデフォルトVPC選ばれたり、ロール作られたり色々ありますが、ここは省略せずに書けばなんとか回避できます。
最悪、planでみてからしっかりとチェックすればよいので、そこまでデメリットじゃないかもしれません。

まとめ

今回はさくっとterraformを導入したいきさつと、触ってみて感じた箇所を書きました。
次回はさっそく、具体的に書いた内容をまとめて解説していきたいと思います。