⚙️

急遽必要になったのでTerraformに入門した

2024/02/12に公開

素敵な夜ですね。Terraformに入門した。

概要

Terraformは言わずとしれたインフラのコード化(IaC)ソフトウェア。
結論をいうと、クラウドのエクスポート機能を使って最初の勘を掴んだ。

入門していて

目の前のプロダクトコードはよくわからないし、他のプロダクトコードは見たことがない。

クラウドのエクスポート機能

https://zenn.dev/korosuke613/scraps/f91dedf3890a65
こちらのスクラップに記載がある。gcpについての言及だが、awsにも同等機能はあるはず。適当なクラウドプロジェクトで、この機能を何もオプションを指定せずとりあえず実行すると、その時点で存在するすべてのリソースが吐かれる。イメージを掴むには非常に良かった。

中身を見ながら考える

基本的には、設定ファイルがずらっと並んでいる。
その味付け=設計の自由度=難易度が高そうなので、エクスポート機能があるからそれをDRYすればたちまち完成、というのは考えないほうが良さそう。巨大プロダクトの移植構築は機能別でじっくり進める等して慎重に進める必要があるようだ。(詳説Terraform曰く一年くらいは見ておけとのこと)
また、Terraform単体だと大規模インフラ管理に対しての力不足部分もあるようだ。そういった部分を解決するTerraform用ツールも存在する。おそらくそういった設計のノウハウはすぐには身に付かないと推察する。planを繰り返していくしかないのだろうか?

書籍

  • Pragmatic Terraform on AWS
    • 必要十分な解説はあるが、コードサンプルの辞書的な本ともいえて、単体では理解が難しかった
    • エクスポート機能の出力を見てからだとより頭に入りやすかった
  • 詳説Terraform
    • 少しハンズオン本によっているが、リファレンス本としても一応読める
    • 不足ないのだと思うが、やはり初学者だとわかりづらい箇所もある

Discussion