・マルチテナントアーキテクチャ ・テナント間通信のアーキテクチャ ・Configurabilityを実現するDB設計 ・Configurabilityを実現するReactの設計 ・B2B SaaSをAWSで提供する際に考慮すべきこと ※インフラ設計と書きながらインフラのことについてはほぼ内容ありません
"84ך؎ٝؿٓ鏣鎘ה%#鏣鎘ַַ##4BB4涪ךֶ׃ׁ!@@NOD
View Slide
⡟ղ加䒀⛲""吳䒭⠓爡؟٦غ٦؟؎سؒٝآص،吳䒭⠓爡ؙؕؕ؝ي倜⼼דⰅ爡׃굸ץؚٗך✮秈ءأذيⰋ菙ה"OESPJE،فٔך涪䬐䔲吳䒭⠓爡4QFFF卹ꨵءأذيך41"⻉䬐䔲䖓ծ43&ה׃ג✲噟鿇ך涪㛇湍圓眠٥麊欽遤ֲ""吳䒭⠓爡ⶼ噟ًٝغ٦ה׃ג⸇醡鸡噟ך飑顠噟⸬桦⻉ׅ4BB43'2ؙٓؐس涪⚥!@@NOD
劤傈ךֶ鑧כē晛ךךזךד鏣鎘כת㢌〳腉䚍ָ֮תׅ岣䠐
"(&/%"4BB4הכءأذيח実ֿה3'2ؙٓؐسך铡僇وٕثذشٝز،٦ؗذؙثٍ$POHVSBCJMJUZ؎ٝؿٓ鏣鎘##4BB4ךֶ׃ׁ
4BB4הכ
4BB4ך㹀纏˒4BB4؟٦أծ4PGUXBSFBTB4FSWJDFכծ䗳銲ז堣腉䗳銲זⴓֽ؟٦ؽأה׃גⵃ欽דֹ״ֲח׃اؿزؐؑ،⚺ח،فٔ؛٦ءّٝاؿزؐؑ،׃ֻכך䲿⣘䕎䡾ךֿהկ♧菙חכ؎ٝة٦طحز穗歋ד䗳銲ז堣腉ⵃ欽ׅ➬穈דծءؚٕٝءأذي٥وٕثذشٝز倯䒭חזגְך䭷ׅ˒4BB4הכ䒷欽IUUQTKBXJLJQFEJBPSHXJLJ4BB4
岀➂ぢֽءأذيך㢌鼂4BB4הכ㼪Ⰵ顤欽أؙٓحث涪ػح؛٦آ4BB4植㖈أؙٓحث涪⟰噟嫣ח涪׃גְⴱ劍㼪Ⰵ顤欽٥麊欽顤欽ָ넝겘Ύػح؛٦آػح؛٦آ⻉׃ֿהדⴱ劍㼪Ⰵ顤欽䫇ִΏ4BB4ػح؛٦آءأذيה嫰ץءأذئا٦أⰟ剣⻉׃⡚⣣呓⻉
4BB4ךًٔحز⡚⣣呓ؙٓؐس؎ٝؿٓח״ءأذئا٦أⰟ剣דֹծ⡚⣣呓ד䲿⣘דֹΎⴱ劍㼪Ⰵ䊨侧٥㼪Ⰵ顤欽ָ㼰זְأؙٓحث涪װػح؛٦آה嫰ץծ؎ٝؿٓ圓眠ָ♶銲ז㼪Ⰵ䊨侧ָ㼰זְΏأٌ٦ٕأة٦زָ׃װְׅ؟ـأؙٔفءٌّٝرٕדⴱ劍顤欽ָ㸜ְծ孡鯪חכֿׄהָדֹΐ竰竲涸חءأذيח堣腉鷄⸇٥何㊣ָ遤害欽涸ז堣腉ָ鷄⸇ׁגְֻ倜堣腉鷄⸇顤欽זֻⵃ欽דֹ4BB4הכ
4BB4ךرًٔحز⟰噟嫣ך銲劄ח㼎䘔׃בְ⟰噟嫣ך⦐ⴽ涪遤ֲה⡚⣣呓ך؟ـأؙٔفءّٝהְֲؽآطأٌرٕה䱰皾ָהזֻזծ⾱4BB4كٝت٦כ⦐ⴽך涪㼎䘔遤זְկأؙٓحث涪כ鎉׆ָזծػح؛٦آءأذيדؕأةو؎ؤ涪ָ〳腉זךָ㢳ְծ4BB4ךرًٔحزהְִկ4BB4הכ
ءأذيח実ֿה
4BB4ךًٔحز⠼לׅءؚٕٝءأذي٥وٕثذشٝزד䲿⣘ׅ⥂㸚涪ך䊨侧㼰זֻ׃ծءأذيךⵃ欽⸬桦넝ֿהָ〳腉זوٕثذشٝز،٦ؗذؙثٍ㹋植ׅ䗳銲ָ֮կءأذيח実ֿה
4BB4ךرًٔحز鯪幾ׅ$POHVSBCJMJUZ然⥂׃ءأذي涪⟰噟嫣ח殯ז㢳圫ז銲劄ח㼎׃ג鿪䏝ךءأذي涪遤׆ח㼎䘔ׅծ鏣㹀ד堣腉ؕأةو؎ؤדֹ״ֲחׅկ⟰噟ךر٦ةָ幉ׄזְ״ֲחⴓꨄׁ鏣鎘ؔٝفٖה嫰ץծչؙٓؐسYوٕثذشٝزպכإُؗٔذ؍חꟼׅ䧄䙀䭯ֿהָ㢳ְկךծ֮ײر٦ةا٦أחאְגغؚזוד⟰噟ךر٦ةָ幉ׄזְ״ֲז㸜Ⰻ䚍ך넝ְ鏣鎘ָ実կءأذيח実ֿה
תההءأذيחכ⟃♴ָ実٥ءأذيⵃ欽⸬桦ָ넝ֻ㸜Ⰻ䚍ך넝ְوٕثذشٝز،٦ؗذؙثٍ٥$POHVSBCJMJUZ然⥂׃فٗتؙزך涪٥إُؗٔذ؍ٖكٕך䬐⥂ءأذيח実ֿה
ֿ3'2ؙٓؐسדכוֲ㹋植׃גְַءأذيח実ֿה
3'2ؙٓؐسך铡僇
3'2ؙٓؐسהכ3'2ؙٓؐسך铡僇醡鸡噟ך锃麦٥飑顠䬐䔲罏ך鋅琎《䖤فٗإأ 3'2剑黝⻉׃؝أز幾佄䴂ׅ4BB4
وٕثذشٝز،٦ؗذؙثٍ
وٕثذشٝز،٦ؗذؙثٍהכوٕثذشٝز،٦ؗذؙثٍ˒وٕثذشٝز倯䒭הכծאךءأذيך⚥ח醱侧ך⟰噟ِ٦ؠ٦ך؟٦ؽأず㽿ׇׁծٔا٦أװ麊欽؝أز㣐䌴ח⡚幾ׅ倯䒭ךֿהד֮կ˒䒷欽IUUQXXXBUNBSLJUDPKQGEPUOFUCPPLQSFWJFXB[VSFPWFSWJFX@B[VSFPWFSWJFX@@IUNM
وٕثذشٝء٦ךٖكٕوٕثذشٝز،٦ؗذؙثٍؙٓؐسⰻדך⽃秪ז⟎䟝⻉ח״ع٦سؐؑ،ךⰟ剣Ύ،فٔ؛٦ءّٝדذشٝز׀הח殯זر٦ةك٦أ⢪欽Ώ،فٔ؛٦ءّٝדر٦ةك٦أⰟ剣䒷欽IUUQTXXXJCNDPNEFWFMPQFSXPSLTKQDMPVEMJCSBSZDMNVMUJUFOBOUTBBT
أؗ٦وⰟ剣倯䒭ך✲⢽Ⱏ剣ر٦ةك٦أ؟٦غ٦דذشٝز嫣חأؗ٦وⴓꨄ1PTUHSF42-ז4DIFNBծ.Z42-ז%BUBCBTFⴓꨄׅկ4NBSU)3 ,JCFMB #JU+PVSOFZָ䱰欽կ4NBSU)3כ如ل٦آך倯䒭ח㢌刿׃ֲկ3VCZדכJOVJUJWFBQBSUNFOUָ֮وٕثذشٝز،٦ؗذؙثٍ
أؗ٦وⰟ剣倯䒭ך✲⢽وٕثذشٝز،٦ؗذؙثٍUFOBOUYYYUFOBOUZZZUFOBOU[[[Ⱏ剣%#TVCEPNBJOַأؗ٦و暴㹀ΎTVCEPNBJOָYYYΎTVCEPNBJOָZZZ
أؗ٦وⰟ剣倯䒭ך✲⢽ΎⰋذ٦ـٕחUFOBOU@JEؕٓي欽䠐ׅ4BMFTGPSDFװ4NBSU)3ָ䱰欽կ3VCZדכDJUVTEBUBBDUJWFSFDPSENVMUJUFOBOUװ&SXJO.BDUT@BT@UFOBOUָ֮وٕثذشٝز،٦ؗذؙثٍJE UFOBOU@JE OBNF FNBJM ⡟ղ加 TBTBLJ!BBDPKQ 匟劤 NBUTVNVUP!BBDPKQJE UFOBOU@JE OBNF ؿٗٝزػطٕ ؿ؋ٝؼ٦ة٦VTFST NBUFSJBMT
أؗ٦وⰟ剣倯䒭ך✲⢽Ύوٕثذشٝز،٦ؗذؙثٍTVCEPNBJOַUFOBOU@JE暴㹀ΎUFOBOU@JEEFGBVMUTDPQFח鏣㹀BBBذ٦ـٕCCCذ٦ـٕUFOBOUTذ٦ـٕ
3'2ؙٓؐسדכΎ䱰欽4NBSU)3װ,JCFMBך濼鋅罋ח׃NJHSBUJPOך儗ָ0 Oד㟓⸇կ4NBSU)3דכNJHSBUJPOח侧儗ַַגְկ3'2ؙٓؐسדכ㼛勻涸ח⟰噟《䒷ךطحزٙ٦ؙ⡲ְծذشٝز侧כ侧♰⽃⡘חזֿהָ䟝㹀ׁկךծأ؛٦ٕ׃װְׅΎך倯䒭䱰欽ֿׅהח׃կوٕثذشٝز،٦ؗذؙثٍ
׃ַ׃ְֻאך铬겗ָ˘وٕثذشٝز،٦ؗذؙثٍ
ذشٝز؝ىُص؛٦ءّٝ鋅琎⣛걾הך㔐瘶דכذشٝزדر٦ةךװ《ָ涪欰ׅوٕثذشٝز،٦ؗذؙثٍ㹋鄲ׅ㜥さծⴽذشٝزךر٦ة湫䱸鋅ֿהכ鼘ְֽ׃ַ׃Ⱏ剣أؗ٦و欽䠐ׅ㜥さծⴽذشٝزךر٦ةָ鋅ג׃תֲغؚזוֲ〳腉䚍ָ֮وٕثذشٝز،٦ؗذؙثٍ
ذشٝز؝ىُص؛٦ءّٝوٕثذشٝز،٦ؗذؙثٍ4IBSFE4DIFNBUFOBOU#UFOBOU"鸐⥋⯓ךUFOBOU嗚稊ذشٝزתּر٦ةכ؝ؾ٦׃ג床ׅ嵲㢩ך4BB45SBEFTIJGU罋חذشٝزדװ《ׅر٦ةכ؝ؾ٦׃ג床ׅ鏣鎘חֲֿׅהדذشٝز㢩ךر٦ةחאְגכ䠐陎ׅ䗳銲ָזֻזذشٝز嫣ךꥫꨄ䚍䴦זזֻז
⟰噟嫣ךػأٙ٦سهٔء٦$PHOJUPדכ⡲䧭דֹ6TFS1PPM侧ח♳ꣲָ֮⟰噟׀הח実إُؗٔذ؍ٖكָٕ殯זծ⟰噟嫣חػأٙ٦سهٔء٦鏣㹀דֹ䗳銲ָ֮׃ַ׃$PHOJUPדכ⡲䧭דֹ6TFS1PPM侧ך♳ꣲָ֮ծذشٝز嫣ח6TFS1PPM欽䠐ֿׅהכדֹזְկ"VUIדذشٝز嫣חDPOOFDUJPO 6TFS1PPMח湱䔲⡲䧭ׅذشٝز⡲䧭儗חךذشٝز欽ךDPOOFDUJPO⹛涸ח⡲䧭׃גְկ˟ػأٙ٦سهٔء٦˘⼱錬薉侧㶵俑㶵⟃♳זוوٕثذشٝز،٦ؗذؙثٍ
$POHVSBCJMJUZ
$POHVSBCJMJUZה$VTUPNJ[BCJMJUZך麩ְ$POHVSBCJMJUZ곁㹏ך㢳圫ז銲劄ח㼎䘔ׅח遤ֲֿהָדֹ鏣㹀ך㢌刿〳腉䚍곁㹏ך銲劄♧菙⻉׃鏣㹀ח״ג㼎䘔דֹ״ֲח涪ֿׅהדكٝت٦⩎ך㼪Ⰵ؝أز䫇ִ$VTUPNJ[BCJMJUZ곁㹏ך銲劄ח㼎䘔ׅח杝荈ד涪遤ֲ㜥さךؕأةو؎ؤ䲿⣘腉⸂곁㹏ך銲劄ָ暴婊ד֮ג㼎䘔〳腉ָ㣐ֹז㼪Ⰵ؝أزָ䌢ח涪欰ׅ$POHVSBCJMJUZ
$VTUPNJ[BCJMJUZ״$POHVSBCJMJUZ$POHVSBCJMJUZ
$POHVSBCJMJUZךꨇ䨽ծأؗ٦و♶㹀ر٦ةך䪔ְأؗ٦و♶㹀ر٦ةأؗ٦وכ㔿㹀⻉דֹזְָծך儗挿דךأؗ٦وח黝さ׃זְر٦ةכ鏩㺁׃זְأؗ٦وٖأוזر٦ةךⰅ⸂「ֽ➰ֽ$POHVSBCJMJUZ
3'2ؙٓؐسךأؗ٦و♶㹀ر٦ة$POHVSBCJMJUZ
3'2ؙٓؐسךأؗ٦و♶㹀ر٦ة$POHVSBCJMJUZ갪湡せ
3'2ؙٓؐسךأؗ٦و♶㹀ر٦ة$POHVSBCJMJUZ侭侧
3'2ؙٓؐسךأؗ٦و♶㹀ر٦ة$POHVSBCJMJUZ鼅䫛䒭
3'2ؙٓؐسךأؗ٦و♶㹀ر٦ة$POHVSBCJMJUZٖ؝٦س侧〳㢌
أؗ٦و♶㹀ر٦ةך،فٗ٦ث$POHVSBCJMJUZ
圓鸡ⱖ⫷،فٗ٦ث$POHVSBCJMJUZ䒷欽IUUQEFWBSJFMOFUXPSLTDPN.FNCFSTJOPVFTDIFNBMFTTر٦ةך珏ⴽ嫣ח3%#.4ךذ٦ـٕ⡲䧭ׅ3BJMTז4JOHMFUBCMFJOIFSJUBODF ⽃♧ذ٦ـٕ竰䪫װ$MBTTUBCMFJOIFSJUBODF ؙٓأذ٦ـٕ竰䪫⢪גءٝفٕח㹋鄲〳腉ر٦ةך珏ⴽָ㣐ֹֻ㟓ִזְךד֮ל⢪欽〳腉JE OBNF BNPVOU QSJDF 44 44" JE OBNF BNPVOU QSJDF QSPDFTT ./$ 攦Ⳣ椚 6/$ فٖأ⟰噟"欽ך鋅琎ذ٦ـٕ ⟰噟#欽ך鋅琎ذ٦ـٕ
ٌرٕⱖ⫷،فٗ٦ثؕٓيせה⦼إحزד䭯אٖ؝٦س⡲䧭ׅ42-،ٝثػة٦ٝך&"7 &OUJUZ"UUSJCVUF7BMVFח鑩䔲ׅٖ؝٦س侧ָ㟓㣐ׅ$POHVSBCJMJUZ䒷欽IUUQEFWBSJFMOFUXPSLTDPN.FNCFSTJOPVFTDIFNBMFTTJE DPMVNO WBMVF RVPUF@JE 䊨玎 فٖأ 䫎Ⰵ勞俱 ꉟ 䫎Ⰵꆀ 䊨玎 ٖ٦ؠ٦ 鋅琎ذ٦ـٕ
4BMFTGPSDF،فٗ٦ث$POHVSBCJMJUZ䒷欽IUUQTXXXQVCMJDLFZKQCMPH@IUNM֮ײر٦ة「ֽⰅ%BUBذ٦ـٕ⡲䧭׃ծ؎ٝرحؙأ欽ذ٦ـٕזוךًةر٦ةذ٦ـٕ欽䠐ׅ4BMFTGPSDFך⢽
GSJFOEGFFE،فٗ٦ث$POHVSBCJMJUZ䒷欽IUUQEFWBSJFMOFUXPSLTDPN.FNCFSTJOPVFTDIFNBMFTT4BMFTGPSDF،فٗ٦ثה⡂גְָծ%BUBذ٦ـٕ欽䠐ׅ➿ח+40/װ9.-Ⰵؕٓي欽䠐ׅءٔ،ٓ؎ؤ٥رءٔ،ٓ؎ؤך؝أزַַָ
3'2ؙٓؐسך،فٗ٦ث$POHVSBCJMJUZGSJFOEGFFE،فٗ٦ث&MBTUJD4FBSDI鼅䫛GSJFOEGFFE،فٗ٦ثך؎ٝرحؙأذ٦ـٕכ⡲䧭ׇ׆ծ嗚稊כ&MBTUJD4FBSDIח⟣ׇ✮㹀ر٦ةכ+40/#㘗ךؕٓيח⥂㶷ؿؓ٦يװⰅ⸂ر٦ةך邌爙כNP[JMMBTFSWJDFTSFBDUKTPOTDIFNBGPSNⵃ欽+40/㘗ך㜥さכر٦ة刿倜ָ遤ְחְֻהְֲرًٔحزָָ֮ծءأذيך銲⟝♳ر٦ةך㢌刿כ钠גֶ׆ծ㢌刿儗כׅץגٖ؝٦س倜鋉鷄⸇ׅ搀鋔דֹ
3'2ؙٓؐسך،فٗ٦ث$POHVSBCJMJUZJE GPSN@EBUB\QSJDF OBNF./$^鋅琎ذ٦ـٕJE GPSNBU\UZQFPCKFDU SFRVJSFE<QSJDF> QSPQFSUJFT\QSJDF\UZQFJOUFHFS UJUMF顤欽^^ؿؓ٦وحزذ٦ـٕNP[JMMBTFSWJDFTSFBDUKTPOTDIFNBGPSN⢪ذ٦ـٕ圓鸡
IUUQTNP[JMMBTFSWJDFTHJUIVCJPSFBDUKTPOTDIFNBGPSN$POHVSBCJMJUZSFBDUKTPOTDIFNBGPSN
؎ٝؿٓ鏣鎘
%9䱸竲ח㼎䘔〳腉ז鏣鎘؎ٝؿٓ鏣鎘➙䖓ծ%9䱸竲 %JSFDU$POOFDUח㼎䘔〳腉ז鏣鎘ח׃גֶֻ㣐䩛岀➂ָ《䒷⯓חזהؔٝفٖ㼎䘔実ךꥷח%9䱸竲ד铡䖤ׅ㜥さ罋ִծ"84ך؎ٝؿָٓח㼎䘔〳腉ז朐䡾חזגְֿהָ実$%/⢪זְ$%/כ؎ٝة٦طحز穗歋ׅ⢪׆ח4ַ湫䱸ꂁ⥋ׅ4פך،ؙإأ71$ؒٝسه؎ٝز欽ְֿהד1SJWBUF*1ד،ؙإأדֹ钠鏾㛇湍חאְגכ*%BB4⢪ֲה؎ٝة٦طحزח⳿ֿהחזָծ*%BB4⢪זְ㜥さך䊨侧罋ִծ%9䱸竲実⦐ⴽ㼎䘔ׅ
##4BB4ךֶ׃ׁ
ءأذيךㅷ颵ָ✲噟ך䧭ꞿח湫穠׃גְ##4BB4ךֶ׃ׁفٗتؙزך⣣⦼ד 渣䖤ؽآطأٌرٕفٗتؙز٥ءأذي荈⡤ך⣣⦼ד 渣䖤ؽآطأٌرٕד֮ծ涪׃穠卓ָت؎ؙٖزח곁㹏פך⣣⦼䲿⣘חזծ✲噟ך䧭ꞿחאזָׅ
ؒٝآص،ח実腉⸂ָ䌴䎢ְ##4BB4ךֶ׃ׁؒٝآص،ַך䠐鋅ָ実岀➂ָ곁㹏חזַזさ椚涸ח㼪Ⰵךⴻ倖ָ遤ךؒٝآص،ַךٗإٓؕז䠐鋅ָ実##4BB4涪荈⡤ָꨇ僒䏝ָ넝ְٌرؚٔٝ⸂װ鏣鎘⸂ָ実⟰噟ך㢳圫ז銲劄ח㼎䘔׃זָ⥂㸚؝أزך⡚ְءأذي圓眠ٌׅرؚٔٝ⸂ה鏣鎘⸂ָ実
63-IUUQTXXXXBOUFEMZDPNQSPKFDUT㼰׃ד莆ָ֮לֶ蘠׃ת׃׳ֲ