Open1

Terraform スタイルガイドまとめ

ひやんが / hiyangerひやんが / hiyanger

https://developer.hashicorp.com/terraform/language/style#style-guide

コードスタイル

  • コードをバージョン管理にコミットする前にterraform fmt、と実行します。terraform validate

  • TFLintなどのリンターを使用して、組織独自のコーディングのベストプラクティスを適用します。

  • #単一行および複数行のコメントに使用します。

  • リソース名には名詞を使用し、名前にリソースの種類を含めないでください。

  • 名前内の複数の単語を区切るにはアンダースコアを使用してください。リソース定義では、リソースタイプと名前を二重引用符で囲んでください。
    ・コード自体を構築できるようにし、参照するリソースの後に依存リソースを定義します。
    たとえば VPC → サブネット → セキュリティグループ → インスタンス のように、参照されるもの(前提)が先に書かれ、それを使うものが後に来るように順序づける。

  • すべての変数にタイプと説明を含めます。

  • すべての出力に説明を含めます。

  • 変数とローカル値の過剰使用は避けてください。

    • 追跡が困難になる
  • デフォルトのプロバイダー構成を常に含めます。

  • count控えめに使用してくださいfor_each。

    • 複雑なループや条件付き生成は意図を隠しがちで、デバッグや参照時の理解コストが上がる。
    • 単純なケースは明示的なリソース定義やモジュール分割にして、パターンが繰り返しなら抽象化する。

10選する

  1. フォーマット(validate)
  2. ファイル名
  3. Linter
  4. 命名
  5. リソース順序
  6. gitignore
  7. バージョン固定
  8. モジュール構造
  9. リポジトリ構造
  10. stateとシークレット

参考リンク

  • モジュール 推奨パターン

https://developer.hashicorp.com/terraform/tutorials/modules/pattern-module-creation

  • モジュール 標準構造

https://developer.hashicorp.com/terraform/language/modules/develop/structure

  • stateにシークレットを表示させない(Terraform v1.11)

https://techblog.ap-com.co.jp/entry/2025/03/03/100000