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
940
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
日本最大級のファッションDBを支える裏側/how to manage the complex web service
dots. CONFERENCE SPRING 2016の「複雑高機能なwebサービスを支える技術」での発表内容です。
Masayuki Imamura
February 28, 2016
More Decks by Masayuki Imamura
See All by Masayuki Imamura
バイセルにおけるAI活用の取り組みについて紹介します/Generative AI at BuySell Technologies
kyuns
2
1.8k
経営視点から捉えた開発生産性 / Development productivity from a management perspective
kyuns
12
11k
Qiita:Teamをハックして成果をあげるための情報共有方法/Qiita:Team
kyuns
6
3.9k
3年連続ベストアプリ受賞のプロダクトを支える裏側/The way to Achieve The Best App 3 years in a row
kyuns
1
1.8k
機械学習とデータ分析を支えるマルチクラウドなアーキテクチャの紹介/Multi Cloud Architecture Supporting Machine Learning and Data Analysis
kyuns
4
10k
iQONを支えるクローラー/iQON Crawler
kyuns
12
4.3k
iQONを支えるデータ分析基盤/iqon-bigquery
kyuns
3
11k
iQON Tools
kyuns
1
3.9k
プッシュ通知大戦争/effective push notification by iQON
kyuns
28
8.6k
Other Decks in Programming
See All in Programming
What We Talk About When We Talk About XP
m_seki
2
120
高専キャリア LT 発表内容
crysta1221
6
5.4k
関東Kaggler会_NVIDIA_Nemotron_コンペ_振り返り
rick_ds
0
800
DynamoDBの基礎を振り返りながらベクトル検索機能を理解する
musan
3
260
PyO3 で既存 Python 評価器を Rust core 化する ー wasm-bindgen でブラウザにも配るための設計
kdash
1
240
Deep dive into the select statement (GopherCon UK)
jespino
0
170
高専、大学編入、そして未踏へ〜プロダクト開発とキャリアの歩み - Technical College, University Transfer, and On to “Mitou” / My Journey in Product Development and Career
pkmiya
0
130
[PyCon KR 2026] More Variants, More Diversity for AI Accelerators
achimnol
0
130
T3DD26: From RAGs to Riches
martinhelmich
0
130
in-process GraphQL のすすめ #ginzajs
izumin5210
4
1.5k
Flow は今どうなっているか
mizdra
PRO
0
840
AIを上手に使っていこうとしたら越境せざるを得なくなった話 〜実践1年で見えた境界を越えなければならない理由と進め方〜 / Crossing borders with AI
tomoyakitaura
2
940
Featured
See All Featured
Claude Code のすすめ
schroneko
67
230k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
840
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.1k
Are puppies a ranking factor?
jonoalderson
2
3.9k
sira's awesome portfolio website redesign presentation
elsirapls
0
390
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
Leo the Paperboy
mayatellez
8
2.2k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
260
It's Worth the Effort
3n
188
29k
Designing for Performance
lara
611
70k
Mind Mapping
helmedeiros
PRO
1
340
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 ઈࢍ৽نࣄۀ։ൃதʂ