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におけるマルチテナント設計
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
doyaaaaaken
April 18, 2022
Programming
5
2.9k
プラットフォーム型SaaSにおけるマルチテナント設計
SaaS.tech #2
『SaaSにおけるマルチテナント設計の悩みと勘所』
doyaaaaaken
April 18, 2022
Tweet
Share
More Decks by doyaaaaaken
See All by doyaaaaaken
コンパウンドスタートアップの“疎結合すぎない”チーム設計
doyaaaaaken
5
1.7k
スマートラウンドで試してみた ChatGPT活用成功/失敗事例8選!
doyaaaaaken
3
4.5k
Kotlin製自作OSSの普及戦略 ~kotlin-csvの実例を元に~ @Kotlin Fest 2022
doyaaaaaken
3
940
20220721 小規模フルリモート組織における入社者オンボーディング設計
doyaaaaaken
0
420
エンジニアによる事業指標計測のススメ
doyaaaaaken
1
460
考えることを仕組み化する
doyaaaaaken
1
750
プルリクへのセルフコメントという小技
doyaaaaaken
0
660
先取りKtor2.0
doyaaaaaken
1
690
Kotlinを研究する
doyaaaaaken
0
1.3k
Other Decks in Programming
See All in Programming
社内規程RAGの精度を73.3% → 100%に改善した話
oharu121
13
8k
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
460
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
260
CS教育のDX AIによる育成の効率化
niftycorp
PRO
0
100
LangChain4jとは一味違うLangChain4j-CDI
kazumura
1
180
20260228_JAWS_Beginner_Kansai
takuyay0ne
5
510
守る「だけ」の優しいEMを抜けて、 事業とチームを両方見る視点を身につけた話
maroon8021
3
850
SourceGeneratorのマーカー属性問題について
htkym
0
190
new(1.26) ← これすき / kamakura.go #8
utgwkk
0
2.3k
The Ralph Wiggum Loop: First Principles of Autonomous Development
sembayui
0
3.7k
CSC307 Lecture 13
javiergs
PRO
0
320
Goの型安全性で実現する複数プロダクトの権限管理
ishikawa_pro
2
320
Featured
See All Featured
Designing Experiences People Love
moore
143
24k
Building the Perfect Custom Keyboard
takai
2
710
Navigating Team Friction
lara
192
16k
Un-Boring Meetings
codingconduct
0
220
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.2k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
970
My Coaching Mixtape
mlcsv
0
71
The SEO Collaboration Effect
kristinabergwall1
0
390
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
230
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
210
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.1k
Transcript
2022/04/20 @SaaS.tech #2 খࢁ ݈ଠ(Koyama Kenta) @doyaaaaaken ϓϥοτϑΥʔϜܕSaaSʹ͓͚Δ Ϛϧνςφϯτઃܭ
ࣗݾհ • ࣄ • גࣜձࣾεϚʔτϥϯυ CTO / ۀϝϯόʔ • αʔόαΠυKotlinɾVueJSΛར༻
• “Server-Side Kotlin Meetup” ͱ͍͏ΠϕϯτΛओ࠵ • OSS׆ಈ • kotlin-csvͷ࡞ऀʢ⭐: 400ʣ • KtorɾExposedɾkotestͷίϯτϦϏϡʔλ @doyaaaaaken
Ϛϧνςφϯτͷσʔλઃܭ 3ύλʔϯ AWS SaaS FactoryϗϫΠτϖʔύͩͱҎԼͷఆٛ 1. αΠϩ DBΠϯελϯεϨϕϧͰςφϯτ 2.
ϒϦοδ DBΠϯελϯεڞ༗͠ɺεΩʔϚϨϕϧͰςφϯτ 3. ϓʔϧ DBΠϯελϯεɾεΩʔϚڞ༻͠ɺςʔϒϧͰςφϯτIDΛ࠾൪͠ ࢀߟɿʰ1PTUHSF42-ͷߦϨϕϧͷηΩϡϦςΟΛඋ͑ͨϚϧνςφϯτσʔλͷʱIUUQTBXTBNB[PODPNKQCMPHTOFXTNVMUJUFOBOUEBUBJTPMBUJPOXJUIQPTUHSFTRMSPXMFWFMTFDVSJUZ
Ϛϧνςφϯτͷσʔλઃܭ 3ύλʔϯ AWS SaaS FactoryϗϫΠτϖʔύͩͱҎԼͷఆٛ 1. αΠϩ DBΠϯελϯεϨϕϧͰ 2.
ϒϦοδ DBΠϯελϯεڞ༗ɺεΩʔϚΛ 3. ϓʔϧ DBΠϯελϯεɾεΩʔϚڞ༻ɺ֤ςʔϒϧͰςφϯτIDΛ࠾൪͠ ࢀߟɿʰ1PTUHSF42-ͷߦϨϕϧͷηΩϡϦςΟΛඋ͑ͨϚϧνςφϯτσʔλͷʱIUUQTBXTBNB[PODPNKQCMPHTOFXTNVMUJUFOBOUEBUBJTPMBUJPOXJUIQPTUHSFTRMSPXMFWFMTFDVSJUZ εϚʔτϥϯυ͜ͷઃܭ👇
Q. ͳͥϓʔϧܕʹͨ͠ͷʁ🤔
A. ϓϥοτϑΥʔϜܕSaaS͔ͩΒ
A. ϓϥοτϑΥʔϜܕSaaS͔ͩΒ 👀
લఏɿϏδωεϞσϧ ελʔτΞοϓ͕ձࣾܦӦ͢Δ্ͰͷඞਢۀΛαϙʔτ͢ΔSaaS • גओ૯ձ • ূ݊ཧʢגࣜɾετοΫΦϓγϣϯཧʣ • ࢿຊࡦ • ܦӦཧ
• גओ໊ཧ • …etc
લఏɿϏδωεϞσϧ SaaSͳͷͰελʔτΞοϓʢ2,500ࣾʣ֤ࣾͷσʔλಠཱ ελʔτΞοϓ ελʔτΞοϓ ελʔτΞοϓ ελʔτΞοϓ ελʔτΞοϓ ελʔτΞοϓ גओ૯ձ
גࣜɾSO ܾࢉใ BS/PL ࢿຊࡦ ݄࣍ܦӦࢦඪ ֤ࣾಠཱͨ͠σʔλΛ࣋ͭ גओ໊
͜͜·ͰSaaS😌
લఏɿϏδωεϞσϧ ࢿՈʢVCΤϯδΣϧʣ͕ελʔτΞοϓͷσʔλΛӾཡՄೳ ελʔτΞοϓ ελʔτΞοϓ ελʔτΞοϓ ελʔτΞοϓ ελʔτΞοϓ ελʔτΞοϓ ࢿՈ
ࢿՈ ࢿՈ ࢿՈ ࢿઌཧɾࢿҊ݅ཧ4BB4 ձࣾܦӦαϙʔτ4BB4
લఏɿϏδωεϞσϧ ࢜ۀʢหޢ࢜ɾ੫ཧ࢜ɾࠪ๏ਓͳͲʣ͕ଞࣾʹΞΫηεՄೳ ελʔτΞοϓ ελʔτΞοϓ ελʔτΞοϓ ελʔτΞοϓ ελʔτΞοϓ ελʔτΞοϓ ࢿՈ
ࢿՈ ࢿՈ ࢿՈ ࢜ۀ ࢜ۀ ࢜ۀ
SaaS͚ͩͲϓϥοτϑΥʔϜ😲
ϓϥοτϑΥʔϜܕSaaSͷ2ͭͷಛ ಛᶃɿςφϯτΛލ͍ͩσʔλΞΫηε͕͋Δ ྫʣࢿՈ͕ෳͷࢿઌελʔτΞοϓͷࢿύϑΥʔϚϯεΛԣ۲ͰධՁ
ϓϥοτϑΥʔϜܕSaaSͷ2ͭͷಛ ಛᶃɿςφϯτΛލ͍ͩσʔλΞΫηε͕͋Δ ϓʔϧܕͰͳ͍߹ʢDBΠϯελϯεεΩʔϚΛͨ͠߹ʣͷ՝ ɹෳࣾσʔλͷҰׅऔಘ͕͍͠ ʢSQLΛεΩʔϚ͝ͱΠϯελϯε͝ͱʹ࣮ߦ͢Δඞཁ͋Γʣ ϓʔϧܕʢΠϯελϯεɾεΩʔϚڞ༗ܕʣ͕ϕλʔ
ϓϥοτϑΥʔϜܕSaaSͷ2ͭͷಛ ಛᶄɿςφϯτ͕ଟ͍ͨΊɺϚΠάϨʔγϣϯʹ͕͔͔࣌ؒΔ ࢀߟɿʰͭΒ͘ͳ͍ϚϧνςφϯγʔΛٻΊͯશͯݟͤ·͢ʂ4NBSU)3σʔλϕʔεҠߦϓϩδΣΫτͷཪଆCVJMEFSTDPOʱIUUQTTQFBLFSEFDLDPNQVSJOUBJCVJMEFSTDPO ྫʣSmartHR͞Μ͕ϚϧνςφϯτϚΠάϨʔγϣϯ100࣌ؒΛղܾͨ͠
ϓϥοτϑΥʔϜܕSaaSͷ2ͭͷಛ ಛᶄɿςφϯτ͕ଟ͍ͨΊɺϚΠάϨʔγϣϯʹ͕͔͔࣌ؒΔ ϓʔϧܕͰͳ͍߹ʢDBΠϯελϯεεΩʔϚΛͨ͠߹ʣͷ՝ ΠϯελϯεεΩʔϚΛ͢ΔͱϚΠάϨʔγϣϯ͕࣌ؒ͘ͳΔ ʢ1ςφϯτͷϚΠάϨʔγϣϯ͕30ඵͱ͢Δͱ10,000ςφϯτͰ83࣌ؒ…ʣ ࢀߟɿʰͭΒ͘ͳ͍ϚϧνςφϯγʔΛٻΊͯશͯݟͤ·͢ʂ4NBSU)3σʔλϕʔεҠߦϓϩδΣΫτͷཪଆCVJMEFSTDPOʱIUUQTTQFBLFSEFDLDPNQVSJOUBJCVJMEFSTDPO ϓʔϧܕʢΠϯελϯεɾεΩʔϚڞ༗ܕʣ͕ϕλʔ
ʲ݁ʳϓϥοτϑΥʔϜܕSaaS Ͱϓʔϧܕ͕͍͍ͯΔ😉
εϚʔτϥϯυ͚ͩͷ ٕज़త՝Ͱʁ😓
ଞͷձࣾͰϓϥοτϑΥʔϜܕ ʹͳΔ͜ͱ͋Γ͑·͢😉
ϓϥοτϑΥʔϜܕʹͳΓͦ͏ͳྫ • ςφϯτاۀෳΛαϙʔτ͢ΔΑ͏ͳ৬ۀ͕͋Δ߹ • SmartHR͞ΜͰ͍͏ࣾ࿑࢜ • freee͞ΜͰ͍͏੫ཧ࢜ɾձܭ࢜ ࣗ͝ͷSaaSͷۀքʹͯΊͯఆͯ͠ΈΔͱ͍͍͔͠Ε·ͤΜ
͕࣌ؒ༨ͬͨͷͰ😉
Q. ϓʔϧܕͩͱηΩϡϦςΟ ා͘ͳ͍ʁͲΜͳͯ͠Δͷʁ😲
A. ΞϓϦέʔγϣϯϨΠϠͰ ଟޚ 💪
ଟޚͱͯͬͯ͠Δ͜ͱͬ͘͟Γઆ໌ • ίϯτϩʔϥ • URLʹೖͬͨςφϯτIDΛνΣοΫ • υϝΠϯϞσϧ • υϝΠϯϞσϧΛར༻͢ΔͱςφϯτͷऔΓҧ͕͑ͳ͘ͳΔΑ͏ͳ্࣮ͷΛ͍ͯ͠Δ •
σʔλΞΫηε • શͯͷࢀরɾ࡞ɾߋ৽ɾআॲཧʹʢෆཁͰ͋ͬͯʣඞͣςφϯτIDͷνΣοΫΛೖΕΔ • ผͷIDͱऔΓҧ͑ͳ͍Α͏ઐ༻ͷܕʢྫɿStartupIdܕʣΛఆٛ • ςʔϒϧઃܭ • શͯͷςʔϒϧʹςφϯτIDΛೖΕΔʢͨͱ͑ෆཁͰ͋ͬͯҰԠೖΕΔʣ
DBϨΠϠͷޚҊ • ΞϓϦϨΠϠ͚ͩͩͱා͍ͷͰRow-Level Securityͱ͔ؾʹͳ͍ͬͯΔ ʰϚϧνςφϯτ4BB4ͷςφϯτΛ3PX-FWFM4FDVSJUZʹҠߦͨ͠ʱIUUQTCVJMEFSTCPYDPSQTBOTBODPNFOUSZ
(࠷ޙʹ) εϚʔτϥϯυઈࢍ࠾༻தͰ͢ ελʔτΞοϓ2,500͕ࣾొ͢Δσʔλڞ༗ɾཧϓϥοτϑΥʔϜΛ Ұॹʹ࡞ͬͯ͘ΕΔํΛ୳͍ͯ͠·͢ ˞·ͣΧδϡΞϧ໘ஊ͔Βʂ5XJUUFS%.ɾ8BOUFEMZͳͲ͔Β͓ؾܰʹ͝࿈བྷ͍ͩ͘͞ɻ