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
シングルテナント構成のSaaSのIaCにTerraform Workspacesを導入してみた
Search
kazue
August 29, 2022
Programming
1
2.2k
シングルテナント構成のSaaSのIaCにTerraform Workspacesを導入してみた
https://dev.classmethod.jp/articles/terraform-workspaces-for-single-tenant-saas-iac/
kazue
August 29, 2022
Tweet
Share
More Decks by kazue
See All by kazue
Grafana as Code - Terraformによるダッシュボードとアラートの構成管理 @ HashiTalks:Japan 2025
kazue
0
20
AI駆動開発に向けた新しいエンジニアマインドセット
kazue
0
800
わかる!Hashicorp Waypoint | HashiTalks: Japan2023
kazue
0
1k
RDS Proxy, Amazon Kendra, Amazon CodeGuruの紹介 #cmregrowth #reinvent
kazue
0
1.9k
AuroraかRDSどちらを選ぶべきか | Developers.IO 2019 in OSAKA
kazue
0
190k
Codeシリーズで始めるはじめてのCI/CD
kazue
1
530
AKIBA.AWS#14 Terraform v0.12
kazue
0
1.9k
Other Decks in Programming
See All in Programming
ノイジーネイバー問題を解決する 公平なキューイング
occhi
0
110
20260127_試行錯誤の結晶を1冊に。著者が解説 先輩データサイエンティストからの指南書 / author's_commentary_ds_instructions_guide
nash_efp
1
990
CSC307 Lecture 01
javiergs
PRO
0
690
CSC307 Lecture 07
javiergs
PRO
1
560
生成AIを活用したソフトウェア開発ライフサイクル変革の現在値
hiroyukimori
PRO
0
110
生成AIを使ったコードレビューで定性的に品質カバー
chiilog
1
280
[KNOTS 2026登壇資料]AIで拡張‧交差する プロダクト開発のプロセス および携わるメンバーの役割
hisatake
0
300
組織で育むオブザーバビリティ
ryota_hnk
0
180
Lambda のコードストレージ容量に気をつけましょう
tattwan718
0
150
Data-Centric Kaggle
isax1015
2
780
AIによる高速開発をどう制御するか? ガードレール設置で開発速度と品質を両立させたチームの事例
tonkotsuboy_com
7
2.4k
Fluid Templating in TYPO3 14
s2b
0
130
Featured
See All Featured
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
94
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
440
Discover your Explorer Soul
emna__ayadi
2
1.1k
Marketing to machines
jonoalderson
1
4.7k
Chasing Engaging Ingredients in Design
codingconduct
0
120
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
1
58
Odyssey Design
rkendrick25
PRO
1
500
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
440
The SEO identity crisis: Don't let AI make you average
varn
0
330
Paper Plane (Part 1)
katiecoart
PRO
0
4.3k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
What's in a price? How to price your products and services
michaelherold
247
13k
Transcript
1 シングルテナント構成のSaaSのIaCに Terraform Workspacesを導入してみた Masaki Kazue クラスメソッド株式会社 CX事業本部 Delivery部 MADグループ
2 自己紹介 Masaki Kazue クラスメソッド株式会社 CX事業本部 Delivery部 MADグループ 2019年1月 JOIN
JOINまでの職歴 受託開発 8年 自社サービス開発運用保守 2年 blog : https://dev.classmethod.jp/author/kazue-masaki/ twitter: https://twitter.com/kazueeee_
3 このセッションのゴール • Terraform Workspacesについて理解する • シングルテナント構成のSaaSにTerraform Workspacesを使 う具体的な方法を学ぶ •
シングルテナント x Terraformにおける様々な構成案を学 ぶ
4 Terraform Workspacesとは
5 Terraform Workspacesとは • Terraform側でStateを分けて管理ができる機能 • Workspaces使っていない = default workspaceを使ってい
る
6 ⚠Terraform Cloudのworkspacesとは別物 https://www.terraform.io/cloud-docs/workspaces#terraform-cloud-vs-terraform-cli-workspaces
7 公式ユースケース • テストに使う ◦ 本番環境へのプロビジョニングの前に全く同じ構成を別で作成 してみる ◦ Gitのフィーチャーブランチ毎にworkspace作成 https://www.terraform.io/language/state/workspaces#when-to-use-multiple-workspaces
8 別のユースケース? シングルテナント構成のSaaSで使う
9 シングルテナント?
10 シングルテナント(vs マルチテナント)
11 シングルテナント・マルチテナント・ブリッジ • シングルテナントの方が利用者間での問題に対処しやすい ◦ 他の利用者のデータにアクセスできてしまう ◦ 他の利用者の負荷のせいで重くなる • 一方でリソース効率が悪い
• マルチテナントはその逆 • ブリッジ=両方を適宜使い分けもアリ
12 プロジェクト要件 • 企業向けSaaS (BtoB) • 機密情報を扱う部分(ワークロード)あり ◦ シングルテナント構成→AWSアカウントを分離 ▪
クロスアカウントアクセスはデフォルト禁止されているのでコント ロールしやすい • 周辺部分はマルチテナント構成
13 シングルテナント構成の課題 プロビジョニングする インフラリソース群の数が膨大
14 シングルテナント構成の課題 プロビジョニングする インフラリソース群の数が膨大
15 シングルテナント構成の課題 プロビジョニングする インフラリソース群の数が膨大
16 シングルテナント構成の課題 プロビジョニングする インフラリソース群の数が膨大
17 シングルテナント構成の課題
18 解決方針 • Terraform Workspacesで複数環境にプロビジョニング • Assume Roleでクロスアカウント • Step
FunctionsとCodeBuildで並列化&自動化
19 Terraform Workspacesで複数環境にプロビジョニング
20 Assume Roleでクロスアカウント https://registry.terraform.io/providers/hashicorp/aws/latest/docs
21 Assume Roleでクロスアカウント
22 Assume Roleでクロスアカウント
23 Step FunctionsとCodeBuildで並列化&自動化
24 Step FunctionsとCodeBuildで並列化&自動化 buildspec.yml (terraform apply)
25 やってみた感想 • これまでのところ問題なし • リソースの確認がCDアカウントに入ってworkspaceを切り 替えるだけで全アカウント分できるのが便利
26 シングルテナント x Terraformの他の構成案
27 すみません時間切れです https://dev.classmethod.jp/author/kazue-masaki/ ブログ↓で後々書いていきます…
28 まとめ • Terraform WorkspacesはStateを分けて管理できる機能 • シングルテナント構成のSaaSのIaCに使えるかも • Assume Roleと組み合わせるとクロスアカウントも簡単
• Step FunctionsのMap Stateを使えばplan/applyの並列実 行を自動化できる
29 ご清聴ありがとうございました