Terraformベストプラクティス
Terraformのバージョンを固定する
code:tf
terraform {
required_version = "0.12.5"
}
プロバイダーバージョンを固定する
code:tf
provider "aws" {
version = "2.20.0"
}
terraform initで新しいのをインストールしてくる
削除操作を抑制する
code:tf
resource "aws_s3_bucket" "sample" {
...
lifecycle {
prevent_destroy = true
}
}
→Terraformがエラーで落ちる
コードフォーマットをかける
terraform fmt -recursive
バリデーションをかける
terraform validate
サブディレクトリまでやる場合
find . -type f -name '*.tf' -exec dirname {} \; | sort -u | xargs -I terraform validate {}
プラグインキャッシュを有効にする
プロバイダのバイナリファイルをキャッシュできる
.terraformrcファイルに以下を記述
plugin_cache_dir = "$HOME/.terraform.d/plugin_cache"
tflintを使う
brew install tflint
暗黙の依存関係を把握する
EIPやNATゲートウェイはインターネットゲートウェイに依存しているなど