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
ITS を支える 情報集約基盤 アーキテクチャ / ITS Tech Study #02
Search
Hiroyoshi HOUCHI
June 08, 2018
Technology
870
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ITS を支える 情報集約基盤 アーキテクチャ / ITS Tech Study #02
Hiroyoshi HOUCHI
June 08, 2018
More Decks by Hiroyoshi HOUCHI
See All by Hiroyoshi HOUCHI
aws-dev-day-2020-f9-cdk-bestpractice
hixi
0
360
CDK 利用者から見る CDK
hixi
3
1.2k
SIerIoT vol.7
hixi
1
640
AWS IoT を用いた DeNA オートモーティブアーキテクチャ / DeNA Techcon 2018 Houchi Hiroyoshi
hixi
1
35k
sake-game-gcp-5.pdf
hixi
0
160
appengine-ja-night-35.pdf
hixi
0
150
Other Decks in Technology
See All in Technology
失敗を資産に変えるClaude Code
shinyasaita
0
680
エンジニアリング戦略の作り方 / Crafting Engineering Strategy
iwashi86
21
7k
エラーバジェットのアラートのタイミングを考える.pdf
kairim0
0
150
Agent Skills設計で柔軟性と硬さのバランスが難しい話
nassy20
0
130
データサイエンスを価値につなげるプロジェクト設計 〜 DS一年目が現場で得た気づき 〜
ysd113
1
260
2026 TECHFRESH 畢業分享會 - AI-Native 重塑軟體工程與虛擬講師
line_developers_tw
PRO
0
1.1k
白金鉱業Meetup_Vol.24_「AIエージェントは分けるほど良い」は本当か? / Is it true that “the more you divide AI agents, the better”?
brainpadpr
1
390
Bucharest Tech Week 2026 - Reinventing testing practices in the AI era
edeandrea
PRO
1
160
Chainlitで作るお手軽チャットUI
ynt0485
0
260
非エンジニアがClaudeと挑んだ「1ヶ月間プロダクト30本ノック」
askokc
0
560
Snowflakeと仲良くなる第一歩
coco_se
4
480
2026TECHFRESH畢業分享會 - Lightning Talk - E起 See See : 電商推薦讀心術? 數據說了算
line_developers_tw
PRO
0
1.1k
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Docker and Python
trallard
47
3.9k
New Earth Scene 8
popppiees
3
2.3k
How to Ace a Technical Interview
jacobian
281
24k
Being A Developer After 40
akosma
91
590k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.7k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
The Limits of Empathy - UXLibs8
cassininazir
1
360
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.9k
GitHub's CSS Performance
jonrohan
1033
470k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
Transcript
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Hiroyoshi HOUCHI Office
of Technology Development System Management Unit DeNA Co., Ltd. *54Λࢧ͑Δ ใूج൫ ΞʔΩςΫνϟ *545FDI4UVEZ"84*P5 1
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ࣗݾհ ์Ղ !IJYJ@IZJ
w ݄dݱΦʔϓϯϓϥοτϑΥʔϜγεςϜࣄۀ෦ 4PDJBM"1* ։ൃ ͚ࣾ.PCJMF#BB4 ։ൃϦʔμ ڠۀҊ݅ ։ൃΠϯϑϥ "OE"QQ ΫϥυΞʔΩςΫνϟઃܭ w ݄dΦʔτϞʔςΟϒࣄۀຊ෦ ΫϥυγεςϜΞʔΩςΫτɾڞ௨ج൫ w ݄dγεςϜຊ෦ શࣾԣஅΫϥυγεςϜΞʔΩςΫτ ΛΔͭΓ ΦʔτϞʔςΟϒҾ͖ଓ͖ 2
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ຊͷൃද༰ 3
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. *54Λࢧ͑Δใूج൫ΞʔΩςΫνϟ ⁃ ं྆ొػೳ
⁃ ं྆ɾαʔόʹର͢ΔೝূೝՄ ⁃ ใͷऩू ⁃ ं྆ͦͷͷͷใͷऩू ⁃ ΤοδίϯϐϡʔςΟϯάͷੳใͷऩू ⁃ ं྆ใͷఏڙ ⁃ ं྆ใͷϦΞϧλΠϜऔಘػೳͷఏڙ ⁃ δΦؔΛ༻͍ͨं྆ใͷఏڙ ⁃ ੳγεςϜͷใఏڙ 4
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. *54Λࢧ͑Δใूج൫ΞʔΩςΫνϟ ⁃ ं྆ొػೳ
⁃ ं྆ɾαʔόʹର͢ΔೝূೝՄ ⁃ ใͷऩू ⁃ ं྆ͦͷͷͷใͷऩू ⁃ ΤοδίϯϐϡʔςΟϯάͷੳใͷऩू ⁃ ं྆ใͷఏڙ ⁃ ं྆ใͷϦΞϧλΠϜऔಘػೳͷఏڙ ⁃ δΦؔΛ༻͍ͨं྆ใͷఏڙ ⁃ ੳγεςϜͷใఏڙ 5
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ࢀߟࢿྉ λΫϕϧʹ͍ͭͯ ⁃
AWS Summit 2018 Tokyo - DeNA ΦʔτϞʔςΟϒʹ͓͚Δ AWS ׆༻ࣄྫ ٕज़෦ʹ͍ͭͯ ⁃ DeNA TechCon 2018 – AWS IoTΛ༻͍ͨDeNAΦʔτϞʔςΟϒΞʔΩςΫ νϟ ݕࡧΩʔϫʔυʮ AWS IoT DeNA ʯ(ൃද Google ݕࡧ࣌) 6
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ൃද෦ͷΞʔΩςΫνϟਤ 7 3.
ੳใऩू 2. ं྆ใऩू 1. ੳγεςϜ౷߹
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 1. ੳγεςϜ౷߹ 8
8
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 1. ੳγεςϜ౷߹ 9
{ "topic": "pub/sub topic", "data": { "hoge": "fuga" } } ※ format ʹ͍ͭͯগ͠ lambda Ͱٵऩͯ͠Δ෦͋Γ
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 1. ੳγεςϜ౷߹ 10
• όοϑΝϦϯά͞ΕͨใΛ Lambda Ͱऔಘ • σʔλϑϩʔ্ Kinesis Data Streams → Lambda ࣮ࡍ Lambda → Kinesis Data Streams
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 1. ੳγεςϜ౷߹ 11
• topic Ͱάϧʔϐϯά • Cloud Pub/Sub ·ͱΊͯˍฒྻ Publish [ { "topic": "pub/sub topic", "data": { "hoge": "fuga" } }, …… ]
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 1. ੳγεςϜ౷߹෦ʹ͍ͭͯ •
• جຊతʹ Network ͷ४උ + I/O ͕࣌ؒͱ͔͔ͯΔ෦ • ୯ൃ࣮ߦͰͳͯ͘ɺόοϑΝϦϯά͢Δ͜ͱʹΑͬͯ Lambda ͷ࣮ߦճ + ૯࣮ߦ࣌ؒΛେ෯ʹݮΒ͢͜ͱ(=ίετݮ)͕Ͱ͖Δ (※ ं྆ rps͙Β͍͘Δ ) • ΄΅΄΅ϦΞϧλΠϜʹใΛૹΔ͜ͱ͕Ͱ͖Δ • ߟྀ • Kinesis Data Streams ͷγϟʔυ • ผख๏ • ϦΞϧλΠϜੑΛ͏গ͠ଛͳ͍͍ͬͯͷͰ͋Ε S3 Λ༻͍ͭͭɺ ఆظతʹ GCS ʹૹ৴͢Δ͜ͱՄ • ͦ͏ͨ͠߹ɺͬͱίετΛݮΒ͢͜ͱ͕Ͱ͖Δ 12
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 2. ं྆ใऩू 13
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ͷલͷɺࣄલใ… • ं͔྆Βͷૹ৴ϑΥʔϚοτ
bson (TechCon #33) • ࣄલʹߦ͏ं྆ొ(TechCon #25)ʹΑΓҎԼͷΑ͏ʹͳΔ • ThingName ূ໌ॻID • ThingShadow ʹҎԼͷใؚ͕·Ε͍ͯΔ (TechCon #29) 14 \ TUBUF\ SFQPSUFE\ EFWJDF\ !JE999999 ^ ^ ^ ^
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 2. ं྆ใऩू 15
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 2. ं྆ใऩू 16
Topic p/@s.b (providers/taxibell/@status.bson) Payload ҎԼͷΑ͏ͳ json ͷ bson දݱ {"@pos": { "lat": "35.4429108606794", "lon": "139.642686919283" }, "@pos_ts": "1528437407", "@ts": "1528437407"}
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 2. ं྆ใऩू 17
SQL SELECT aws_lambda(“${bson2json lambda arn}”, { “bson”: encode(*, “base64”)) as state.reported.status FROM p/@s.b Action ҎԼͷ Republish $$aws/things/${principal()}/shadow/update
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 2. ं྆ใऩू 18
ݩͷσʔλ { "state": { "reported": { "device": { "@id": "XXXXXX" } }, "status": {"hoge":"fuga" } } ೖྗσʔλ { "state": { "reported": { "status": { "@pos": { "lat": "35.4429108606794", "lon": "139.642686919283" }, "@pos_ts": "1528437407", "@ts": "1528437407" } } ݁Ռσʔλ { "state": { "reported": { "device": { "@id": "XXXXXX" }, "status": { "@pos": { "lat": "35.4429108606794", "lon": "139.642686919283" }, "@pos_ts": "1528437407", "@ts": “1528437407”, “hoge”: “fuga” } }
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 2. ं྆ใऩू 19
Topic $aws/things/+/shadow/update/documents Payload { "current": { "state": { "reported": { "device": { "@id": "XXXXXX" }, "status": { "@pos": { "lat": "35.4429108606794", "lon": "139.642686919283" }, "@pos_ts": "1528437407", "@ts": "1528437407", "hoge":"fuga" } } , "desired": {} } }, "previous": {ུ} }
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 2. ं྆ใऩू 20
SQL SELECT {'data': {'device': current.state.reported.device, 'reported': current.state.reported.status}, 'topic': ‘${topicname}'} FROM '$aws/things/+/shadow/update/documents' Action Kinesis
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 2. ं྆ใऩू෦ʹ͍ͭͯ •
• ใͷ౷߹ • ThingShadow ͷػೳΛ༗ޮ׆༻͢Δ͜ͱͰɺ͚ࠩͩͰͳ͘ɺͦͷ࣌ͷं྆ ͷͯ͢ͷঢ়ଶΛ͢͜ͱ͕Մೳ • ΫϥΠΞϯτ͚ࠩͩͳͷͰ௨৴ྔతʹ༏͍͠ • ੳڥʹͯใͷิ͕ඞཁͳ͘ͳΔ • ඞཁͳ෦ͷΈͷ Lambda ʹ͑Δ • Lambda Ͱ ThingShadow ͷߋ৽·Ͱ͢Δ͜ͱՄೳ • ҰํͰ ThingShadow ͷؾͰ࣮ߦ͕࣌ؒ૿͑ͯ͠·͏ʹίετ͕૿Ճ͢ΔՄೳ ੑ͕͋Δ 21
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 3. ੳใऩू 22
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 3. ੳใऩू 23
Topic p/@a.b (providers/taxibell/@analytics.bson) Payload ҎԼͷΑ͏ͳ json ͷ bson දݱ { "@t": "${ࣝผࢠ}", "@d" { "accuracy": "100", "raw": { "hoge": "huga" }, "res": { "hoge": "huga" } } } ※ ͜͜Ͱͷ @t type ͷུ
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 3. ੳใऩू 24
SQL SELECT “${topicname} as topic, aws_lambda(“${bson2json lambda arn}”, { “bson”: encode(*, “base64”)) as data, get_thing_shadow(principal(), “${role arn}”) as thing FROM p/ @a.b Action Kinesis
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 3. ੳใऩूʹ͍ͭͯ •
• ใͷิ • ୯७ͳੳͷΈͰͳ͘ɺݱࡏͷं྆ͷใؚΊͯૹ৴ • ੳڥʹͯใͷิ͕ඞཁͳ͘ͳΔ • ඞཁͳ෦ͷΈͷ Lambda • Thing Shadow ͷऔಘͰ͢Β SQL 25
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. • Ͱ͖ΔݶΓϚωʔδϝϯτػೳΛ͏
• Lambda Ϛωʔδϝϯτ͕ͩɺͬͱ͍͍ͷͬͱ͋Δ • ཪଆͰಈ͍͍ͯΔ༷ʑͳγεςϜΛ༗ޮ׆༻͢Δ • ThingShadow ͕ߋ৽͞Εͨͱ͖ʹ৭ʑ Publish ͞ΕΔɻ • ࠓճ update/documents ͷΈ. update/delta ৭ʑເ͕͕Δ • ৽͍͠ػೳϝϦοτΛߟ͑ͯ͏ • SQL ͷؔͷҰͭͰ͋Δ aws_lambda ൺֱత৽͍͠ػೳɻ • අ༻ݮʹେ͍ʹཱͬͯ͘ΕͯΔ (͡Ί͍Βͳ͍ͳʔͬͯࢥͬͯͨ) 26
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ຊεϥΠυ • ใूج൫γεςϜͷ
ใΛੳ͢Δ·Ͱͷ෦ͷൃදΛ͖ͤͯ͞·ͨ͠ • ͦͷଞ෦ʹڵຯ͋Γ·ͨ͠ΒҎԼΛࢀর͍ͩ͘͞ ⁃ AWS Summit 2018 Tokyo - DeNA ΦʔτϞʔςΟϒʹ͓͚Δ AWS ׆༻ࣄྫ ⁃ DeNA TechCon 2018 – AWS IoTΛ༻͍ͨDeNAΦʔτϞʔςΟϒΞʔΩςΫ νϟ ⁃ ݕࡧΩʔϫʔυʮAWS IoT DeNAʯ ※ ΞʔΩςΫνϟͷதʑਐԽ͓ͯ͠Γ·͢ 27
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Appendix. ࣦഊஊ 28
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Appendix. ੲͷࣦഊ (1)
• Lambda ͍·͘Γ • ੲ౷ҰԽΛؾʹͯ͠ɺશ෦ Lambda ͰॲཧΛͯͨ͠ • ं͔྆Βͷೖྗ͕ ઍ rps. • தΛશ෦ lambda ʹ͢ΔͱඵؒສϨϕϧͷlambda͕࣮ߦ͞Ε͍ͯͨɻ • ߴ͍ɻ 29
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Appendix. ੲͷࣦഊ (2)
• ThingShadow ͷ index ͍·͘Γ • ݕࡧͰ͖Δͷඇৗʹศརͩͬͨ (͜ͷ݅ͷं͚ͩநग़͍ͨ͠ͱ͔) • ઍ rps ͷ index ͷߋ৽͕͔͔Δ • ߴ͍ɻ • ͘ͳΔʢͣʣ 30
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Appendix. ੲͷࣦഊ (3)
• Admin API (ཧܥͷAPI) ͍·͘Γ • εϧʔϓοτΛٻΊͨ API ͡Όͳ͍ͷʹɺઍ rps Ͱόϯόϯୟ͍ͯ·ͨ͠ • έʔε͕࡞͞ΕΔͱ͍͏ܦݧΛ͠·ͨ͠ 31