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

Terraformのリファクタリングの取り組みについて

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for Yuta Endo Yuta Endo
December 16, 2025

 Terraformのリファクタリングの取り組みについて

Avatar for Yuta Endo

Yuta Endo

December 16, 2025
Tweet

Other Decks in Technology

Transcript

  1. PRESENTATION SLIDES [ ver.01 2025.12 ] © MOSH Inc. MOSH

    develops and operates a platform that supports independent creators in selling their services online. Terraformのリファクタリングの取り組みについて
 Presentation slides for どろんこSRE 

  2. PRESENTATION SLIDES © MOSH Inc. 自己紹介
 • 遠藤 悠大 (@ut61z)


    • MOSH 技術部 Technical Enablement チーム
 • SREing, Platform Engineering
 • 猫5匹飼ってます

  3. PRESENTATION SLIDES © MOSH Inc. 会社紹介
 指名経済
 MOSHのミッション 
 一人の情熱が育まれ、だれかに伝播し、また新しい情熱が生まれる。

    そんなふうに「情熱がめぐる」世界をつくることが私たちのミッションです。 PRESENTATION SLIDES © MOSH Inc.
  4. PRESENTATION SLIDES © MOSH Inc. MOSH Tech Meetup やりま す!


    • MOSH Tech Meetup Vol.1 2025年 にやったここでしか言えないAIで やったこと
 • 明日やるよ!
 • 遊びにきてね

  5. PRESENTATION SLIDES © MOSH Inc. 課題
 • terraform apply はインフラに詳しい人がローカルで実行

    
 • 一つのtfstateで全てのインフラを管理していた 
 ◦ stg用のリソースもprod用のリソースも同じtfstate 
 • stg/prod dir を切ってtfstateを分けていた 
 ◦ が、道半ばでpendingしていた
 • dev account と prod account をvariableで切り替えて plan/apply していた 

  6. PRESENTATION SLIDES © MOSH Inc. 課題①
 • terraform apply はインフラに詳しい

    人がローカルで実行
 • 実行者がコンテキストを詳細に把握 
 • ヒューマンエラーの温床

  7. PRESENTATION SLIDES © MOSH Inc. 課題②
 • 一つのtfstateで全てのインフラを管 理していた
 •

    stg用のリソースもprod用のリソース も同じtfstate
 • stg_module というものが生まれてい た

  8. PRESENTATION SLIDES © MOSH Inc. 課題④
 • dev account と

    prod account を variableで切り替えて plan/apply し ていた

  9. PRESENTATION SLIDES © MOSH Inc. 課題
 • terraform apply はインフラに詳しい人がローカルで実行

    
 • 一つのtfstateで全てのインフラを管理していた 
 ◦ stg用のリソースもprod用のリソースも同じtfstate 
 • stg/prod dir を切ってtfstateを分けていた 
 ◦ が、道半ばでpendingしていた
 • dev account と prod account をvariableで切り替えて plan/apply していた 
 • これらが全て合わせ技で押し寄せてくる 

  10. PRESENTATION SLIDES © MOSH Inc. やったこと
 • ADR作成
 • tfactionの導入


    • ディレクトリ構成の整理
 • 重複定義されているmoduleの正規化 

  11. PRESENTATION SLIDES © MOSH Inc. やったこと
 • tfactionの導入
 • CI/CD

    上で terraform plan / apply を徹底
 • いつ誰がリソースを変更したかを可 視化
 • どんな人でもインフラリソースを構築 できる機会提供

  12. PRESENTATION SLIDES © MOSH Inc. やったこと
 • ディレクトリ構成の整理
 • 依存関係の可視化


    ◦ commonには複数のコンポー ネントが依存するものを配置
 ◦ servicesにはプロジェクト別の 独立した単一コンポーネントを 配置

  13. PRESENTATION SLIDES © MOSH Inc. やったこと
 • ディレクトリ構成の整理
 • 依存関係の可視化


    • 数えてみたら 503 import block 書い てました..
 ◦ 消したものもあるので本当は もっとあります

  14. PRESENTATION SLIDES © MOSH Inc. やらなかったこと
 • moduleの整理
 • 当初はAWSリソースごとに整理しようとしていた

    
 ◦ それをやるメリットとコストを鑑みて様子見 
 ◦ 明らかに有用なmoduleを発見していきながら少しずつ育てる 

  15. PRESENTATION SLIDES © MOSH Inc. SLO
 • あなたは完璧であることはできませ んし、いずれにしても誰もあなたが 完璧であることを必要としていませ

    ん。完璧であろうとすることはコスト がかかりすぎます。このことを受け 入れれば、最終的には誰もが満足 できるようになります

  16. PRESENTATION SLIDES © MOSH Inc. SLOの概念は応用範囲が広い
 • 特に今何をすべきかを見極め、意思決定するために 
 •

    もし、技術的観点で〇〇したいけどできてないという状況にある方は 
 • 事業にとってどうインパクトがあるか仮説を立て、計測し、調整していくことで組織か らの信頼性を得ることができるかもしれません