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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
24
AI駆動開発に向けた新しいエンジニアマインドセット
kazue
0
870
わかる!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
540
AKIBA.AWS#14 Terraform v0.12
kazue
0
1.9k
Other Decks in Programming
See All in Programming
テレメトリーシグナルが導くパフォーマンス最適化 / Performance Optimization Driven by Telemetry Signals
seike460
PRO
2
180
「効かない!」依存性注入(DI)を活用したAPI Platformのエラーハンドリング奮闘記
mkmk884
0
250
Cyrius ーLinux非依存にコンテナをネイティブ実行する専用OSー
n4mlz
0
250
コードレビューをしない選択 #でぃーぷらすトウキョウ
kajitack
3
1.2k
Windows on Ryzen and I
seosoft
0
410
ポーリング処理廃止によるイベント駆動アーキテクチャへの移行
seitarof
3
1.3k
PHP 7.4でもOpenTelemetryゼロコード計装がしたい! / PHPerKaigi 2026
arthur1
1
420
今からFlash開発できるわけないじゃん、ムリムリ! (※ムリじゃなかった!?)
arkw
0
160
Java 21/25 Virtual Threads 소개
debop
0
280
実践ハーネスエンジニアリング #MOSHTech
kajitack
7
4.4k
守る「だけ」の優しいEMを抜けて、 事業とチームを両方見る視点を身につけた話
maroon8021
3
1.5k
Linux Kernelの1文字のミスで 権限昇格ができた話
rqda
0
2.2k
Featured
See All Featured
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
160
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
10k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
200
Code Reviewing Like a Champion
maltzj
528
40k
Google's AI Overviews - The New Search
badams
0
950
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
330
[SF Ruby Conf 2025] Rails X
palkan
2
860
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
86
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.2k
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 ご清聴ありがとうございました