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
AWS Summit Tokyo 2015
Search
Shuhei Kimura
June 02, 2015
Technology
0
100
AWS Summit Tokyo 2015
Shuhei Kimura
June 02, 2015
Tweet
Share
More Decks by Shuhei Kimura
See All by Shuhei Kimura
Akka streamsを活用したログ集計に優しいデータフローの構築
kimurashuhei
2
5.4k
pmconf2017
kimurashuhei
0
3.6k
MDH-LT-Thursday-20170126
kimurashuhei
0
1.6k
Other Decks in Technology
See All in Technology
さくらのIaaS基盤のモニタリングとOpenTelemetry/OSC Hokkaido 2025
fujiwara3
2
270
Lambda Web Adapterについて自分なりに理解してみた
smt7174
5
140
Tech-Verse 2025 Keynote
lycorptech_jp
PRO
0
1.4k
Model Mondays S2E03: SLMs & Reasoning
nitya
0
240
怖くない!はじめてのClaude Code
shinya337
0
310
「良さそう」と「とても良い」の間には 「良さそうだがホンマか」がたくさんある / 2025.07.01 LLM品質Night
smiyawaki0820
1
450
製造業からパッケージ製品まで、あらゆる領域をカバー!生成AIを利用したテストシナリオ生成 / 20250627 Suguru Ishii
shift_evolve
PRO
1
160
解析の定理証明実践@Lean 4
dec9ue
1
210
無意味な開発生産性の議論から抜け出すための予兆検知とお金とAI
i35_267
2
3.2k
高速なプロダクト開発を実現、創業期から掲げるエンタープライズアーキテクチャ
kawauso
2
1.7k
2025-06-26_Lightning_Talk_for_Lightning_Talks
_hashimo2
2
120
Liquid Glass革新とSwiftUI/UIKit進化
fumiyasac0921
0
300
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
49
14k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Six Lessons from altMBA
skipperchong
28
3.9k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.1k
Bash Introduction
62gerente
614
210k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
810
A designer walks into a library…
pauljervisheath
207
24k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
17
950
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
730
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
Facilitating Awesome Meetings
lara
54
6.4k
Transcript
ʰϦΞϧλΠϜλʔήςΟϯάࠂͷ ৴ɾੳج൫ͷ։ൃͷཪଆʱ d"NB[PO,JOFTJTͷ׆༻d גࣜձࣾαΠόʔΤʔδΣϯτ ΞυςΫελδΦ%ZOBMZTU ଜऺฏ
1SPpMF ໊લ ଜऺฏ4IVIFJ,JNVSB IUUQTXXXGBDFCPPLDPNTIVIFJLJNVSB ॴଐ גࣜձࣾαΠόʔΤʔδΣϯτ
ΞυςΫຊ෦"E5FDI4UVEJP %ZOBMZTU։ൃऀ ܦྺ dࠂޮՌܭଌγεςϜͷ։ൃ d1$ͷ35#ࠂ৴ʹ͓͚Δ࠷దԽΤϯδϯͷઃܭ։ൃ d41͚ւ֎%41γεςϜͷઃܭ։ൃ d41͚μΠφϛοΫϦλʔήςΟϯάࠂ৴γεςϜͷઃܭ։ൃ
"HFOEBPGUIJTTFTTJPO ΦϯϥΠϯࠂͷ͍· ࡢࠓͷࠂ৴ʹٻΊΒΕΔ͜ͱԿ͔ʁ %ZOBMZTU͕ఏڙ͢ΔՁͱԿ͔ʁ %ZOBMZTUͷγεςϜߏஙʹ͓͚Δίϯηϓτ γεςϜͷେنԽʹͬͯ໘ͨ͠՝ͨͪ ϩάͷྔ͚ͩͰͳ͘ϩάͷ༰͕ଟ༷Խ͢Δ͜ͱʹରԠ͠ʹ͍͘ σʔλͷར༻༻్ͷଟ༷Խͱॊೈੑͷ Ϩϙʔτूܭج൫㱠ΞυϗοΫੳج൫ "NB[PO,JOFTJTͷ࠾༻ͱͦͷಋೖͷաఔ
ͳͥ,JOFTJTͰղܾͰ͖Δͱߟ͔͑ͨʁ ,JOFTJTΛίΞͱ͢Δσʔλ׆༻ઓུͱ࣮ݱͨ͠γεςϜʹ͍ͭͯ
4JHOJpDBOUDIBOHFTPGUIFFOWJSPONFOU GPSPOMJOFEJTQMBZBEWFSUJTJOH dΦϯϥΠϯσΟεϓϨΠࠂΛऔΓר͘ڥd
8IBU`TIBQQFOJOH ΑΓࡉ͔ͳλʔήςΟϯά͕Մೳͳ࣌ 8)ʹ͓͚Δ8IP͕ಛʹॏཁࢹ͞ΕΔ Ϣʔβͷߦಈʹجͮ͘ࠂ৴ ࠂ༧ࢉͷదͳͱ30*ޮͷ্ ࠂग़ߘͷҙࢥܾఆϦΞϧλΠϜԽdNTFDPSEJFd ͍ͭ Ͳ͜Ͱ ͩΕʹ ͲΜͳࠂΛ͍͘ΒͰग़͢PSग़͞ͳ͍
3FBM5JNF#JEEJOHऔҾͨΓલͷੈք ࠂ৴ٕज़ʑɺߴʹෳࡶʹ "SFZPVBOVTFSXIPN XFTIPVMEEFMJWFSPVSBE
8IBUJT
3FBM5JNF6TFS1FSTPOBMJ[FE%ZOBNJD"ETFSWJDF1SPWJEFS JTGVMMZQPXFSFECZ
,FZXPSET 3FBM5JNFdԿ͕ϦΞϧλΠϜͳͷ͔ d αΠτϢʔβߦಈ͕ϦΞϧλΠϜʹࠂʹө͞ΕΔ 35#͔࣌ͩΒͦ͜Ͱ͖Δ 6TFS1FSTPOBMJ[FE"EdϨίϝϯυٕज़d Ϣʔβͷझຯᅂʹ߹Θͤͯࠂ͕μΠφϛοΫʹมԽ
,FZ$PODFQUGPS%ZOBMZTU4ZTUFN"SDIJUFDUVSF γεςϜӡ༻ίετখ͘͞ dνʔϜόϥϯεΛ࠷దԽɺ0QT %FW #J[d গ͠ઌΛݟӽͨ͠εέʔϥϏϦςΟ
dεϐʔυΛ༏ઌͯ͠ҙਤతʹແࢹͯ͠ෛ࠴Λ࡞ΔέʔεͪΖΜ͋Γ·͢d ࡞Βͳͯ͘ࡁΉͷ࡞Βͳ͍ dͦͦ࡞Βͳ͚Εϝϯς͠ͳͯ͘Α͍d d"8440"ͳͷͰιϦϡʔγϣϯ୳͢ɺ͘͠૬ஊ͢Εݟ͔ͭΔd
1SPCMFNTXFGBDFE XIFOCVTJOFTTTZTUFNFYQBOET dγεςϜͷେنԽʹͬͯ໘ͨ͠՝ͨͪd
%BUBWPMVNF%BUBWBSJBUJPO B[B B[D ʜ GPSFBDITFSWFS ʜ ৴ɾܭଌϩάͷσʔλӡൖϑϩʔ ᶃqVFOUEESJWFOEBUBPQFSBUJPO
ᶄ43FETIJGUͷܧଓ$01:աఔͰςʔϒϧఆٛΛ༰қʹมߋͰ͖ͳ͍ σʔλͷྔͷྀ̋σʔλͷ࣭ͷྀ˚ USBDLJOHMPHT GPSCJHEBUBBOBMZTJT PO3FETIJGU$MVTUFS TFOENFTTBHF MPHJTVQMPBEFE DPQZXPSLFS ˞ʰ͋ͷใཉ͍͠ͳ͊ɻɻʱ˰ΧϥϜΛՃʂʁ
%J⒎FSFOURVFSZSFRVJSFNFOUGSPNTBNFEBUBTPVSDF B[B B[D ʜ GPSFBDITFSWFS BDDFTTMPHT ʜ ৴࣮ੳͷͨΊͷΫΤϦ ؤுΕ3FETIJGUͰͳΜͰͰ্ཱ͖ͨͪ͛ظʂ˰ͦΖͦΖݟ࣌͢ظʁ USBDLJOHMPHT
GPSCJHEBUBBOBMZTJT PO3FETIJGU$MVTUFS TFOENFTTBHF MPHJTVQMPBEFE DPQZXPSLFS ΞυϗοΫΫΤϦͱۀܥΫΤϦ͕ಉډ͍ͯ͠ΔͷͦΖͦΖݶք ˞8-.ͳͲͰͷΫΤϦ༏ઌௐ தؒςʔϒϧઃܭͳͲͰͲ͏ʹͳΒͳ͍ਫ਼ਆతෛ୲ ࠂओ༷͚ͷϨϙʔτूܭΫΤϦ
'SFTI%BUB PS#JH%BUB σʔλͷ͕ԿΑΓॏཁʁ աڈͷ৴࣮ͷͳͲσʔλͷྔ͕ॏཁʁ ͋Δࠂͷ৴අ༻ޮՌͲ͏͔ʁ ͋Δࠂͷࡏݿٴͼ୯ՁͲ͏͔ʁ 3FETIJGU·ͰσʔλΛӡΜͰ͔Β͕ελʔτͰͪΐͬͱ͍ ͲΜͳͷࠂΛͲΕ͚ͩ৴͔ͨ͠ʁ ͋ΔͷࠂΛ৴͍͗ͯ͢͠ͳ͍͔ʁ
)PXXFTPMWFEUIFTFQSPCMFNT CZVTJOH"NB[PO,JOFTJT d,JOFTJTͷ࠾༻ͱͦͷಋೖͷաఔd
8IZ"NB[PO,JOFTJT
$PODFQU.BUDIFT JOQVUOPVUQVU ,JOFTJT4USFBNΛىͱͨ͠ σʔλϑϩʔ͕ཁ݅ʹ߹͍ͦ͏ʁʁ 'SFTI%BUB#JH%BUB 4·ͰӡΕ3FETIJGUͱͷ*OUFHSBUJPOͰ͖Δʁʁ ͦͷͰσʔλΛऔΓग़ͯ͠ॲཧ͢Ε'SFTIσʔλͱͯ͠ѻ͑Δʁʁ ੳج൫ͱूܭج൫ͷׂͷ σʔλϑϩʔΛγϯϓϧʹͭͭ͠ੳج൫ڧԽͷͨΊͷࢪࡦΛଧ͍ͪͨ 40"ͷࢥͦͷ··ʹ৭ʑͳαʔϏεͱ࿈ܞͰ͖Δʁʁ
σʔλӡൖϑϩʔͷ֦ுdେ·͔ͳྲྀΕd B[B B[D ʜ DPOTVNFS" DPOTVNFS# DPOTVNFS$ BTQSPEVDFS DPOTVNFS% DPOTVNFS&
োੑͷߴ͍ϩάऩूύΠϓϥΠϯͱͯ͠ͷׂʂ ϩάऩूαʔό͍ΒͣɺqVFOUECVGGFSͯ͠1VU3FDPSET
σʔλӡൖϑϩʔͷ֦ுdࢼߦࡨޡͷաఔd B[B B[D ʜ DPOTVNFS" DPOTVNFS# DPOTVNFS$ BTQSPEVDFS DPOTVNFS% DPOTVNFS&
1VU3FDPSET"1*͕·ͩͳ͔ͬͨ ˰qVFOUEͰQVU͕͍͔ͭͳ͍ qVFOUEͰεϨουΛ૿͢ͷͪΐͬͱ ˰ΞϓϦέʔγϣϯαʔόͰͷ1VU3FDPSEͰҰ࣌ରॲ 1VU3FDPSET"1*͕ϦϦʔε͞ΕΔ˞"844%,GPS3VCZW͔Β ˰Ͳ͏ߟ͑ͯCVGGFSͯ͠qVFOUEͰॲཧͤ͞Δͷ͕҆ఆ͢Δʂ
σʔλӡൖϑϩʔͷ֦ுd#FGPSF"GUFSd B[B B[D ʜ USBDLJOHMPHT TFOENFTTBHF MPHJTVQMPBEFE DPQZXPSLFS B[B B[D
ʜ TVQMPBEDPOTVNFS USBDLJOHMPHT DPOUJOVFTDPQZ #FGPSF "GUFS
σʔλӡൖϑϩʔͷ֦ுd#FGPSF"GUFSd B[B B[D ʜ USBDLJOHMPHT TFOENFTTBHF MPHJTVQMPBEFE DPQZXPSLFS B[B B[D
ʜ TVQMPBEDPOTVNFS USBDLJOHMPHT DPOUJOVFTDPQZ #FGPSF "GUFS 4ͷσʔλͷӡͼํΛ,JOFTJTΛܦ༝͢Δํࣜʹมߋ ˰,JOFTJT$POTVNFSΞϓϦΛ࣮͠ɺϦΞϧλΠϜͳԿ͔Λ͢ΔڥΛ࣮ݱ ˰qVFOUEͷׂͷཧ 424 4ͱͷJOUFHSBUJPOͷղফ ,JOFTJT1SPEVDFSͱͯ͠ͷׂ
ੳج൫ͱूܭج൫ͷׂͷ B[B B[D ʜ TVQMPBEDPOTVNFS USBDLJOHMPHT 3VOOJOH4QBSLXJUI :"3/PO&.3$MVTUFS DPOUJOVFTDPQZ ఆܗϨϙʔτۀܥॲཧΛ3FETIJGU͔Β&.3
˰ੳܥΫΤϦΛੳऀ͕ετϨεͳ͛͘ΒΕΔڥͷ࣮ݱ ˰3FETIJGUʹఆظతʹ$01:ͯ͠ϩάσʔλΛͨΊΔ ˞ Γ͍ͨ͜ͱΛ42-ҰຊͰهड़Ͱ ͖ΔͰ3FETIJGUੳऀϑϨϯ υϦʔ ˞ ੳΞϓϩʔνͷ͔Βҙ֎ͱ ੜϩάΛىͱͨ͠ੳ͕ଟΊ 3FQPSUJOH SFQPSUBQJ BOBMZTU BEWFSUJTFST
ϦΞϧλΠϜσʔλॲཧΞϓϦέʔγϣϯͷಋೖྫ ࠂओ༷αΠτΛ๚ΕͨϢʔβ͕Έ͕ͨ %ZOBMZTUͰཧ͢Δ%#ʹ͋Δ͔൱͔ΛνΣοΫ͍ͨ͠ TVQMPBEDPOTVNFS DPWFSBHFDPVOUDPOTVNFS GPPUQSJOUTUSFBN JOQVU qVFOUEͰ1VU3FDPSET
ඵؒdSFDPSE͘Β͍QVU TIBSEͰTUSFBNΛ࡞ PVUQVU ϓϩηεͰDPOTVNFSΛ&$্Ͱ࣮ߦͤ͞Δ TDBMBBQQ ,$-Ͱ࣮ EBFNPOԽͯ͠QSPDFTTཧ TUSFBN͔ΒҰׅͰ(FU3FDPSET͠ɺ ·ͱΊͯॲཧͯ݁͠ՌΛ&MBTUJ$BDIF
ϦΞϧλΠϜσʔλॲཧΞϓϦέʔγϣϯͷಋೖྫ DPWFSBHFDPVOUDPOTVNFSQSPD GPPUQSJOUTUSFBN ,$-ͷڍಈཧղ CVJMEͨ͠ΞϓϦͷ&$ͷσϓϩΠQSPD ॳճىಈ࣌ʹ%ZOBNP%#DIFDLQPJOUཧ༻ͷUBCMF͕࡞͞ΕΔ νΣοΫϙΠϯτΛߋ৽͠ͳ͕ΒΞϓϦTIBSEݸͷσʔλΛॲཧ ͏ҰͭΞϓϦΛ&$ʹσϓϩΠQSPD
DIFDLQPJOUཧςʔϒϧΛࢀরͯ͠ɺݸTIBSEΛୣͬͯॲཧ։࢝ TIBSEQSPDͰॲཧ͞ΕΔঢ়ଶʹͳΔ QSPDΛTIVUEPXO͢ΔͱQSPD͕TIBSEݸॲཧ࢝͠ΊΔ DPWFSBHFDPVOUDPOTVNFSQSPD GFFEDPWFSBHFTUPSF DIFDLQPJOUNBOBHFUBCMF leaseKey checkpoint leaseOwner shard-0000 seq-abcd123 consumer01:xxx x shard-0001 seq-efgh456 consumer02:yyy y ˞ ͲͷTIBSEΛͲ͜·ͰͩΕ͕ॲཧͨ͠ʁ ˞,$-ඇৗʹߴػೳͰศར
ϦΞϧλΠϜσʔλॲཧΞϓϦέʔγϣϯͷಋೖྫ DPWFSBHFDPVOUDPOTVNFSQSPD GPPUQSJOUTUSFBN ,$-ར༻࣌ͷϋϚͬͨϙΠϯτ ϐʔΫ࣌ʹҰํͷQSPD͕ؤுΓɺଞํͷQSPD͕ؤுΒͳ͍ %ZOBNP%#ͷDIFDLQPJOUཧςʔϒϧͷ8SJUFΩϟύΦʔόʔ ॳظ͕8SJUF$BQBDJUZͰ࡞͞ΕΔͷͰॲཧͷ୯Ґɺ༰ʹΑͬͯͰΓͳ͍ͷͰ૿͢
৽͍͠όʔγϣϯͷΞϓϦΛσϓϩΠͨ͠ΒͲ͏ͳΔͷʁ QSPD QSPDΛىಈ TIBSEݸͷ߹ݹ͍QSPD QSPD͕ࣄΛୣΘΕΔ ࣮࣭SPMMJOHVQEBUFతͳڍಈΛࣔ͢ QSPD QSPDΛด͔ͯ͡ΒQSPD QSPDΛىಈͨ͠΄͏͕͍͍ͱ͖͋Δ͔ʁ TIBSE͕Γͳ͍ͷͰBQJܦ༝ͰTQMJUTIBSEͨ͠ɺΞϓϦͲ͏ͳΔʁ DIFDLQPJOUཧςʔϒϧ͕Α͠ͳʹͬͯ͘ΕΔ TQMJUTIBSE͢ΔલͷTIBSEͷॲཧΛऴ͑ͨΒ৽͍͠TIBSEͰͷॲཧΛҾ͖ܧ͙ DPWFSBHFDPVOUDPOTVNFSQSPD GFFEDPWFSBHFTUPSF DIFDLQPJOUNBOBHFUBCMF ˞ ͜ͷTIBSEͷͩΕʁ ˞,$-ඇৗʹߴػೳͰศར leaseKey checkpoint leaseOwner parentShardId shard-0002 seq-abcd123 consumer01:xx xx {"shard-0000"} shard-0003 seq-efgh456 consumer02:yy yy {"shard-0000"}
ϦΞϧλΠϜσʔλॲཧΞϓϦέʔγϣϯͷಋೖྫ ୈࡾऀ৴ͱ35#৴ ߹ΘͤͯͲΕ͘Β͍৴Մೳͳػձ͕͋ͬͨͷ͔Γ͍ͨʂ BEDBOEJEBUFDPOTVNFS BETUSFBN CJETUSFBN
CJEDBOEJEBUFDPOTVNFS ෳͷTUSFBNͷσʔλΛ͍͍ͨঢ়گͰͲ͏͢Δʁ BETUSFBNͷྲྀྔ SQT TIBSE CJETUSFBNͷྲྀྔ SQT TIBSE
ϦΞϧλΠϜσʔλॲཧΞϓϦέʔγϣϯͷಋೖྫ BEDBOEJEBUFDPOTVNFS BETUSFBN CJETUSFBN CJEDBOEJEBUFDPOTVNFS ෳͷTUSFBNͷσʔλΛ͍͍ͨঢ়گͰͲ͏͢Δʁ
BETUSFBNͷྲྀྔ SQT TIBSE CJETUSFBNͷྲྀྔ SQT TIBSE %ZOBMZTUͰɺɺ DPOTVNFSTUSFBNຖʹͦΕͧΕ࣮͢Δ DPOTVNFSͷதͰผͷTUSFBNʹ࠶QSPEVDF͢ΔॲཧΛೖΕΔ DBOEJEBUFTUSFBNͷDPOTVNFSͰతͷॲཧΛ࣮͢Δʂ DBOEJEBUFDPOTVNFS DBOEJEBUFTUSFBN
ϦΞϧλΠϜσʔλॲཧΞϓϦέʔγϣϯͷಋೖྫ BEDBOEJEBUFDPOTVNFS BETUSFBN CJETUSFBN CJEDBOEJEBUFDPOTVNFS ෳͷTUSFBNͷσʔλΛ͍͍ͨঢ়گͰͲ͏͢Δʁ
BETUSFBNͷྲྀྔ SQT TIBSE CJETUSFBNͷྲྀྔ SQT TIBSE (FU3FDPSETͨ͠ͷΛू͠ɺ ϨίʔυΛݮΒͯ͠࠶QSPEVDFʂ DBOEJEBUFDPOTVNFS
ϦΞϧλΠϜͳॲཧͱόονॲཧd0WFSWJFXd "EWFSUJTJOH 4JUF5SBDLJOH "E5SBDLJOH GFFECBDL GFFECBDL DBNQBJHONBOBHFNFOUYSFQPSUJOHGPS"EWFSUJTFS 3VOOJOH4QBSLXJUI :"3/PO&.3$MVTUFS
4VNNBSZPGUIJTTFTTJPO ΦϯϥΠϯࠂͷ͍· ࡢࠓͷࠂ৴ʹٻΊΒΕΔ͜ͱԿ͔ʁ %ZOBMZTU͕ఏڙ͢ΔՁͱԿ͔ʁ %ZOBMZTUͷγεςϜߏஙʹ͓͚Δίϯηϓτ γεςϜͷେنԽʹͬͯ໘ͨ͠՝ͨͪ ϩάͷྔ͚ͩͰͳ͘ϩάͷ༰͕ଟ༷Խ͢Δ͜ͱʹରԠ͠ʹ͍͘ σʔλͷར༻༻్ͷଟ༷Խͱॊೈੑͷ Ϩϙʔτूܭج൫㱠ΞυϗοΫੳج൫ "NB[PO,JOFTJTͷ࠾༻ͱͦͷಋೖͷաఔ
ͳͥ,JOFTJTͰղܾͰ͖Δͱߟ͔͑ͨʁ ,JOFTJTΛίΞͱ͢Δσʔλ׆༻ઓུͱ࣮ݱͨ͠γεςϜʹ͍ͭͯ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠