Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

2025 年私の Terraform に関するふりかえり / ゆるSRE勉強会 #14

Avatar for Ryo Takaishi Ryo Takaishi
December 18, 2025
8

2025 年私の Terraform に関するふりかえり / ゆるSRE勉強会 #14

Avatar for Ryo Takaishi

Ryo Takaishi

December 18, 2025
Tweet

More Decks by Ryo Takaishi

Transcript

  1. 自己紹介 • @r_takaishi / 髙石 諒 @ フライル • ソフトウェアエンジニア

    / ポッドキャスター • OSS ◦ takaishi/tfclean ◦ takaishi/tftargets ◦ takaishi/tfdiff ◦ reproio/terraform-j2md
  2. なぜ tftargets が必要だったか • Terraform のルートモジュールを細かく分割した ◦ planの時間短縮や未変更箇所に対する不要なplan抑制 • ルートモジュール設計、いろいろある

    ◦ 環境単位(プロダクション/ステージング) ◦ さらに細かくレイヤー単位(ネットワーク/ストレージ/アプリケーション) → ルートモジュール分割に伴いある課題解決が必要
  3. ルートモジュールの課題 : plan対象の検知 • どのルートモジュールについて plan するか判断したい • ステージング用ルートモジュールに変更 →

    ステージングだけ plan • プロダクションルートモジュールに変更 → プロダクションだけ plan • 共通モジュールにのみ変更 → 両方で plan が必要 GitHub Actions のpath-filterでは難しい
  4. 静的検査にトライしてみて • tflint ◦ Go でカスタムルールを書けるのはうれしい • checkov ◦ plan

    ファイルのチェックなので新規追加・変更時にしか検知できない ◦ 既存リソースで命名規則に従っていないものを洗い出せればよりよい ▪ tflint だと変数を使った名前の検査ができない?
  5. まとめ • takaishi/tftargets: モジュール間の依存関係を考慮した plan/apply 対象リ ストアップ • takaishi/tfdiff: HCL

    の構造を考慮したルートモジュール間の差分出力 • ルートモジュール分割 • 静的検査にトライ(tflint, checkov) 似たような課題で困っている方がいたら使ってもらえると嬉しいです!