ブログ一覧へ戻る
DevOps
Terraform 1.10時代のベストプラクティス2026
中村 翔太
Terraform 1.10では import block、check block、removed blockなど、エンタープライズ運用に効く機能が大きく強化されました。本記事では、当社が200社以上のIaC運用支援を通じて確立してきた、2026年版のTerraformベストプラクティスを公開します。
■ モジュール設計
まず大原則として、モジュールは「複雑度を隠蔽する装置」ではなく「再利用の単位」と捉えるべきです。Hashicorp推奨のディレクトリ構造 (modules/* と environments/*) を基本としつつ、各モジュールは入力20以下・出力10以下を目安に保ちます。
■ State管理
State は環境ごと・サービスごとに分割し、最大でも500リソース程度に収めます。Plan時間が3分を超え始めたら分割の合図です。S3バックエンドの場合、必ずSSE-KMSと DynamoDB Lockを併用してください。
■ CI/CD統合
GitHub Actions + tflint + tfsec + Open Policy Agent でPRごとに自動チェックを回し、ポリシー違反は自動でブロックします。本番Applyは原則「手動承認 + plan出力レビュー」を経て実施します。
■ 監査ログ
CloudTrail + S3でTerraform実行ログをイミュータブルに保存し、誰がいつ何を変えたかを完全追跡可能にします。SOC 2監査においても重要な観点です。