Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Terraform やるなら公式スタイルガイドを読もう 〜重要項目 10選〜

Avatar for hiyanger hiyanger
August 02, 2025

Terraform やるなら公式スタイルガイドを読もう 〜重要項目 10選〜

2026/8/2 栃木ゆる勉強会
https://tochigi-study.connpass.com/event/352995/

オフライン / 20名程度

Avatar for hiyanger

hiyanger

August 02, 2025
Tweet

More Decks by hiyanger

Other Decks in Programming

Transcript

  1. 自己紹介 名前 / 檜山 準(ひやんが) 職種 / AWS エンジニア (CIer

    所属) 出身 / 栃木県 趣味 / ギター 🎸 @hiyanger
  2. もくじ ※ Terraform とは ※ スタイルガイドとは 1. フォーマットしよう 2. ファイル名

    3. Linter を使う 4. リソースの命名 5. リソース記述順 6. .gitignore への追加 7. バージョンの固定 8. モジュールの作り方 9. ディレクトリ構成 10. state の取り扱い
  3. 2. ファイル名 backend.tf main.tf outputs.tf provider.tf variables.tf network.tf storage.tf compute.tf

    network.tf security _group.tf alb.tf route53.tf 左のファイルを基本に行数が増えてきたら分割を検討。 100~200行くらいが目安。 接続はスネークケース
  4. 4. リソースの命名 NG resource aws_instance webAPI- aws-instance {...} OK resource

    "aws_instance" "web_api" {...} 🙅 リソースタイプは含めない
  5. 9 .(みんな大好き)ディレクトリ構成 main.tf → ファイル分割 → modulesの利用 → 環境分岐(prd/dev)→ state

    分 割 スタイルガイドの言及部分 この仕組みだけ頭にいれておけばOK!
  6. まとめ 1. フォーマットしよう → terraform fmt(-recursive) 2. ファイル名 → main

    からすこずつ粒度を小さくする 3. Linter を使う → tflint 4. リソースの命名 → リソースタイプいれない & スネークケース 5. リソース記述順 → 依存順に上から 6. .gitignore への追加 → state 関連 7. バージョンの固定 → provider と terraform 8. モジュールの作り方 → リソースのグループ化を意識する 9. ディレクトリ構成 → 基本はmoduleで必要なら環境分岐 10. state の取り扱い → 共有しない(woで回避できる)