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.1k
シングルテナント構成の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
わかる!Hashicorp Waypoint | HashiTalks: Japan2023
kazue
0
940
RDS Proxy, Amazon Kendra, Amazon CodeGuruの紹介 #cmregrowth #reinvent
kazue
0
1.8k
AuroraかRDSどちらを選ぶべきか | Developers.IO 2019 in OSAKA
kazue
0
190k
Codeシリーズで始めるはじめてのCI/CD
kazue
1
510
AKIBA.AWS#14 Terraform v0.12
kazue
0
1.9k
Other Decks in Programming
See All in Programming
パスタの技術
yusukebe
1
350
管你要 trace 什麼、bpftrace 用下去就對了 — COSCUP 2025
shunghsiyu
0
390
バイブスあるコーディングで ~PHP~ 便利ツールをつくるプラクティス
uzulla
1
330
それ CLI フレームワークがなくてもできるよ / Building CLI Tools Without Frameworks
orgachem
PRO
17
3.8k
Webinar: AI-Powered Development: Transformiere deinen Workflow mit Coding Tools und MCP Servern
danielsogl
0
110
変化を楽しむエンジニアリング ~ いままでとこれから ~
murajun1978
0
710
Nuances on Kubernetes - RubyConf Taiwan 2025
envek
0
150
11年かかって やっとVibe Codingに 時代が追いつきましたね
yimajo
1
260
iOS開発スターターキットの作り方
akidon0000
0
240
CLI ツールを Go ライブラリ として再実装する理由 / Why reimplement a CLI tool as a Go library
ktr_0731
3
1.1k
DynamoDBは怖くない!〜テーブル設計の勘所とテスト戦略〜
hyamazaki
0
200
実践!App Intents対応
yuukiw00w
1
230
Featured
See All Featured
The Invisible Side of Design
smashingmag
301
51k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.4k
Rails Girls Zürich Keynote
gr2m
95
14k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Thoughts on Productivity
jonyablonski
69
4.8k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Testing 201, or: Great Expectations
jmmastey
45
7.6k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
760
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
1k
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 ご清聴ありがとうございました