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
Rails でつくるマルチテナント型Webアプリケーション / multi-tenant we...
Search
Kizashi Nagata
May 12, 2018
Technology
1
2.5k
Rails でつくるマルチテナント型Webアプリケーション / multi-tenant web application building with Rails
Kizashi Nagata
May 12, 2018
Tweet
Share
More Decks by Kizashi Nagata
See All by Kizashi Nagata
ビルドが遅い
kizashi1122
0
300
SQS の使い方を わかっていなかった / I didn't know how to use SQS correctly
kizashi1122
0
480
aws-vault を使った セキュアなアクセスキー管理 / Manage AWS Access Key More Securely By Using aws-vault
kizashi1122
0
790
inotify の話 / About inotify
kizashi1122
0
530
B2Bクラウドサービスをゼロから立ち上げて、利用社数が1000社を超えるまでの道のり / a startup started B2B SaaS business from ground zero
kizashi1122
0
860
Other Decks in Technology
See All in Technology
DynamoDB でスロットリングが発生したとき_大盛りver/when_throttling_occurs_in_dynamodb_long
emiki
1
370
【Pycon mini 東海 2024】Google Colaboratoryで試すVLM
kazuhitotakahashi
2
520
100 名超が参加した日経グループ横断の競技型 AWS 学習イベント「Nikkei Group AWS GameDay」の紹介/mediajaws202411
nikkei_engineer_recruiting
1
170
Security-JAWS【第35回】勉強会クラウドにおけるマルウェアやコンテンツ改ざんへの対策
4su_para
0
180
エンジニア人生の拡張性を高める 「探索型キャリア設計」の提案
tenshoku_draft
1
130
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.8k
IBC 2024 動画技術関連レポート / IBC 2024 Report
cyberagentdevelopers
PRO
0
110
AIチャットボット開発への生成AI活用
ryomrt
0
170
TypeScript、上達の瞬間
sadnessojisan
46
13k
ISUCONに強くなるかもしれない日々の過ごしかた/Findy ISUCON 2024-11-14
fujiwara3
8
870
アジャイルでの品質の進化 Agile in Motion vol.1/20241118 Hiroyuki Sato
shift_evolve
0
160
TypeScriptの次なる大進化なるか!? 条件型を返り値とする関数の型推論
uhyo
2
1.7k
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
47
2.1k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
506
140k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Practical Orchestrator
shlominoach
186
10k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
Why Our Code Smells
bkeepers
PRO
334
57k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
120
Adopting Sorbet at Scale
ufuk
73
9.1k
Bash Introduction
62gerente
608
210k
Become a Pro
speakerdeck
PRO
25
5k
Transcript
3BJMTͰͭ͘ΔϚϧνςφϯτܕ 8FCΞϓϦέʔγϣϯ ୈճ3VCZؔษڧձ Ӭాɹஹ !LJ[BTIJ
ࣗݾհ w Ӭాɹஹʢ!LJ[BTIJʣ w גࣜձࣾΠϯήʔδ$50 w ʮ3FMBUJPOʯͱ͍͏##͚ΫϥυαʔϏεΛ։ൃ w ʮ3FMBUJPOʯʹ͍ͭͯޙड़ w
झຯίʔώʔʢࣗͰੜ౾ΛᖿḦͯ͠Ṣ͍ͯҿΜͰΔʣ
Ϛϧνςφϯτܕ ΞϓϦέʔγϣϯͬ ͯʁ ࠷ۙͲ͔͜Ͱൃද͞ΕͯͨΑ͏ͳɾɾ
IUUQTHGYIBUFOBCMPHDPNFOUSZ
Ϛϧνςφϯτܕ ΞϓϦέʔγϣϯͱ ͦͷલʹ
ʮ3FMBUJPOʯͱ w ʮϝʔϧड৴ശΛνʔϜͰڞ༗͢ΔͨΊͷαʔϏεʯ w ར༻γʔϯɿTVQQPSU!FYBNQMFDPN JOGP!FYBNQMFDPNͳͲͷදΞυϨεΛෳਓͰର Ԡɾཧ͢Δ w (NBJMͳͲͷݸਓ͚8FCϝʔϧαʔϏεͱҧͬͯɺ νʔϜͰڞ༗͢ΔͨΊʹඞཁͳػೳɺศརͳػೳ͕
ࡌ͞Ε͍ͯΔ
ʮ3FMBUJPOʯػೳ w 5XJUUFS-*/&! w ঝೝػೳ w ೋॏૹ৴ࢭػೳ w ίϝϯτೖྗʢνʔϜίϝϯτʣ w
༧ૹ৴ w ςϯϓϨʔτ w ूܭ Ϗδωε͚ͷػೳ ͕ἧ͍ͬͯΔ
Ϗδωε͚ʁ
#$ͱ##ͷҧ͍ #$ ΞϓϦέʔγϣϯ ## ΞϓϦέʔγϣϯ ৫ ৫ ৫
##ΞϓϦʹϚϧνςφϯτܕΞϓϦ ΞϓϦέʔγϣϯ ৫ ৫ ৫ ৫νʔϜʢʹςφϯτʣ ͕ΞϓϦέʔγϣϯʹ ରͯ͠ෳଘࡏ͢ΔΞʔΩ ςΫνϟΛϚϧνςφϯτܕ ΞʔΩςΫνϟͱݺͿ
جຊతʹɺϢʔβςφϯ τͷ෦ͷใͷΈΞΫηε ͕Ͱ͖Δ
ϚϧνςφϯτܕΞϓϦͷઃܭ w ·ͣߟ͑Δ͜ͱ w ςφϯτ͝ͱʹ3%#.4ͷσʔλΛͲ͏͢Δ͔ʁ w 63-Ͳ͏͢Δ͔ʁ w ͦͷଞͷσʔλετΞͰͲ͏͢Δ͔ʁ w
ͪ͜Βࠓճলུ
3%#.4σʔλͷ w ΠϯελϯεϨϕϧͰ w εΩʔϚϨϕϧͰ w ߦϨϕϧͰ
ΠϯελϯεϨϕϧͰ w ςφϯτ͝ͱʹҟͳΔ3%#.4ΠϯελϯεͰཧ͢Δ w ίωΫγϣϯଓͷΦʔόϔου w ސ٬͕૿͑Δͨͼʹ3%#.4ΠϯελϯεΛ૿͢͜ͱʹ ͳΔ
"QQ
εΩʔϚϨϕϧͰ w 1PTUHSF42-ͷεΩʔϚʢTDIFNBʣ w εΩʔϚʹ໊લۭؒΛΘ͚ΔΈ w DPNQBOZVTFSTͱDPNQBOZVTFSTςʔϒϧผςʔϒϧ w 4&5TFBSDI@QBUI50DPNQBOZΛ࣮ߦͨ͠ޙͰ͋ΕɺVTFSTςʔϒϧ҉ʹ DPNQBOZVTFSTςʔϒϧΛࢦ͍ͯ͠Δ͜ͱʹͳΔ
w ςφϯτ৽ن࡞࣌શςʔϒϧͷηοτΛ࡞Δ͜ͱʹͳΔ "QQ
ߦϨϕϧͰ w ΞϓϦέʔγϣϯʔσʔλϕʔεΠϯελϯε w ςʔϒϧશςφϯτͰڞ༗ w શςʔϒϧʹUFOBOU@JEΧϥϜΛ࣋ͭ w 8IFSF۟ΛΕͨΒΞτ "QQ
UFOBOU@JE
3FMBUJPOεΩʔϚϨϕϧ w 1PTUHSF42-ͷεΩʔϚ͕ϚϧνςφϯτΞϓϦͱͷ૬ੑ ͕͍͍ͱ͍͏͜ͱ͕Θ͔͍ͬͯͨͷͰ3FMBUJPOͰ໎Θ ͣʹ1PTUHSF42-Λ࠾༻ w ςʔϒϧ͝ͱʹ8IFSF۟Λߟ͑ͳͯ͘ྑ͍ͷ͍͍ "QQ
σʔλ͕͍ͯ͠Δͱ҆৺͔ʁ w ଞͷςφϯτͷใ͕ࠞࡏ͢ΔͷΛΠϠ͕Δձࣾ͋Δ w ෆ۩߹ʹΑΓଞςφϯτͷใʹΞΫηεͯ͠͠·͏͜ͱ ͋ΓಘΔʢ͋ͬͯͳΒͳ͍͕ʣ !20
63-ͷઃܭ w ςφϯτใΛ63-ʹؚΊΔ͔ʁ w ؚΊͳ͍ʢશςφϯτڞ௨ʣ w ؚΊΔ w ύεʹؚΊΔ w
αϒυϝΠϯʹؚΊΔ
63-શςφϯτڞ௨ʹ͢Δ w (4VJUFͳͲ w IUUQTNBJMHPPHMFDPN w σʔλϕʔεʹϩάΠϯϢʔβ͕ଐ͢ΔςφϯτใΛ࣋ ͪɺͦͷςφϯτʹඥͮ͘σʔλʹͷΈΞΫηεՄೳͱ ͢Δ
ύεʹςφϯτใΛͭ w :BNNFSͳͲ w IUUQTXXXZBNNFSDPNJOHBHFKQIPNF w ଞςφϯτͰ63-ͷϗετ෦ಉ͡ͱ͍͏͜ͱ w $PPLJFςφϯτ͝ͱΘ͚Δ͜ͱͰ͖ͳ͍ʢଟʣ w
$PPLJFʹQBUIใΛ࣋ͭ͜ͱ͕Ͱ͖Δ͕ɺηΩϡϦ ςΟ্ͷޮՌͳ͍ w :BNNFSͰ$PPLJFͷ1BUIͩͬͨ IUUQTCMPHUPLVNBSVPSH
αϒυϝΠϯʹςφϯτใΛͭ w 4MBDLͳͲ w IUUQTJOHBHFKQTMBDLDPNNFTTBHFT w ςφϯτ͝ͱʹυϝΠϯ͕ҟͳΔ w $PPLJFςφϯτ͝ͱʹҟͳΔ w
44-ূ໌ॻϫΠϧυΧʔυυϝΠϯʹରԠ͍ͯ͠Δඞ ཁ͕͋Δ
3FMBUJPOαϒυϝΠϯܕ w ಛʹͩ͜ΘΓͳ͔ͬͨɻ w ։ൃڥϧʔϓόοΫΞυϨεΛαϒυϝΠϯܕʹ͢Δඞཁ͕ ͋Δ w #BTFDBNQ͕ఏڙ͍ͯ͠ΔYJQJPυϝΠϯΛར༻ w IUUQUFOBOUYJQJPΈ͍ͨͳײ͡
w εςʔδϯάڥ-FUT&ODSZQUΛͬͯ44-ڥΛߏͯ͠ ͍Δɻ࠷ۙ-FUT&ODSZQU͕ϫΠϧυΧʔυରԠͨ͠ͷͰ͏༧ఆɻ
3%#.4εΩʔϚͰ 63-αϒυϝΠϯ ͰɺͲ͏࣮͢Δ͔
BQBSUNFOUHFNΛ͏ w DPNQBOZBQQDPNͰΞΫηε͞ΕͨΒɺࣗಈతʹσʔ λϕʔεͷDPNQBOZεΩʔϚʹΓସ͑Δʢ4&5 TFBSDI@QBUI50DPNQBOZʣΈ͕༻ҙ͞Ε͍ͯΔɻ ͜͜ͰεΩʔϚΛ Γସ͑Δ
SBDLNJEEMFXBSF ͪ͜ΒͰͲͷεΩʔϚʹ ΞΫηεͯ͠Δ͔ҙࣝ͠ͳ͍
BQBSUNFOUHFNΛ͏ w ΧϥϜՃɺมߋͳͲͷECNJHSBUFશεΩʔϚʹద༻ ͢Δඞཁ͕͋Δɻ w ͜ΕBQBSUNFOUHFN͕ࣗಈతʹશεΩʔϚʹద༻͠ ͯ͘ΕΔɻ w ςφϯτ͕૿͑Ε૿͑Δ΄ͲECNJHSBUFʹ͕࣌ؒ
͔͔ͬͯ͠·͏ʢαʔϏεఀࢭ͕࣌ؒ͘ͳΔʣ w BQBSUNFOUHFNͷ࠷ۙͷΞοϓσʔτͰECNJHSBUF͕ ฒྻ࣮ߦͰ͖ΔΑ͏ʹͳͬͨɻ
BQBSUNFOUHFNΛ͏ w ܦݧతʹֶΜͩ͜ͱ w ΠϯσοΫεՃɺΧϥϜআͳͲɺαʔϏεՔಇத Ͱ࣮ߦՄೳͳͷECNJHSBUFͷதͰ͠ͳ͍Α ͏ʹ͢ΔʢαʔϏεఀࢭΛͰ͖Δ͚ͩগͳ͘ʣ w ͨͩ͠ECTDIFNBSCΕͳ͍Α͏ʹߋ৽͓ͯ͘͠
w ςφϯτ͕৽ن࡞͞ΕͨࡍʹɺECTDIFNBSC Λͱʹςʔϒϧ͕࡞ΒΕΔͨΊ
·ͱΊ w ##ͷ4BB4ܕαʔϏεʹϚϧνςφϯτܕΞϓϦ w ·ͣσʔλͷํࣜɺ63-ઃܭΛߟ͑Α͏ w BQBSUNFOUHFNศར w λΠτϧʮ3BJMTͰ࡞Δɾɾʯ͚ͩͬͨͲ3BJMTͷ Ͱͯ͜ͳ͔ͬͨ
ʮ3FMBUJPOʯར༻ٕज़ w "84 &OHJOF:BSE w 4 424 -BNCEB w
3VCZ 1FSM /PEF+4 1ZUIPO (P w 3BJMT "OHVMBS+4 w &MBTUJDTFBSDI w 1PTUHSF42- 3FEJT .FNDBDIFE
ΠϯήʔδͰ ΤϯδχΞΛืू͍ͯ͠·͢ !32