Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
シングルテナント構成のSaaSのIaCにTerraform Workspacesを導入してみた
Search
kazue
August 29, 2022
Programming
2.4k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
シングルテナント構成のSaaSのIaCにTerraform Workspacesを導入してみた
https://dev.classmethod.jp/articles/terraform-workspaces-for-single-tenant-saas-iac/
kazue
August 29, 2022
More Decks by kazue
See All by kazue
Grafana as Code - Terraformによるダッシュボードとアラートの構成管理 @ HashiTalks:Japan 2025
kazue
0
45
AI駆動開発に向けた新しいエンジニアマインドセット
kazue
0
1.2k
わかる!Hashicorp Waypoint | HashiTalks: Japan2023
kazue
0
1.2k
RDS Proxy, Amazon Kendra, Amazon CodeGuruの紹介 #cmregrowth #reinvent
kazue
0
2k
AuroraかRDSどちらを選ぶべきか | Developers.IO 2019 in OSAKA
kazue
0
190k
Codeシリーズで始めるはじめてのCI/CD
kazue
1
580
AKIBA.AWS#14 Terraform v0.12
kazue
0
2k
Other Decks in Programming
See All in Programming
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
160
Security issues being discussed on Web Platforms
petamoriken
0
1.4k
仕様駆動開発による爆速プロダクト開発 / Bakusoku Spec Driven Development
kobakei
0
200
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
34
15k
App Storeの外へ──日本のiOSサイドローディング入門 for iOSDC Japan 2026
yuukiw00w
0
310
AI が書く Go コードの品質を劇的に向上させる Linter: “declscope”
mpyw
0
480
手動確認はもう限界 〜XCUITestでCustom URL Schemeの遷移を起動種別ごとに自動テストする〜 / Testing Custom URL Schemes with XCUITest
otouto
0
390
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
20
21k
R8 の設定見直しでアプリサイズ削減
andpad
0
180
なぜCTOを降りてFDEを選んだのか?〜なぜプロダクト企業がFDEで顧客の現場に踏み込むのか〜
gonta
1
160
Vue Fes Japan 2026 タイムテーブル徹底解説
448jp
1
630
Androidだけじゃない、DroidKaigiで広がった私の技術スタック
akkeylab
0
120
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
570
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
58k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
350
The agentic SEO stack - context over prompts
schlessera
0
970
Paper Plane
katiecoart
PRO
4
54k
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
480
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
Designing for humans not robots
tammielis
254
26k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
300
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 ご清聴ありがとうございました