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
kekke-n
July 11, 2026
Technology
4.3k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Terraform共通モジュールをチーム横断で“変えられる”運用へ ― リリースと適用の分離
kekke-n
July 11, 2026
More Decks by kekke-n
See All by kekke-n
小さく始めるBCP ― 多プロダクト環境で始める最初の一歩
kekke_n
1
1.7k
Cloud Monitoringで非同期処理のオブザーバビリティ向上
kekke_n
0
630
Other Decks in Technology
See All in Technology
第3回しろおびセキュリティスポンサーセッション
log0417
0
160
クラウドセキュリティ入門 ~安全なクラウド利用のための基礎知識~
lhazy
11
8.3k
PLATEAU で バーチャル花火大会
tatsuya1970
0
100
Redmine 7.0 新機能・機能強化解説(OSC2026京都ダイジェスト版)
vividtone
1
200
取引先から届く 「セキュリティチェックシート」の読み解き方
kamadamakoto
0
130
サイバー捜査員研修(前半)
nomizone
1
1.9k
もう一度考える SRE チームの作り方・育て方 / Rethinking SRE #1: Building and Growing SRE Teams
rrreeeyyy
6
1k
AWS ネットワーク構築でハマった(ハマりかけた) 5選とそこから得た教訓
nagisa53
4
190
事業価値と Engineering 2026年度版
recruitengineers
PRO
42
22k
AIは実装を速くする。では、私たちは何を今作るべきか?-立場を越えてリリースに向き合ったチーム開発の実践 / 20260801 Hiromi Nakaya and Naoki Takahashi
shift_evolve
PRO
3
440
今こそ聞きたいソフトウェア設計 ドメイン駆動設計再入門
masuda220
PRO
17
6.7k
サイバー捜査員研修(後半)
nomizone
1
800
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Faster Mobile Websites
deanohume
310
32k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
450
Discover your Explorer Soul
emna__ayadi
2
1.2k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Bash Introduction
62gerente
615
220k
Agile that works and the tools we love
rasmusluckow
331
22k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
390
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Product Roadmaps are Hard
iamctodd
55
12k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.6k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Transcript
Terraform共通モジュールを チーム横断で“変えられる”運⽤へ 中間 啓介 株式会社SmartHR 2026.7.11 / SRE NEXT 2026
Lunch Sponsor Session / #srenext_c リリースと適⽤の分離
⾃⼰紹介 経歴 • 2022/5 SmartHRにバックエンドエンジニアとして入社 • 2024/1 SREチームに異動 過去登壇 •
SRE Kaigi 2026 / 小さく始めるBCP ― 多プロダクト環境で始める 最初の一歩 中間 啓介(なかま けいすけ) 株式会社SmartHR / SRE
© SmartHR, Inc. 01 会 社 概 要 © SmartHR,
Inc. バックオフィスから まるごとスマートに。 ⼈事‧労務‧情シス業務を効率化。 みんなが使うから組織が変わる。 06 | 57
1 SmartHRがTerraformの共通モジュールを使う背景 2 共通モジュールの課題 3 バージョニングによる解決 4 まとめ アジェンダ
本⽇お持ち帰りできること • Terraformの共通モジュールを運⽤するときのツラミ • Terraformの共通モジュールをチーム横断で運⽤するためのヒント
01 SmartHRがTerraformの モジュールを使う背景
SmartHRのインフラ運⽤ • SmartHRはマルチプロダクト構成 ◦ プロダクトチームは約40チーム • プロダクトチーム ◦ インフラに対してオーナーシップを持ち、⾃分達で変更が⾏える体制 •
SREチーム ◦ プロダクトチームがインフラを構築‧変更しやすいように、インフラ構築 ⽀援やTerraformの共通モジュールを整備している
Terraformのディレクトリ構成 • モノレポ構成 • ルートモジュール ◦ gcp/product/env ◦ プロダクト✕環境別に⽤意 •
共通モジュール ◦ gcp/modules ◦ 再利⽤可能なリソースを置く gcp/ ├── kintai // 勤怠管理プロダクト │ ├── development │ ├── production │ └── staging ├── kyuyo // 給与計算プロダクト │ ├── development │ ├── production │ └── staging ├── modules │ ├── cloud-storage ︙ ディレクトリ構成サンプル ルートモジュール 共通モジュール
• よく使う構成の部品化 ◦ SmartHRには似た構成のプロダクトが多く、よく使う構成をモジュール 化することで、同じ実装の繰り返しを減らす • 安全なインフラ構築のセルフサービス化 ◦ セキュリティ要件や推奨設定をモジュールに組み込むことで、プロダク トチームが安全に素早くインフラを構築できるようにする
共通モジュールを使う背景
02 共通モジュールの課題
• 影響確認が⼤変 ◦ 共通モジュールを変更する場合、参照元のルートモジュールに破壊 的変更が起きないようにする必要がある • Driftを⽣む ◦ 共通モジュールを変更できたとしても、参照元のルートモジュール でDriftが発⽣してapplyがしづらくなる
共通モジュールは変更しづらい
プロダクトチームへの悪影響 • 共通モジュールを使わず、各チーム独⾃で実装するようになる ◦ →実装‧レビュー⼯数が増える ◦ →プロダクトチームのアジリティが下がる • 共通モジュールの変更を諦めて、そのままにする ◦
→インフラの最新の機能が使えなくなる ◦ →インフラを最適な状態にできなくなる
03 バージョニングによる解決
• tfactionはモノレポ構成でTerraformを管理するための便利なGitHub Actionsが揃っている ◦ https://github.com/suzuki-shunsuke/tfaction • PRにplanの結果を⾒やすい形式でコメント • PRのマージでapply実⾏ •
モジュールをバージョニングをするための便利なWorkflowを利⽤ ◦ https://suzuki-shunsuke.github.io/tfaction/docs/v1/feature/mo dule 前提:Terraformの実⾏環境はtfaction
• モジュールの参照をGitタグ参照にして、共通モジュールのリリースと 適⽤を分離する バージョニング
• 分離:共通モジュールのGitタグ参照化 • リリース:共通モジュールの変更 • 適⽤:共通モジュールの参照バージョン変更 バージョニングの流れ
• 初期バージョンのタグを作成(tfactionのwolkflowを活⽤) ◦ module_gcp_modules_cloud-storage_v0.0.0 • モジュールの参照を作成したタグ(v0.0.0)にする 分離:共通モジュールのGitタグ参照化 参考:tfaction - Manage
Terraform Modules https://suzuki-shunsuke.github.io/tfaction/docs/v1/feature/module
Gitタグ参照のサンプルコード(v0.0.0) # gcp/kintai/development/cloud-storage.tf module "cloud_storage" { # source = "../../modules/cloud-storage"
source = "github.com/org/repo//gcp/modules/cloud-storage?ref=module_gcp_modules_cloud-storage_v0.0.0" bucket_name = "kintai-development" location = "asia1" } 参考:Terraform - Use modules in your configuration https://developer.hashicorp.com/terraform/language/modules/configuration ここにタグを 指定する
• 共通モジュールを変更する • 次のバージョンのタグを作成する(tfactionのwolkflowを活⽤) ◦ module_gcp_modules_cloud-storage_v0.0.1 リリース:共通モジュールの変更
• プロダクトチームが好きなタイミングでモジュールの参照タグをv0.0.1に 変更する 適⽤:共通モジュールの参照バージョン変更
RenovatePRの⾃動検知 v0.0.0 -> v0.0.1のア プデートを⾃動で検 知してPR作成
共通モジュール 安全に変更できるようになった☺
が、新たな課題が...
共通モジュールの変更から適⽤までのリードタイムが⻑い • プロダクトチームのインフラに適⽤するまで半⽇〜1⽇かかる 半⽇〜1⽇
SREチームしか変更できない共通モジュール • 煩雑な⼿作業が多く、SREチームに属⼈化が起きる SRE頼みになる 煩雑な⼿作業が多い
• タグ作成等の単純作業はGitHub Actionsでやる • リリースするまでの⼿順をAIのSkillsとして追加し、DevinやClaude Code に任せられるようにする • RenovateのPRはplanにDriftがなければオートマージ AI/GitHub
Actions/Renovateによる⾃動化
リードタイム削減 • 作業の⾃動化によって、半⽇〜1⽇かかる作業が30分に削減できた 30分
煩雑な⼿作業は⾃動化 チーム横断で“変えられる”共通モジュール • プロダクトチームが共通モジュールを変更できる状態になる プロダクトチームが変更できる状態
04 まとめ
• バージョニングを使えば、リリースと適⽤を分離でき、共通モジュールを 変更しやすくなる • 煩雑な作業を⾃動化すれば、誰でも共通モジュールを変更でき、チーム横 断で変えられる共通モジュールを運⽤できる まとめ
Special Thanks!!
https://open.talentio.com/r/1/c/smarthr/pages/98449 シニアSRE 募集中です!! We are hiring!! © SmartHR, Inc. 49
| 57 ご静聴ありがとうございました!