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
日本最大級のファッションDBを支える裏側/how to manage the complex ...
Search
Masayuki Imamura
February 28, 2016
Programming
4
870
日本最大級のファッションDBを支える裏側/how to manage the complex web service
dots. CONFERENCE SPRING 2016の「複雑高機能なwebサービスを支える技術」での発表内容です。
Masayuki Imamura
February 28, 2016
Tweet
Share
More Decks by Masayuki Imamura
See All by Masayuki Imamura
バイセルにおけるAI活用の取り組みについて紹介します/Generative AI at BuySell Technologies
kyuns
2
840
経営視点から捉えた開発生産性 / Development productivity from a management perspective
kyuns
12
10k
Qiita:Teamをハックして成果をあげるための情報共有方法/Qiita:Team
kyuns
6
3.5k
3年連続ベストアプリ受賞のプロダクトを支える裏側/The way to Achieve The Best App 3 years in a row
kyuns
1
1.7k
機械学習とデータ分析を支えるマルチクラウドなアーキテクチャの紹介/Multi Cloud Architecture Supporting Machine Learning and Data Analysis
kyuns
4
9.8k
iQONを支えるクローラー/iQON Crawler
kyuns
12
4.2k
iQONを支えるデータ分析基盤/iqon-bigquery
kyuns
3
10k
iQON Tools
kyuns
1
3.9k
プッシュ通知大戦争/effective push notification by iQON
kyuns
28
8.4k
Other Decks in Programming
See All in Programming
A2A プロトコルを試してみる
azukiazusa1
2
1.3k
Is Xcode slowly dying out in 2025?
uetyo
1
260
iOS 26にアップデートすると実機でのHot Reloadができない?
umigishiaoi
0
130
レベル1の開発生産性向上に取り組む − 日々の作業の効率化・自動化を通じた改善活動
kesoji
0
120
PicoRuby on Rails
makicamel
2
130
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
51
33k
Webの外へ飛び出せ NativePHPが切り拓くPHPの未来
takuyakatsusa
2
540
PHP 8.4の新機能「プロパティフック」から学ぶオブジェクト指向設計とリスコフの置換原則
kentaroutakeda
2
760
ニーリーにおけるプロダクトエンジニア
nealle
0
790
Modern Angular with Signals and Signal Store:New Rules for Your Architecture @enterJS Advanced Angular Day 2025
manfredsteyer
PRO
0
210
イベントストーミング図からコードへの変換手順 / Procedure for Converting Event Storming Diagrams to Code
nrslib
2
650
たった 1 枚の PHP ファイルで実装する MCP サーバ / MCP Server with Vanilla PHP
okashoi
1
230
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Building Adaptive Systems
keathley
43
2.7k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
A Modern Web Designer's Workflow
chriscoyier
694
190k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Visualization
eitanlees
146
16k
Building an army of robots
kneath
306
45k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
Speed Design
sergeychernyshev
32
1k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Transcript
HOW TO MANAGE THE COMPLEX WEBSERVICE ຊ࠷େڃͷϑΝογϣϯ%#Λࢧ͑Δཪଆ VASILY,Inc. @kyuns dots.
CONFERENCE SPRING 2016
ࠓଜխ @kyuns / Ωϡϯ VASILY,Inc औకCTO / Co-Founder 2006Yahoo!JAPANʹೖࣾɺYahoo!FASHION XBRANDͳͲͷαʔϏεͷ্ཱͪ͛ͷ։ൃΛ୲ɻ
ϦίϝϯσʔγϣϯͷಛڐͳͲΛऔಘޙɺ 2009ʹಠཱɺVASILYΛۀɻऔకCTOʹब
ઃཱ: 200811݄ ॴࡏ:౦ژौ୩۠ܙൺण1-18-14 ܙൺणϑΝʔετεΫΤΞ 9F ैۀһ: 50ਓ (ΤϯδχΞ20໊/ΠϯλʔϯؚΉ) ࢿຊۚ: 1ԯ
දऔక: ۚࢁ ༟थ औక:ࠓଜ խ / ઍ༿ େี גओ: ҏ౻ςΫϊϩδʔϕϯνϟʔζ / KDDIגࣜձࣾ άϩʔϏεɾΩϟϐλϧɾύʔτφʔζ / GMOϕϯνϟʔύʔτφʔζ /גࣜձࣾߨஊࣾ
.BU[͞Μٕज़ސ
άϩʔεϋοΫຊͰ·ͨ͠
ຊதͷϑΝογϣϯ ECαΠτͷσʔλΛܝࡌ ຊ࠷େڃͷঁͷࢠͷͨΊͷ ϑΝογϣϯΞϓϦʮΞΠίϯʯ ձһ 250ສਓ Google Play ϕετɾΦϒ 2015
ࣄۀΛࢧ͑Δຊப J20/ 1$41J04"OESPJE &$αΠτΫϩʔϥʔ "1* ࠂ৴ࣄۀ
"HFOEB ຊ࠷େڃͷϑΝογϣϯ%#Λࢧ͑Δཪଆ ෳࡶͳ8FCαʔϏεΛ։ൃ͢Δ࣌ʹ ཱͭઃܭख๏ΛͬͯΒ͏
w "1*Λࢧ͑Δٕज़ w ΫϩʔϥʔΛࢧ͑Δٕज़ w σʔλੳΛࢧ͑Δٕज़ ͭͷࣄྫ͔ΒֶͿϙΠϯτ
ͭͷࣄྫ͔ΒֶͿϙΠϯτ w "1*Λࢧ͑Δٕज़ w ΫϩʔϥʔΛࢧ͑Δٕज़ w σʔλੳΛࢧ͑Δٕज़
"1*Λࢧ͑Δٕज़
J20/ͷ"1* ΞΠςϜ ίʔσΟωʔτ γϣοϓ Ϣʔβʔ ϒϥϯυ ͋ΒΏΔϑΝογϣϯใΛ֨ೲͨ͠"1* 8FCJ04"OESPJE"1*ఏڙઌ͔Βར༻͞Ε͍ͯΔ શͯͷϩδοΫ͕٧·ͬͨ.POPMJUIJDͳ"1* Ҏ্ͷ"1*ΤϯυϙΠϯτ͕͋ΔͨΊɺ
ී௨ʹ࡞ΔͱΧΦεʹͳΔ
ڊେ8FCΞϓϦέʔγϣϯΛࢧ͑ΔϙΠϯτ w ΞϓϦέʔγϣϯͷઃܭ w .JDSP4FSWJDFT w %PDLFS
ΞϓϦέʔγϣϯͷઃܭ
3BJMTΞϓϦέʔγϣϯઃܭͷίπ w 3BJMTΛӡ༻͍ͯ͠Δͱ.PEFM͕ංେԽ͕ͪ͠ʹͳΔ w ղܾࡦͱͯ͠$POUSPMMFSͱ.PEFMͷؒʹ4FSWJDFΛಋೖ ˠ%PNBJO%SJWFO%FTJHO 3BJMT w .PEFMͷத͔Βผͷ.PEFMΛݺͼग़͍ͯ͠ΔͷͳͲΛ
ආ͚Δ IUUQRJJUBDPNKPPPFFJUFNTGEDEEGCGFC
4FSWJDFͷҐஔ͚ͮ
MicroServices
MicroServices w ڊେͳ"1*͔ΒαʔϏεͱͯ͠Γग़ͤΔ෦Λ3&45 "1*ͱͯ͠Γ͢ w ͦΕͧΕͷػೳʹ͋ͬͨ04ݴޠΛબͿ͜ͱ͕Ͱ͖Δ w શͯΛ.JDSP4FSWJDFԽ͢Ε͍͍ͱ͍͏Θ͚Ͱͳ͍ ύϑΥʔϚϯεͱͷτϨʔυΦϑ దͳίϯϙʔωϯτͷΈΓ͖͢
ྫ: ը૾͔ΒͷΞΠςϜఆAPI w Ϋϩʔϥʔ͔Βར༻͍ͯ͠Δ(PPHMFͷ$MPVE 7JTJPO"1*ϥΠΫͳࣗ࡞"1* w ϕʔεͱͯ͠1ZUIPOΛ༻͍͍ͯΔͷͰ6CVOUV 1ZUIPO 'MBTLͰ3&45"1*ͱͯ͠ߏங
%PDLFSͷ׆༻
ࠂ৴αʔόʔͰͷ%PDLFSࣄྫ EC2 SVCZ OHJOY NBDLFSFM qVFOUE AWS ElasticBeanstalk + Docker
Auto Scaling ΠϯελϯεͷதͰ֤%PDLFSίϯςφΛMJOL
&MBTUJD#FBOTUBML %PDLFS ϦΫΤετ࣌ؒଳʹԠͯ͡ΠϯελϯεΛ૿ݮͰ͖Δ Φʔτεέʔϧ ֤ϛυϧΤΞ͕%PDLFSίϯςφʹͳ͍ͬͯΔͨΊ ϛυϧΣΞͷݸผΞοϓσʔτָ͕ SVCZ OHJOY NBDLFSFM
qVFOUE SVCZ OHJOY NBDLFSFM qVFOUE SVCZͷίϯςφͷΈߋ৽ %PDLFSͷಛੑΛ׆͔͢
w "1*Λࢧ͑Δٕज़ w ΫϩʔϥʔΛࢧ͑Δٕज़ w σʔλੳΛࢧ͑Δٕज़ ͭͷࣄྫ͔ΒֶͿϙΠϯτ
ΫϩʔϥʔΛࢧ͑Δٕज़
Ϋϩʔϥʔ αΠτҎ্ɺສҎ্ͷΞΠςϜΛ ຖΫϩʔϧ Ձ֨ɺࡏݿใͳͲΛऔಘ
ΫϩʔϥʔΛࢧ͑ΔϙΠϯτ w పఈతͳࣗಈԽ ΧςΰϦఆɺϒϥϯυఆɺը૾ఆɺը૾Γൈ͖ɺλ ά͚ɺஈมߋݕɺ͋ΒΏΔ෦Λࣗಈతʹఆॲཧ͢ ΔΈɺࣗಈԽΛపఈ w పఈతͳޮԽ ΤϯδχΞͰͳͯ͘ΫϩʔϥʔΛ࡞ΕΔ(6*πʔϧΛ
ࣗಈԽେྔͷϑΝογϣϯΞΠςϜྨ w ΧςΰϦͷఆλά͚ΛࣗಈԽ ສޠͷϑΝογϣϯࣙॻ ػցֶश w ࠷ۙͰ$IBJOFSΛ༻͍ͯਂֶश ʢσΟʔϓϥʔχϯάʣΛߦ͍ը૾͔ ΒΧςΰϦఆߦ͍ͬͯΔ IUUQXXXTMJEFTIBSFOFU5BLFIJSP4IJP[BLJJRPO
ϫϯϐʔε Ֆฑ τοϓε
σΟʔϓϥʔχϯάͰΧςΰϦྨ IUUQUFDIWBTJMZKQFOUSZGBTIJPOEFFQMFBSOJOH
Ϋϩʔϥʔ࡞πʔϧ w Ϋϩʔϥʔ࡞ΛޮԽ͢Δࣾπʔϧ w ߲நग़ͷͨΊͷ91"5) จࣈྻૢ࡞ ਖ਼نදݱΛೖྗՄೳ w ೖྗσʔλͷϓϨϏϡʔػೳࡌ w
͍͠αΠτSVCZͷίʔυϚʔδՄೳ
w "1*Λࢧ͑Δٕज़ w ΫϩʔϥʔΛࢧ͑Δٕज़ w σʔλੳΛࢧ͑Δٕज़ ͭͷࣄྫ͔ΒֶͿϙΠϯτ
σʔλੳΛࢧ͑Δٕज़
ϋΠϒϦουΫϥυ ϝΠϯͷαʔϏεఏڙΠϯϑϥ σʔλੳج൫ͱͯ͠ͷΠϯϑϥ
BigQuery RDS Log Aggregater GoogleDataProc MongoDB GoogleDrive (SpreadSheet) API Server
Web Server fluentd fluentd fluentd J20/ͷσʔλղੳج൫ iOS/Android Puree 1VSFFΛར༻ͯ͠ड͚औͬͨϩάશͯqVFOEܦ༝Ͱ#JH2VFSZ 1VSFFIUUQUFDIMJGFDPPLQBEDPNFOUSZ
ϩάσʔλετϨʔδ w શͯͷσʔλϩά#JH2VFSZʹอଘ IUUQUFDIWBTJMZKQFOUSZCJHRVFSZ@EBUB@QMBUGPSN
BigQuery (PPHMF͕ఏڙ͢ΔϑϧϚωʔδυσʔλੳαʔϏε ѹతʹ؆୯͍͍҆ w ΞϓϦ1$εϚϗͷߦಈϩά w Ϛελʔ%#σʔλ GSPN3%4 w
Ϋϩʔϥʔͷશϩά w ϦίϝϯυΤϯδϯͷܭࢉ݁Ռ ͋ΒΏΔϩάΛͱʹ͔͘อଘ
ؾʹͳΔྉۚ w ετϨʔδ(# w ετϦʔϛϯάΠϯαʔτ. w ΫΤϦྔ5# J20/ͷ݄ؒར༻ঢ়گ w
ੳΫΤϦྔ5# w ༻ετϨʔδྔ5# ࣌
ෳࡶͳσʔλੳ5BCMFBVͰ #JH2VFSZ3%4ϦΞϧλΠϜʹѻ͑Δ ࡉ͔͍σʔλੳ5BCMFBV%FTLUPQ ࣾͰͷσʔλڞ༗ʹ5BCMFBV4FSWFS
ෳࡶͳσʔλܭࢉ%BUBQSPDͰ (PPHMF͕ఏڙ͢Δ)BEPPQ4QBSLͷϚωʔδυαʔϏε J20/Ͱ4QBSL :"3/ Λ༻͍ͨϦίϝϯσʔγϣϯͷ ܭࢉʹར༻ ࣗલͰ)BEPPQΫϥελΛ·ͳ͍͍ͯ͘ͷͰศར σʔλιʔεͱͯ͠#JH2VFSZΛར༻Մೳ
ࣗಈԽෳࡶͳόονॲཧ"JS'MPXͰ "JSCOC͕ࣾ։ൃͨ͠όονॲཧ࣮ߦϑϨʔϜϫʔΫ ෳͷδϣϒͷґଘؔͷղܾ ϦτϥΠॲཧͳͲΛ͏·ͬͯ͘͘ΕΔ IUUQTHJUIVCDPNBJSCOCBJSqPX
·ͱΊ w "1*Λࢧ͑Δٕज़ %%%.JDSP4FSWJDFT%PDLFS w ΫϩʔϥʔΛࢧ͑Δٕज़ ࣗಈԽޮԽ w σʔλੳΛࢧ͑Δٕज़ ($1#JH2VFSZ5BCMFBV%BUBQSPD
8F`SF)JSJOH 7"4*-:ςΫϊϩδʔͰ ϑΝογϣϯͷੈքΛม͑Α͏ͱ͍ͯ͠ΔձࣾͰ͢ νϟϨϯδͯ͠Έ͍ͨਓΛ ͓͓ͪͯ͠Γ·͢ IUUQWBTJMZKQ ઈࢍ৽نࣄۀ։ൃதʂ