Terraform
The for_each Meta-Argument - Configuration Language - Terraform by HashiCorp
OSS の OpenTofu というプロジェクトがある
terraform init
Command: init - Terraform by HashiCorp
clone してきたときにも実行する
GCP
SA のシークレット必要
Getting Started with the Google provider | Guides | hashicorp/google | Terraform Registry
State
State - Terraform by HashiCorp
チームで使う場合は、共有する必要がある
GCP なら GCS におくとか
Backend Type: gcs - Terraform by HashiCorp
Module
Reuse Configuration with Modules | Terraform - HashiCorp Learn
Modules - Configuration Language - Terraform by HashiCorp
知っておきたい
terraform
fmt
validate
Policy
リソースをつくるときのポリシーを事前に定義して、ポリシーに対してテストを実行できる
e.g. s3 のアクセス制御がポリシーに準拠しているか
tf リソースにかかるコストを試算してくれるみたいなので、上限をポリシーで定義できる??
Install via asdf
asdf-community/asdf-hashicorp: HashiCorp plugin for the asdf version manager
Directory structure
Best practices for using Terraform  |  Google Cloud
開発基盤グループが採用しているTerraformのディレクトリ構造 - Speee DEVELOPER BLOG
Terraformのベストなプラクティスってなんだろうか | フューチャー技術ブログ
すでにリソースがある場合は import コマンドが使える
import した tf state をもとに、定義を書き起こせば Ok
import コマンドはドキュメントでも紹介されている
aws_ecs_service | Resources | hashicorp/aws | Terraform Registry
事前に対象のリソースの tf 定義をファイルに記述しておく必要がある
参考
既存のAWS環境を後からTerraformでコード化する | DevelopersIO
Terraform import のススメ 〜開発効率化編〜 - LayerX エンジニアブログ
gitignore
https://github.com/github/gitignore/blob/main/Terraform.gitignore
特定のリソースを対象にする
Target Resources | Terraform | HashiCorp Developer