テンプレート一覧に戻る
Terraform / IaC
Terraform + AWS のインフラ構成管理向けCLAUDE.md。Infrastructure as Codeによる安全なインフラ管理に最適です。
上級terraformiacaws
CLAUDE.md
# プロジェクト名
Terraform で管理するクラウドインフラストラクチャ。
## 技術スタック
- **ツール**: Terraform 1.9+ / OpenTofu 1.8+
- **プロバイダ**: AWS(主要)
- **状態管理**: S3 + DynamoDB(リモートバックエンド)
- **Lint**: tflint + tfsec + checkov
- **CI**: GitHub Actions
## コマンド
| コマンド | 用途 |
|---------|------|
| `terraform init` | 初期化(プロバイダ・モジュールのダウンロード) |
| `terraform plan` | 変更プレビュー |
| `terraform apply` | 変更適用 |
| `terraform validate` | 構文バリデーション |
| `tflint` | Lint実行 |
| `tfsec .` | セキュリティスキャン |
## ディレクトリ構造
| パス | 役割 |
|-----|------|
| `envs/dev/` | 開発環境設定 |
| `envs/staging/` | ステージング環境設定 |
| `envs/prod/` | 本番環境設定 |
| `modules/` | 再利用可能モジュール |
| `modules/<name>/main.tf` | リソース定義 |
| `modules/<name>/variables.tf` | 入力変数 |
| `modules/<name>/outputs.tf` | 出力値 |
## コーディング規約
- リソースの命名は `<provider>_<resource>_<purpose>` 形式
- 変数にはdescriptionとtypeを必ず指定
- 機密値は `sensitive = true` を設定
- モジュールはバージョン固定で参照
- `terraform fmt` でフォーマットを統一
- 破壊的変更(destroy + create)はPRレビュー必須
- tfstateファイルはGit管理外(.gitignore)
## Git規約
- ブランチ: `feature/`, `fix/`, `infra/`
- コミットメッセージ: Conventional Commits形式
- `terraform plan` の出力をPRコメントに貼付