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
110
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.5k
pmconf2017
kimurashuhei
0
3.6k
MDH-LT-Thursday-20170126
kimurashuhei
0
1.6k
Other Decks in Technology
See All in Technology
AI関数が早くなったので試してみよう
kumakura
0
290
Foundation Model × VisionKit で実現するローカル OCR
sansantech
PRO
1
370
Rubyの国のPerlMonger
anatofuz
3
740
AIのグローバルトレンド 2025 / ai global trend 2025
kyonmm
PRO
1
140
Telemetry APIから学ぶGoogle Cloud ObservabilityとOpenTelemetryの現在 / getting-started-telemetry-api-with-google-cloud
k6s4i53rx
0
140
相互運用可能な学修歴クレデンシャルに向けた標準技術と国際動向
fujie
0
250
Amazon Q Developerを活用したアーキテクチャのリファクタリング
k1nakayama
2
210
ユーザー課題を愛し抜く――AI時代のPdM価値
kakehashi
PRO
1
120
【OptimizationNight】数理最適化のラストワンマイルとしてのUIUX
brainpadpr
2
480
Eval-Centric AI: Agent 開発におけるベストプラクティスの探求
asei
0
120
九州の人に知ってもらいたいGISスポット / gis spot in kyushu 2025
sakaik
0
160
Infrastructure as Prompt実装記 〜Bedrock AgentCoreで作る自然言語インフラエージェント〜
yusukeshimizu
1
110
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
1k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
760
Into the Great Unknown - MozCon
thekraken
40
2k
How GitHub (no longer) Works
holman
314
140k
Building an army of robots
kneath
306
45k
The Invisible Side of Design
smashingmag
301
51k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.5k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
A Tale of Four Properties
chriscoyier
160
23k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
47
9.6k
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ΛίΞͱ͢Δσʔλ׆༻ઓུͱ࣮ݱͨ͠γεςϜʹ͍ͭͯ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠