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
Yuta Endo
December 16, 2025
Technology
1
98
Terraformのリファクタリングの取り組みについて
Yuta Endo
December 16, 2025
Tweet
Share
Other Decks in Technology
See All in Technology
Riverpod3.xで実現する実践的UI実装
fumiyasac0921
2
350
OCI技術資料 : OS管理ハブ 概要
ocise
2
4.3k
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
41k
Tebiki Engineering Team Deck
tebiki
0
23k
ReproでのicebergのStreaming Writeの検証と実運用にむけた取り組み
joker1007
0
510
Werner Vogelsが14年間 問い続けてきたこと
yusukeshimizu
2
260
エンジニアとして長く走るために気づいた2つのこと_大賀愛一郎
nanaism
1
260
いよいよ仕事を奪われそうな波が来たぜ
kazzpapa3
3
300
JuliaTokaiとしてはこれが最後かもしれない(仮) for NGK2026S
antimon2
0
130
日本語テキストと音楽の対照学習の技術とその応用
lycorptech_jp
PRO
1
360
AWS Devops Agent ~ 自動調査とSlack統合をやってみた! ~
kubomasataka
2
260
ファシリテーション勉強中 その場に何が求められるかを考えるようになるまで / 20260123 Naoki Takahashi
shift_evolve
PRO
3
400
Featured
See All Featured
Building Adaptive Systems
keathley
44
2.9k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.6k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
85
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.1k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
100
Ruling the World: When Life Gets Gamed
codingconduct
0
130
Unsuck your backbone
ammeep
671
58k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
300
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
440
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
120
Rebuilding a faster, lazier Slack
samanthasiow
85
9.4k
Transcript
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
PRESENTATION SLIDES © MOSH Inc. 自己紹介 • 遠藤 悠大 (@ut61z)
• MOSH 技術部 Technical Enablement チーム • SREing, Platform Engineering • 猫5匹飼ってます
PRESENTATION SLIDES © MOSH Inc. 会社紹介 指名経済 MOSHのミッション 一人の情熱が育まれ、だれかに伝播し、また新しい情熱が生まれる。
そんなふうに「情熱がめぐる」世界をつくることが私たちのミッションです。 PRESENTATION SLIDES © MOSH Inc.
PRESENTATION SLIDES © MOSH Inc. プロダクト紹介 オールインワン MOSHが提供するプロダクト MOSHは専門性を持った個人・クリエイター向けのサービス販売&経営拡大プラットフォームです。
オールインワンプロダクトとしてクリエイターの事業拡大を支援します。 PRESENTATION SLIDES © MOSH Inc.
PRESENTATION SLIDES © MOSH Inc. MOSH Tech Meetup やりま す!
• MOSH Tech Meetup Vol.1 2025年 にやったここでしか言えないAIで やったこと • 明日やるよ! • 遊びにきてね
PRESENTATION SLIDES © MOSH Inc. TerraformでAWSリソースを構築するぞ
PRESENTATION SLIDES © MOSH Inc. あれ、難しい...
PRESENTATION SLIDES © MOSH Inc. 課題 • terraform apply はインフラに詳しい人がローカルで実行
• 一つのtfstateで全てのインフラを管理していた ◦ stg用のリソースもprod用のリソースも同じtfstate • stg/prod dir を切ってtfstateを分けていた ◦ が、道半ばでpendingしていた • dev account と prod account をvariableで切り替えて plan/apply していた
PRESENTATION SLIDES © MOSH Inc. 課題① • terraform apply はインフラに詳しい
人がローカルで実行 • 実行者がコンテキストを詳細に把握 • ヒューマンエラーの温床
PRESENTATION SLIDES © MOSH Inc. 課題② • 一つのtfstateで全てのインフラを管 理していた •
stg用のリソースもprod用のリソース も同じtfstate • stg_module というものが生まれてい た
PRESENTATION SLIDES © MOSH Inc. 課題③ • stg/prod dir を切ってtfstateを分け
ていた • が、道半ばでpendingしていた
PRESENTATION SLIDES © MOSH Inc. 課題④ • dev account と
prod account を variableで切り替えて plan/apply し ていた
PRESENTATION SLIDES © MOSH Inc. 課題 • terraform apply はインフラに詳しい人がローカルで実行
• 一つのtfstateで全てのインフラを管理していた ◦ stg用のリソースもprod用のリソースも同じtfstate • stg/prod dir を切ってtfstateを分けていた ◦ が、道半ばでpendingしていた • dev account と prod account をvariableで切り替えて plan/apply していた • これらが全て合わせ技で押し寄せてくる
PRESENTATION SLIDES © MOSH Inc. 認知負荷が爆発 🤯
PRESENTATION SLIDES © MOSH Inc. このままではまずい.. • これからどんどん新機能開発の計画も立ってきている
PRESENTATION SLIDES © MOSH Inc. やったこと • ADR作成 • tfactionの導入
• ディレクトリ構成の整理 • 重複定義されているmoduleの正規化
PRESENTATION SLIDES © MOSH Inc. やったこと • ADR作成 • ”なぜリファクタリングするのか”を言
語化、共通認識を持つ
PRESENTATION SLIDES © MOSH Inc. やったこと • tfactionの導入 • CI/CD
上で terraform plan / apply を徹底 • いつ誰がリソースを変更したかを可 視化 • どんな人でもインフラリソースを構築 できる機会提供
PRESENTATION SLIDES © MOSH Inc. やったこと • ディレクトリ構成の整理 • 依存関係の可視化
◦ commonには複数のコンポー ネントが依存するものを配置 ◦ servicesにはプロジェクト別の 独立した単一コンポーネントを 配置
PRESENTATION SLIDES © MOSH Inc. やったこと • ディレクトリ構成の整理 • 依存関係の可視化
• 数えてみたら 503 import block 書い てました.. ◦ 消したものもあるので本当は もっとあります
PRESENTATION SLIDES © MOSH Inc. やったこと • 重複定義されているmoduleの正規 化 stg_s3.tfをs3.tfに統合
PRESENTATION SLIDES © MOSH Inc. やらなかったこと • moduleの整理 • 当初はAWSリソースごとに整理しようとしていた
◦ それをやるメリットとコストを鑑みて様子見 ◦ 明らかに有用なmoduleを発見していきながら少しずつ育てる
PRESENTATION SLIDES © MOSH Inc. infra管理リポジトリのPR merge数 ≒ terraform apply数
PRESENTATION SLIDES © MOSH Inc. めでたしめでたし👏
PRESENTATION SLIDES © MOSH Inc. めでたしめでたし?
PRESENTATION SLIDES © MOSH Inc. ここからが今日の本題です
PRESENTATION SLIDES © MOSH Inc. 今もなおどろんこを完全に抜け出せたわけではありません • moduleはまだまだ整理されていない •
権限設計もまだまだ • terraformだけがSREの仕事ではない
PRESENTATION SLIDES © MOSH Inc. 大事なのはリスクマネジメント • 認知負荷が爆発することで ◦ 事故の発生確率が上がる
◦ 開発生産性を落とす • サービスとしての競争優位性を落とす
PRESENTATION SLIDES © MOSH Inc. リファクタリングをなぜしたか • 私が辛いから...
PRESENTATION SLIDES © MOSH Inc. リファクタリングをなぜしたか • 私が辛いから... • ではなく
PRESENTATION SLIDES © MOSH Inc. リファクタリングをなぜしたか • 事故発生率を下げるため • 開発生産性を上げるため
• サービスとしての競争優位性を上げるため
PRESENTATION SLIDES © MOSH Inc. リファクタリングをなぜこれ以上一旦しないか • 競争優位性に寄与するインパクトが小さいから
PRESENTATION SLIDES © MOSH Inc. なにかに似ている🤔
PRESENTATION SLIDES © MOSH Inc. SLO • あなたは完璧であることはできませ んし、いずれにしても誰もあなたが 完璧であることを必要としていませ
ん。完璧であろうとすることはコスト がかかりすぎます。このことを受け 入れれば、最終的には誰もが満足 できるようになります
PRESENTATION SLIDES © MOSH Inc. SLOの概念は応用範囲が広い • 特に今何をすべきかを見極め、意思決定するために •
もし、技術的観点で〇〇したいけどできてないという状況にある方は • 事業にとってどうインパクトがあるか仮説を立て、計測し、調整していくことで組織か らの信頼性を得ることができるかもしれません
PRESENTATION SLIDES © MOSH Inc. どろんこは絶対に消えない • でもこれなら戦えるという足場を作って戦う
PRESENTATION SLIDES © MOSH Inc. ありがとうございました