Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
より綺麗なTerraformコードをチームで書き続ける取り組み
Search
KiyamaMizuki
May 31, 2026
Programming
18
0
Share
より綺麗なTerraformコードをチームで書き続ける取り組み
KiyamaMizuki
May 31, 2026
More Decks by KiyamaMizuki
See All by KiyamaMizuki
TerraformリファクタリングでSGを消した話
kiyamamizuki
0
57
AWS公式のIaC自動レビューツール使ってみた
kiyamamizuki
0
100
沖縄出身の新卒が振り返るシナマケでの社会人生活
kiyamamizuki
0
410
AWS使いすぎ注意! コスト管理とSlackアラート構築術
kiyamamizuki
0
760
Other Decks in Programming
See All in Programming
New "Type" system on PicoRuby
pocke
1
430
次世代リンターで探る、tsgo 時代における型認識カスタムルールの現実解
ytakahashii
3
1.4k
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
2
390
開発体験を左右するライブラリの API 設計 - GraphQL スキーマ構築ライブラリから考える #tskaigi
izumin5210
2
1.5k
SPMマルチモジュールで テストカバレッジを取得する技法
yosshi4486
0
140
Oxlintのカスタムルールの現況
syumai
5
970
Stage 3 Decorators でできること / できないこと / TSKaigi 2026
susisu
1
1.5k
Technical Debt: Understanding it Rightly, Engaging it Rightly #LaravelLiveJP
shogogg
0
190
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
150
Migrations : C'est une question d'hygiène !
vinceamstoutz
0
2.9k
ビジネスモデルから紐解く、AI+型駆動開発
hirokiomote
2
5.2k
Inspired By RubyKaigi (EN)
atzzcokek
0
500
Featured
See All Featured
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
ラッコキーワード サービス紹介資料
rakko
1
3.5M
My Coaching Mixtape
mlcsv
0
140
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.3k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
150
What's in a price? How to price your products and services
michaelherold
247
13k
Git: the NoSQL Database
bkeepers
PRO
432
67k
The Curse of the Amulet
leimatthew05
1
13k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Docker and Python
trallard
47
3.9k
Transcript
より綺麗なTerraformコードを チームで書き続ける取り組み 木山瑞基 2026/05/29 インフラの「ムリ・ムダ・ムラ」をなくしたい! 最適化・効率化LT会 1
自己紹介 名前:木山瑞基 所属:シナジーマーケティング株式会社 業務:CRMシステムのインフラ運用 AWS / Mail server 趣味:ボルダリング、旅行、ジョジョ好き Terraform歴:1年半
2
今日話すこと こんな方に向けた話です Terraformを書いているが、チームに明文化されたルールがない方 最近Terraformを書き始めて体系的に知りたい方 話すこと 1. 公式スタイルガイドの読み合わせをやってみた経緯 2. 読み合わせで出てきた "チーム独自ルール"
と "誤用" 3. やってみての所感 3
当時抱えていたモヤモヤ Terraformは書けるようになったが、書き方に自信がない 既存のtfコードを確認してある程度真似て書いていた Terraform自体プログラミング言語と異なり書式の自由度が低く気にしなくて もよかった チームには"こうしている"がある コードを書いていて気になる部分など都度聞く形 > 「先輩の書き方を真似てる」だけになっていた 4
アプローチ:公式スタイルガイドの読み合わせ HashiCorp公式 Terraform Style Guide をチームで読み合わせ 1. 自分(新人)が叩き台をまとめる a. チームでの運用と公式の見解で異なる(と感じた)部分を記載
2. チームメンバーと読み合わせながらFBをもらう 3. 「公式と違う点」を意図的 / 誤用 に仕分ける ポイント:新人の自分が"分からない"を表明できる立場だった 5
読み合わせで分かったこと ① 個人の気づき編 / ② チーム独自ルール編 / ③ 誤用発見編 6
① 個人の気づき編: 見よう見まねが、ガイドに書かれていた これまで意識せずに書いてた書式がスタイルガイドに明文として書かれていた 命名規則 定義するリソースごとのグルーピング方法 引数の並び方 → チームの書き方は、ガイドに沿った判断の積み重ねだった →
自分の "なんとなくの真似" に、はじめて根拠が付いた 7
② チーム独自ルール編 「公式と違うが、意図的に違う」= 残すべきルール 観点 チームの選択 理由 ファイル分割 terraform.tf →
versions.tf に分離 プロバイダ管理が見やすい リソースを main.tf に集約 リソース全集約はしない PoC向け、本運用ではアン チパターン moduleのリポジトリ 構成 モノレポ 公式推奨と異なるがチーム 事情で採用 > 暗黙知だったものを、理由付きで明文化できた 8
③ 誤用発見編 「公式と違い、かつ間違っていた」部分 1. variable を locals で代替できるケースを見落とし -. どちらも変数を扱うための記法
9
variable と locals の使い分け variable locals 役割 外部からの入力 内部の計算・再利用 変更タイミング
実行時に上書き可 コード変更時のみ 使いどころ 環境ごとに変えたい値 命名・タグ・派生値 チームの運用フロー上、多くの値は実行時に変えない → 本来は locals で十分なものが variable になっていた 10
variable と locals の使い分け 補足 locals は後から追加された記法 ブロック 登場時期 variable
Terraform 0.1(2014年)から存在 locals Terraform 0.10.3(2017年9月)で追加 → 最初の約3年間は variable しかなかった → 古くからTerraformを使用していたチームは variable を使用していたため、その癖 が残りやすい 11
成果 チームで一番の若手が構文を体系的に学ぶことで、品質を落とすようなコードを 生成する可能性が無くなった チームの共通言語・コーディングルールが言語化できた クリティカルな問題では無かったが構文の誤用も見つかった 12
おまけ:LLMへの指示書・タスク仕様書になる 明文化したルールは、 CLAUDE.md / .cursorrules などにそのまま転用可 # Terraform Coding Rules
(抜粋) - providerは versions.tf に分離する - 派生値は locals を使う(variableは外部入力のみ) さらに:読み合わせ資料が、そのままリファクタリング指示書になった 公式との差異を言語化した読み合わせ資料をそのままコーディングエージェント に投入 → 人にもLLMにも効くドキュメントになった 13
まとめ 14
まとめ ① 新人・若手こそやる価値がある 先入観がないからこそ、素朴な疑問が暗黙知を掘り起こす 体系的に学ぶことで若手自身が綺麗なコードを書けるように ② 綺麗なコードは「チームの共通言語」から生まれる 個人の努力より、揃った言語のほうが効く ③ 公式スタイルガイドは"読み合わせ教材"として最適
> 「動いてるから正しい」は危険、一度立ち止まって読み合わせを 15