最初に
terraformを業務で使用することになりました。
そのため勉強したことをまとめています。
terraformで構築したことが多いため構築メインで書くことが多いです。
terraformとは
IaC(Infrastructure as code)に一種。
インフラをコードで定義し構築/運用/削除を行うことが可能
インフラを構築等することは可能ですがサーバ内の管理(ツールのインストール等)は行うことはできないためAnsible等を組み合わる必要がある。
terraformで構築できる対象はAWS/GCP/Azure等と幅広いプラットフォームに対応している。
terraformの利点
インフラをコード化できるためもし同じ環境を構築したいとなった場合作業工数が少なく済む
コード化していることで作業ミス(作業漏れ)を防ぐことができる
公式ドキュメントがわかりやすい
terrformのファイルについて
①tfファイル
terraformでインフラを構築する場合に作成するファイル。
main.tf/outputs.tf等の名前で作成することが多いように思います。
.tf前のmain/outputsについてはルールはないためわかりやすいファイル名にして問題ない。
②tfstateファイル
terraformでインフラを構築した後に自動で作成されるファイル。
ファイルの格納先は任意ですがaws環境ではs3に自動作成されるよう定義することが多いように思います。
tfstateファイルはterraformにおける最重要ファイルになります。
terraformはtfstateファイルでterraformが作成したリソースか等を確認します。
そのためもしterraform管理したくないリソースがある場合はtfstateファイルを削除するだけでterraformはそのリソースをterraformで構築したことを忘れます。
terraformの動き
terraformでリソースを構築する場合構築コマンドを実行したフォルダ内に格納されているすべてのtfファイルを見に行きます。
もし階層構造になっている場合、再帰的に子フォルダすべてを見に行きtfファイルを実行したりは基本的にしません。
terraform構築コマンド
-
terraform init
terraformで構築するとき最初に実行するコマンド
プロバイダーのダウンロード等を行い実行環境の準備をおこないます。
上記コマンドではリソースの構築等は行いません。 -
terraform validate
構文チェックコマンド
tfファイルに記載されている内容を確認し構文として正しいか確認してくれる。 -
terraform fmt
tfファイルを確認しフォーマットをきれいに整えてくれます。 -
terraform plan
tfファイルをもとに構築/変更/削除するリソースの内容確認 -
terraform apply
tfファイルを元にリソースを構築する。 -
terraform destroy
構築したリソースの削除をする。
最後に
今回はterraformについて構築をメインに記載しました。
現在terraformを使いaws環境を構築することが多いため次はawsvpc構築の際書いたコードについて記載したい