Terraform ワークフロー
Infrastructure as Code (IaC) のベストプラクティスとワークフロー。
有効化するタイミング
- •新しいインフラリソースの作成
- •既存インフラの変更
- •Terraformモジュールの設計
- •ステート管理の設定
- •CI/CDパイプラインでのインフラ自動化
標準ワークフロー
code
1. terraform fmt # コードフォーマット 2. terraform validate # 構文検証 3. terraform plan # 変更プレビュー 4. (レビュー) # 変更内容を確認 5. terraform apply # 変更適用
ディレクトリ構造
code
infrastructure/
├── environments/
│ ├── dev/
│ │ ├── main.tf
│ │ ├── variables.tf
│ │ └── terraform.tfvars
│ ├── staging/
│ └── prod/
├── modules/
│ ├── networking/
│ ├── compute/
│ └── database/
└── shared/
└── backend.tf
重要なルール
- •ステートは常にリモート - S3/GCS + DynamoDB/GCS lockingを使用
- •シークレットはコードに含めない - 環境変数またはSecrets Manager
- •モジュール化 - 再利用可能なモジュールで DRY を維持
- •バージョン固定 - プロバイダとモジュールのバージョンをロック
- •plan出力を保存 -
terraform plan -out=plan.tfplan - •PRベースの変更 - 直接applyしない、必ずレビュー
クイックチェックリスト
- •
terraform fmt実行済み - •
terraform validate成功 - •
.tfvarsがgitignoreに含まれている - • バックエンド設定済み(リモートステート)
- • プロバイダバージョン固定
- • センシティブな出力に
sensitive = true
詳細リファレンス
モジュール設計、ステート管理、CI/CD統合の詳細:
- •
references/module-patterns.md- モジュール設計パターン - •
references/state-management.md- ステート管理ガイド - •
references/cicd-integration.md- CI/CDパイプライン統合 - •
references/security-checklist.md- セキュリティチェックリスト