Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Microservices Architectureに取り組んでみえたこと
Search
yoshiyoshifujii
June 24, 2017
Design
4.4k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Microservices Architectureに取り組んでみえたこと
KANJAVA PARTY 2017
https://kanjava.connpass.com/event/56152/
yoshiyoshifujii
June 24, 2017
More Decks by yoshiyoshifujii
See All by yoshiyoshifujii
技術的負債に立ち向かう、 ひとりから始めるチームづくり / From One to Team: Building Momentum Against Technical Debt
yoshiyoshifujii
1
310
DMMを支える決済基盤の技術的負債にどう立ち向かうか / Addressing Technical Debt in Payment Infrastructure
yoshiyoshifujii
5
3.1k
技術的負債と戦略的に戦わざるを得ない場合のオブザーバビリティ活用術 / Leveraging Observability When Strategically Dealing with Technical Debt
yoshiyoshifujii
1
360
プロダクトオーナーの視座から見た信頼性とオブザーバビリティ / Reliability and Observability from the Perspective of a Product Owner
yoshiyoshifujii
2
2k
プロダクトオーナーがFour Keys + 信頼性に思うところ / Product Owners Think of Four Keys + Reliability
yoshiyoshifujii
0
690
Recapping Chatwork Scala Journey - ScalaMatsuri2023
yoshiyoshifujii
0
3.1k
ここ数ヶ月でAkkaを勉強した方法について紹介 / I have studied Akka in the past few months
yoshiyoshifujii
1
350
コードをどまんなかに据えたモデリング-Scala版 / Modeling with code in the middle-Scala version
yoshiyoshifujii
0
180
Chatworkのドメインをモデリングした / Modeling Chatwork domain
yoshiyoshifujii
0
990
Other Decks in Design
See All in Design
Of Ordination and Rebellion exploration sketches
rezaline
0
220
Look Dev Meetup #50
baku89
1
500
Basket_of_love.pdf
terencebasart
0
310
Kouseki | CREATIVE CLASS成果物
yuri9911
0
220
トランジションの冒険 自分と世界を変える冒険の書 / Transition Adventure
dmattsun
2
490
柔軟性のあるUIで、多くの環境でアプリを活躍させる/iOSDC26
noppefoxwolf
0
640
タイル紹介サイト「タイルだもんで」
calpin
0
190
富山デザイン勉強会_デザイン思考.pdf
keita_yoshikawa
3
170
Rethinking IFUs: What Board Game Rulebooks Contribute to IFU Usability
deadlinepoet
0
370
開閉UIのアニメーション設計
hiro0218
2
1k
クリエイティブディレクター 両角 高寛 の自己紹介
morogyro
0
170
【CEDEC2026】アートとゲームデザインをつなぐVFX設計『GRANBLUE FANTASY: Relink - Endless Ragnarok』における表現と可読性の両立
cygames
PRO
1
1.3k
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
142
7.7k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
410
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
540
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
390
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Product Roadmaps are Hard
iamctodd
55
13k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
330
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
240
How GitHub (no longer) Works
holman
316
150k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
410
Transcript
.JDSPTFSWJDFT"SDIJUFDUVSFʹ औΓΜͰΈ͑ͨ͜ͱ 4BU !ZPTIJZPTIJGVKJJ
ؔδϟόͷΈͳ͞Μ͜Μʹͪ w:PTIJUBLB'VKJJ !ZPTIJZPTIJGVKJJ w4PGUXBSF&OHJOFFS w4DBMB+BWB1ZUIPO 5ZQFTDSJQU w4DBMBؔ4VNNJU4UB⒎
None
None
None
ି͠ग़͠Ͱ͖Δ෦ w ηϛφʔϗʔϧ ໊ w ձٞࣨ ໊͔Β໊ w
ΧϑΣεϖʔε ໊ w ϏΞόογϡͳͲͷ࠙ձ։࠵ՄೳͰ͢ʂ
None
None
None
ຊ
wࠓ͓͢Δ͜ͱ wࢲ͕࠷ۙɺ.JDSPTFSWJDFTʹऔΓΜͰ͔ͬͨ͜ͱ w.JDSPTFSWJDFT"SDIJUFDUVSF w%%% w"HJMF4DSVN%FW0QT w41"3&45GVM4FSWFSMFTT"SDIJUFDUVSF w͠ͳ͍͜ͱ wͦΕͧΕͷਂ͍આ໌
.JDSPTFSWJDFTΛ ͓͞Β͍͓͖ͯ͠·͠ΐ͏
.JDSPTFSWJDFTͭͷಛ αʔϏεΛ௨ͨ͡ίϯϙʔωϯ τԽ ϏδωεߦೳྗʹؔΘΓ ৫͕ཧ͞ΕΔ͜ͱ ϓϩδΣΫτͰͳ͘ϓϩμΫ τ
ݡ͍ TNBSU ΤϯυϙΠϯτͱ ࢄ౷࣏ ࢄσʔλཧ ΠϯϑϥࣗಈԽ োͷͨΊͷઃܭ ਐԽతͳઃܭ ླ༤հ$MPVE'JSTU"SDIJUFDUVSFઃܭΨΠυʢܦ#1/FYU*$5બॻʣ ,JOEMFͷҐஔ/P ܦ#1,JOEMF൛
ෳαʔϏεͰߏ w ͭͷΞϓϦέʔγϣϯΛΑΓখ͞ ͳ୯ҐͷʮαʔϏεʯͷΈ߹Θ ͤͰߏ͢Δख๏ w ͦΕͧΕͷαʔϏεݸผͷϓϩ ηεͰಈ࡞ w "1*Λ௨ͯ͡)551ͳͲͷඪ४తͳ
ϓϩτίϧͰ࿈ܞ ླ༤հ$MPVE'JSTU"SDIJUFDUVSFઃܭΨΠυʢܦ#1/FYU*$5બॻʣ ,JOEMFͷҐஔਤ ܦ#1,JOEMF൛
αʔϏε͝ͱͷϥΠϑαΠΫϧ wϞϊϦγοΫ Ұຕؠ ͩͱӨڹ ௐࠪʹ͕͔͔࣌ؒΔ wӨڹൣғαʔϏε෦ʹด͡ Δ w࣮ࡍɺͦΜͳ୯७Ͱͳ͍ wαʔϏεͷׂ͕ॏཁͰɺ͍͔ ʹӨڹൣғΛαʔϏε෦ʹཹ
ΊΔ͔ ླ༤հ$MPVE'JSTU"SDIJUFDUVSFઃܭΨΠυʢܦ#1/FYU*$5બॻʣ ,JOEMFͷҐஔਤ ܦ#1,JOEMF൛
ૄ݁߹ͳαʔϏε࿈ܞ wૄ݁߹ͷදʮΩϡʔʯΛ ༻͍ͨ࿈ܞ wαʔϏεಉ͕࢜࿈ܞͤͣ ʹࡁΉ wαʔϏεͷμϯλΠϜΛ ؾʹ͠ͳͯ͘ྑ͍ w࿈ܞઌαʔϏεͷੑೳྼԽ ླ༤հ$MPVE'JSTU"SDIJUFDUVSFઃܭΨΠυʢܦ#1/FYU*$5બॻʣ
,JOEMFͷҐஔਤ ܦ#1,JOEMF൛
σʔλϕʔεαʔϏε͝ͱʹ wैདྷγεςϜɺͭͷΞ ϓϦʹͭͷσʔλϕʔε wσʔλϕʔεڞ༗ੑೳ ͕ʹ wࢄσʔλϕʔε߹ ੑ͕ʹ ླ༤հ$MPVE'JSTU"SDIJUFDUVSFઃܭΨΠυʢܦ#1/FYU*$5બॻʣ ,JOEMFͷҐஔਤ
ܦ#1,JOEMF൛
αʔϏεߏཧ wαʔόʔߏஙखଓ͖Λ ίʔυԽ w%PDLFS wΫϥυಛ༗ͷ͠͞ ླ༤հ$MPVE'JSTU"SDIJUFDUVSFઃܭΨΠυʢܦ#1/FYU*$5બॻʣ ,JOEMFͷҐஔਤ ܦ#1,JOEMF൛
ࠓͷ͋͐͡Μͩ wαʔϏεͷίϯϙʔωϯτԽ w৫ӡӦ wٕज़తͳબ
ࠓͷ͋͐͡Μͩ wαʔϏεͷίϯϙʔωϯτԽ w৫ӡӦ wٕज़తͳબ
υϝΠϯۦಈઃܭ wୈ෦ઓུతઃܭ ୈষϞσϧͷ߹ੑ Λҡ࣋͢Δ wڥք͚ͮΒΕͨίϯςΩ ετΛѲ͢Δ wγεςϜ͕ѻ͏υϝΠϯ Λཧղ͠దʹڥքΛઃ ܭ͢Δ &SJD&WBOTυϝΠϯۦಈઃܭʢᠳӭࣾʣ
1ਤ ᠳӭࣾ
υϝΠϯۦಈઃܭ w࠷ॳ͔ͬΒᘳΛࢦ͞ͳ͍ wίΞυϝΠϯʹண͢Δ w͋ͳͨͷγεςϜͷίΞͲ͜Ͱ͔͢ʁ
ϢϏΩλεݴޠ w%PNBJO&YQBSUͱͷର wϞϊɾίτΛൈ͖ग़͢ wϢϏΩλεݴޠͱͯ͠ه͢Δ
ܧଓతͳ౷߹ wҰͰऴΘΒͳ͍ wίʔυͷ'#Λ׆͔͢ wސ٬ͷ'#Λ׆͔͢
ίϯςΩετϚοϓΛඳ͘ wγεςϜʹ͍ͭͯίϛϡχέʔγϣϯ͢Δͱ͖ʹ ඞͣͦʹஔ͍ͯ֬ೝ͢Δ wίϯςΩετؒͷґଘੑଟॏΛ໌֬ʹ͢Δ
ґଘͷύλʔϯ wڞ༗Χʔωϧ wސ٬ڞ༗ऀͷ։ൃνʔϜ w͍ΘΏΔQVCTVC w͍ͬΆ͏͕ఆ͍ٛͯͬ͠Ά͏͕ड͚ͱΔ wૄ݁߹Ͱྑ͍
ґଘͷύλʔϯ wҰํతͰͳ͘ཁΛग़͍͍ͯ͠ wίϯςΩετؒͰѻ͏ݴޠ͕ҟͳͬͨͱͯ͠ɺ ίϛϡχέʔγϣϯͷϑΥʔϚοτΛผ్ఆٛ͢Δ w$+BWB w1ZUIPO4DBMB wϑΥʔϚοτΛ4XBHHFSͰݻఆ
ґଘͷύλʔϯ wॱԠऀ wެ։ϗεταʔϏε wผʑͷಓ wίϯςΩετͷதͰผͷϢϏΩλεݴޠΛఆٛͯ͠ྑ͍ wϞσϧߏಉ͡Ͱͳͯ͘ྑ͍ w͏ͪͷίϯςΩετͰ͜͏ݺΜͰΔ͚ͲͶɻ ͦͬͪͰԿͯݺΜͰΔͷ͔ΒΜ͚Ͳ
ґଘͷύλʔϯ wഊࢭ wϨΨγʔͳϞσϧΛͲ͏ͯ͠͏ͱ͖ wΠέͯͳ໊͍শΛϢϏΩλεݴޠʹม͢Δ wچདྷόʔδϣϯΛ࣋ͬͯΔίϯςΩετͰ༗ޮ
ࠓͷ͋͐͡Μͩ wαʔϏεͷίϯϙʔωϯτԽ w৫ӡӦ wٕज़తͳબ
"HJMF wϓϩδΣΫτͰߟ͑ͣϓϩμΫτͰߟ͑Δ wઓུΛऔΔ wਐԽΛલఏͱͨ͠࠷దԽ wʮ͍·͜ΕͰྑ͍ʯͬͱ͍ͬͨஅ
εΫϥϜ wΧϯόϯͱͷ͔͚͋Θͤ wνʔϜຖͷਐḿΛݟ͑Δ Խ w/FYVTΨΠυ wେنεΫϥϜ։ൃͷ֎ ࠎ֨
νʔϜͷͭ͘Γ͔ͨ wίϯςΩετϚοϓʹै͏ wίϯςΩετͷཻόϥόϥ wνʔϜϏϧσΟϯάʹɺ.BOBHFNFOUͷ πʔϧ͕͑Δ
None
None
None
νʔϜʹΑͬͯ߹͍ʹ͕ࠩͰΔ wνʔϜΛൺֱͯ͠จ۟ΛݴΘͳ͍ wѻ͏ίϯςΩετ͕ҧ͏ͷͰҟͳͬͯવ wνʔϜੜ w৺ཧత҆શੑɺͪΐͬͱͨ͜͠ͱͰࣦͳΘΕΔ
%FW0QT wνʔϜͷ͕伴 w͍͖ͳΓͰ͖ͳ͍ w$%$*ڥΛ͑Δ w+FOLJOT wDPODPVSTFDJ
%FW0QT wϒϥϯνӡ༻νʔϜʹͤΔ wNBTUFSʹQVTI㱺νʔϜςετڥͷߏங wUBHΛΔ㱺νʔϜؒ݁߹ςετڥͷߏங wνʔϜؒ݁߹ςετڥͰͷςετ%POF㱺 1SPEVDUJPOڥߏங
%FW0QT w7BMVF4USFBN.BQQJOH wՁΛಧ͚Δ·Ͱͷఔ wৗʹϑϩʔΛચ࿅͢Δ wεϓϦϯτΛ;Γ͔͑Γચ࿅͠%FW0QTʹۙ͘
$POXBZͷ๏ଇ wγεςϜͷߏɺͦͷγεςϜΛઃܭ͢Δ৫ͷߏʹ ࣅΔ wνʔϜͷϝϯόʔ͕ߟ͑ͯઃܭ͢ΔΜ͔ͩΒͦΓΌͦʔͩ wٯʹڧ੍͠ͳ͍ੈք͕େࣄ w֎͔ΒઃܭΛڧཁ͢Δͱɺ৫͕มΘΔ w͍͍໘ѱ͍໘
ࠓͷ͋͐͡Μͩ wαʔϏεͷίϯϙʔωϯτԽ w৫ӡӦ wٕज़తͳબ
41" w4JOHMF1BHF"QQMJDBUJPO w.JDSPTFSWJDFTͰߏ͞ΕΔγεςϜͷϑϩϯτΤϯυ ʹ࠷ద w41"ͷϞδϡʔϧɺίϯςΩετΛԣஅͯͭ͠ʹͳΔ w༷ʑͳίϯςΩετ͕ࠞͬͨͭ͡ͷϞδϡʔϧ wNFSHFͱDPOqJDUආ͚ΒΕͳ͍
3&45GVM wݪଇ౿ऻ͢Δ͕ɺݫີʹ͠ͳ͍ w4XBHHFSͰ"1*Λެ։ wνʔϜؒͷձɺ4XBHHFSΛ༻͍Δ
4FSWFSMFTT"SDIJUFDUVSF w4DBMB.BUTVSJ w4FSWFSMFTT "SDIJUFDUVSFΛ 4DBMBͰͬͯΈͨ Λ͠·ͨ͠
Amazon API Gateway client AWS Lambda Amazon S3 Amazon DynamoDB
Amazon Kinesis AWS Lambda AWS Lambda Amazon Elasticsearch Service Context + Token Principal + Policy Policy is cached Denied 403 Allowed Auth function Consumers function System diagrams
4FSWFSMFTT"SDIJUFDUVSF w͍Ͳ͜ΖΛબͿ wίϯςΩετΛ·Δ͝ͱ4FSWFSMFTTʹ͢Δ͜ͱԽ w3%#ͷ߹ɺDPOOFDUJPO͕ރׇ w71$ىಈʹͳΓɺ&/* &MBTUJD/FUXPSL *OUFSGBDF ͷ࡞ʹඵ
4FSWFSMFTT"SDIJUFDUVSF w%%%ͱͷ૬ੑ͍͍ w4DBMBͱͷ૬ੑ͍͍ wTCUͷNVMUJQSPKFDUΛ׆༻ͯ͠KBSͷαΠζΛඞ ཁ࠷খݶʹ
4FSWFSMFTT"SDIJUFDUVSF wϨΠϠʔͷґଘϞσϧ w4FSWFSMFTT"SDIJUFDUVSF ɺWFOEPSMPDLJOલఏͷΞ ʔΩςΫνϟ w%%%ͱΈ߹Θͤͯ࡞Δ͜ͱ ͕Ͱ͖ΕɺίΞͳϏδωε ϩδοΫ͕ϩοΫΠϯ͞Εͳ ͍
"QQMJDBUJPO *OGSBTUSVDUVSF %PNBJO "1* WFOEPSMPDLJO
4FSWFSMFTT"SDIJUFDUVSF wϕετͳ8FC"QQMJDBUJPOͷߏஙύλʔϯΛମݧ ֶͯ͠Δ wଞͷ8FC"QQMJDBUJPOΛߏஙɾઃܭ͢Δࡍʹɺ ʮ͋Ε ͋ͬͪͩͱͰ͖ͯΔΑ ʯͱϑΟʔυόο ΫͰ͖Δ
%BUB4UPSBHFͷબ wϢʔεέʔεʹԠͯ͡ %BUB4UPSBHFΛબ ͢Δ w$PNNBOEͱ2VFSZͰ ҟͳΔετϨʔδબ Մೳ 4 LFZWBMVF %ZOBNP
%# ٯҾ͖͕ඞཁ Ұཡऔಘ 3%# 3FMBUJPOBMNPEFM͕ ඞཁ &MBTUJD 4FBSDI ߴͳશจݕࡧ͕ඞ ཁ
ඇಉظϝοηʔδϯάύλʔϯ wϢʔεέʔεʹԠͯ͡ϝοη ʔδϯάͷύλʔϯ͕͋Δ w,BGLBΛಋೖ͢ΔͱɺͥΜ Ϳ͜Ε͍͚ͬͯΔ͔ wͱ͍͑ɺίετ͕େʹ ͳΔ͔͠Εͳ͍ wۜͷؙͳ͍ ରൺ
αʔϏε උߟ 424 / ,JOFTJT ੍͋Γ "QBDIF ,BGLB ηϧϑϚω δϝϯτ
$234 ॻ͖ࠐΈ ಡΈࠐΈ σʔλͷ߹ੑͷҡ࣋ σʔλͷݕࡧͱநग़ͷޮԽ ΞτϛοΫͳߋ৽τϥϯβΫγϣϯ ಋग़ ߹ܭͳͲ ͷࢉग़
όʔδϣϯཧ ָ؍తฒߦੑ੍ޚ ָ؍తϩοΫ ෳͷϏϡʔͷఏڙ ॻ͖ࠐΈݖݶͷཧ ߦϨϕϧɺྻϨϕϧͷݖݶཧ $234ͱΠϕϯτιʔγϯάͷ༻๏ɺ·ͨʮ$36%ʹԿ͔Ͱʁʯ IUUQQPTUEDDVTJOHDRSTXJUIFWFOUTPVSDJOH
$234 w$PNNBOEʹɺ%PNBJOϩδοΫΛ w2VFSZɺݖݶऔಘΛߟྀ͠ɺݕࡧੑೳʹ༏Εͨऔಘϩ δοΫΛ w&WFOU4PVSDJOHͱͷ૬ੑ͕ྑ͍ wج൫ͷߏஙɺͦΕͳΓͷίετ͕͔͔Δ w෦తʹ࠾༻͠ɺঃʑʹ֦େ͍ͯ͘͠ͷ͕ྑ͍
IUUQXXXPVBS[ZDPNBGFXNZUITBCPVUDRST
ڞ௨ॲཧͷ෦Խ w.BWFOͰKBSΛڞ༗ w4DBMBͷTCUศར w+BWBͱ͔ͦͷଞͱൺֱͨ͠Θ͚͡Όͳ͍ wNVMUJQSPKFDU wґଘͷํੑΛཧ͍͢͠ wEFQFOET0O wMJCSBSZ%FQFOEFODJFT
ϦΞΫςΟϒએݴ wଈԠੑ 3FTQPOTJWF wোੑ 3FTJMJFOU wྗੑ &MBTUJD
wϝοηʔδۦಈ .FTTBHF%SJWFO
ଈԠੑ wγεςϜՄೳͳݶΓ͢Έ͔ʹԠ͢Δ w͕ૉૣ͘ݕग़͞ΕޮՌతʹରॲͰ͖Δ wਝͰ͔ͭҰ؏ͨ͠Ԡ࣌ؒΛఏڙ͢Δ͜ͱʹओ ؟Λஔ͘
োੑ wγεςϜোʹ໘ͯ͠ଈԠੑΛอͪଓ͚Δ wোੑΛ࣋ͨͳ͍γεςϜো͕ى͖Δͱଈ ԠੑΛࣦ͏ wোੑɺϨϓϦέʔγϣϯɺ෧͡ࠐΊɺִɺ ͦͯ͠ҕৡʹΑ࣮ͬͯݱ
ྗੑ wγεςϜϫʔΫϩʔυ͕มಈͯ͠ଈԠੑΛอ ͪଓ͚Δ wγεςϜͷதʹڝ߹͢Δॴத৺తͳϘτϧωο Ϋ͕ଘࡏ͠ͳ͍Α͏ʹઃܭ wγϟʔσΟϯάͨ͠ΓϨϓϦέʔγϣϯͨ͠ίϯ ϙʔωϯτؒʹೖྗΛࢄͤ͞Δ
ϝοηʔδۦಈ wϦΞΫςΟϒγεςϜඇಉظͳϝοηʔδύο γϯάʹґͬͯίϯϙʔωϯτؒͷڥքΛཱ֬ wૄ݁߹ੑɺִੑɺҐஔಁաੑΛอূ͢Δͱڞʹɺ ΤϥʔΛϝοηʔδͱͯ͠ҕৡ w໌ࣔతͳϝοηʔδύογϯάෛՙͷཧͱ ྗੑΛՄೳ
ϝοηʔδۦಈ wγεςϜʹϝοηʔδΩϡʔΛ࡞ͯ͠ࢹ͠ɺ ඞཁͳΒόοΫϓϨογϟʔΛద༻͢Δ͜ͱͰϑ ϩʔ੍ޚ͕Մೳ wϊϯϒϩοΩϯά௨৴ʹΑΓɺड৴ଆΞΫςΟ ϒ࣌ͷΈϦιʔεΛফඅͰ͖ΔͷͰγεςϜͷΦʔ όϔουΛ੍
ϊϯϒϩοΩϯά w"DUPSϞσϧΛ׆༻ͨ͠γεςϜ w"LLB IUUQBLLBJP w"LLB)551ɺ"LLB4USFBNTͰ3&45GVMͳ8FC"1*α ʔόʔͱɺඇಉظॲཧΛߏஙՄೳ w$MVTUFSɺ4IBSEJOHɺ1FSTJTUFODFݕ౼ w"LLB͍͍ͧ
·ͱΊ
·ͱΊ wαʔϏεͷίϯϙʔωϯτԽʹ͓͍ͯɺ%%%ͷڥ ք͚ͮΒΕͨίϯςΩετΛ࠾༻ͨ͠ w৫Խʹ͓͍ͯɺ4DSVNͰ͡Ίͯɺ%FW0QTΛ ࢦ͢ wٕज़બɺ༷ʑͳٕज़ͷΈ߹Θͤɻϊϋ ͨΊΔɻ