Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ࣗݾ঺հ ์஍޺Ղ !IJYJ@IZJ  w ೥݄dݱΦʔϓϯϓϥοτϑΥʔϜγεςϜࣄۀ෦  4PDJBM"1* ։ൃ   ࣾ಺޲͚.PCJMF#BB4 ։ൃϦʔμ   ڠۀҊ݅ ։ൃΠϯϑϥ   "OE"QQ Ϋϥ΢υΞʔΩςΫνϟઃܭ  w ೥݄dΦʔτϞʔςΟϒࣄۀຊ෦  Ϋϥ΢υγεςϜΞʔΩςΫτɾڞ௨ج൫ w ೥݄dγεςϜຊ෦  શࣾԣஅΫϥ΢υγεςϜΞʔΩςΫτ Λ΍Δͭ΋Γ 
 ΦʔτϞʔςΟϒ΋Ҿ͖ଓ͖ 2

Slide 3

Slide 3 text

Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ຊ೔ͷൃද಺༰ 3

Slide 4

Slide 4 text

Copyright (C) DeNA Co.,Ltd. All Rights Reserved. *54Λࢧ͑Δ৘ใू໿ج൫ΞʔΩςΫνϟ ⁃ ं྆ొ࿥ػೳ ⁃ ं྆ɾαʔόʹର͢ΔೝূೝՄ ⁃ ৘ใͷऩू ⁃ ं྆ͦͷ΋ͷͷ৘ใͷऩू ⁃ ΤοδίϯϐϡʔςΟϯάͷ෼ੳ৘ใͷऩू ⁃ ं྆৘ใͷఏڙ ⁃ ं྆৘ใͷϦΞϧλΠϜऔಘػೳͷఏڙ ⁃ δΦؔ਺Λ༻͍ͨं྆৘ใͷఏڙ ⁃ ෼ੳγεςϜ΁ͷ৘ใఏڙ 4

Slide 5

Slide 5 text

Copyright (C) DeNA Co.,Ltd. All Rights Reserved. *54Λࢧ͑Δ৘ใू໿ج൫ΞʔΩςΫνϟ ⁃ ं྆ొ࿥ػೳ ⁃ ं྆ɾαʔόʹର͢ΔೝূೝՄ ⁃ ৘ใͷऩू ⁃ ं྆ͦͷ΋ͷͷ৘ใͷऩू ⁃ ΤοδίϯϐϡʔςΟϯάͷ෼ੳ৘ใͷऩू ⁃ ं྆৘ใͷఏڙ ⁃ ं྆৘ใͷϦΞϧλΠϜऔಘػೳͷఏڙ ⁃ δΦؔ਺Λ༻͍ͨं྆৘ใͷఏڙ ⁃ ෼ੳγεςϜ΁ͷ৘ใఏڙ 5

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ൃද෦෼ͷΞʔΩςΫνϟਤ 7 3. ෼ੳ৘ใऩू 2. ं྆৘ใऩू 1. ෼ੳγεςϜ౷߹

Slide 8

Slide 8 text

Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 1. ෼ੳγεςϜ౷߹ 8 8

Slide 9

Slide 9 text

Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 1. ෼ੳγεςϜ౷߹ 9 { "topic": "pub/sub topic", "data": { "hoge": "fuga" } } ※ format ʹ͍ͭͯ͸গ͠ lambda Ͱٵऩͯ͠Δ෦෼͋Γ

Slide 10

Slide 10 text

Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 1. ෼ੳγεςϜ౷߹ 10 • όοϑΝϦϯά͞Εͨ৘ใΛ Lambda Ͱऔಘ • σʔλϑϩʔ্ Kinesis Data Streams → Lambda
 ࣮ࡍ͸ Lambda → Kinesis Data Streams

Slide 11

Slide 11 text

Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 1. ෼ੳγεςϜ౷߹ 11 • topic Ͱάϧʔϐϯά • Cloud Pub/Sub ΁͸
 ·ͱΊͯˍฒྻ Publish [ { "topic": "pub/sub topic", "data": { "hoge": "fuga" } }, …… ]

Slide 12

Slide 12 text

Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 1. ෼ੳγεςϜ౷߹෦ʹ͍ͭͯ • ޻෉఺ • جຊతʹ Network ͷ४උ + I/O ͕࣌ؒͱͯ΋͔͔Δ෦෼ • ୯ൃ࣮ߦͰ͸ͳͯ͘ɺόοϑΝϦϯά͢Δ͜ͱʹΑͬͯ Lambda ͷ࣮ߦճ਺ + ૯࣮ߦ࣌ؒΛେ෯ʹݮΒ͢͜ͱ(=ίετݮ)͕Ͱ͖Δ (※ ं྆୆਺ rps͙Β͍͘Δ ) • ΄΅΄΅ϦΞϧλΠϜʹ৘ใΛૹΔ͜ͱ͕Ͱ͖Δ • ߟྀ఺ • Kinesis Data Streams ͷγϟʔυ਺ • ผख๏ • ϦΞϧλΠϜੑΛ΋͏গ͠ଛͳ͍͍ͬͯͷͰ͋Ε͹ S3 Λ༻͍ͭͭɺ
 ఆظతʹ GCS ʹૹ৴͢Δ͜ͱ΋Մ • ͦ͏ͨ͠৔߹ɺ΋ͬͱίετΛݮΒ͢͜ͱ͕Ͱ͖Δ 12

Slide 13

Slide 13 text

Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 2. ं྆৘ใऩू 13

Slide 14

Slide 14 text

Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ͷલͷɺࣄલ৘ใ… • ं͔྆Βͷૹ৴ϑΥʔϚοτ͸ bson (TechCon #33) • ࣄલʹߦ͏ं྆ొ࿥(TechCon #25)ʹΑΓҎԼͷΑ͏ʹͳΔ • ThingName ͸ূ໌ॻID • ThingShadow ʹ͸ҎԼͷ৘ใؚ͕·Ε͍ͯΔ (TechCon #29) 14 \ TUBUF\ SFQPSUFE\ EFWJDF\ !JE999999 ^ ^ ^ ^

Slide 15

Slide 15 text

Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 2. ं྆৘ใऩू 15

Slide 16

Slide 16 text

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"}

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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” } }

Slide 19

Slide 19 text

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": {ུ} }

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 2. ं྆৘ใऩू෦ʹ͍ͭͯ • ޻෉఺ • ৘ใͷ౷߹ • ThingShadow ͷػೳΛ༗ޮ׆༻͢Δ͜ͱͰɺࠩ෼͚ͩͰ͸ͳ͘ɺͦͷ࣌ͷं྆ ͷ͢΂ͯͷঢ়ଶΛ౉͢͜ͱ͕Մೳ • ΫϥΠΞϯτ͸ࠩ෼͚ͩͳͷͰ௨৴ྔతʹ༏͍͠ • ෼ੳ؀ڥʹͯ৘ใͷิ׬͕ඞཁͳ͘ͳΔ • ඞཁͳ෦෼ͷΈͷ Lambda ʹ཈͑Δ • Lambda Ͱ ThingShadow ͷߋ৽·Ͱ͢Δ͜ͱ͸Մೳ • ҰํͰ ThingShadow ͷؾ෼Ͱ࣮ߦ͕࣌ؒ૿͑ͯ͠·͏ʹίετ͕૿Ճ͢ΔՄೳ ੑ͕͋Δ 21

Slide 22

Slide 22 text

Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 3. ෼ੳ৘ใऩू 22

Slide 23

Slide 23 text

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 ͷུ

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 3. ෼ੳ৘ใऩूʹ͍ͭͯ • ޻෉఺ • ৘ใͷิ׬ • ୯७ͳ෼ੳͷΈͰ͸ͳ͘ɺݱࡏͷं྆ͷ৘ใ΋ؚΊͯૹ৴ • ෼ੳ؀ڥʹͯ৘ใͷิ׬͕ඞཁͳ͘ͳΔ • ඞཁͳ෦෼ͷΈͷ Lambda • Thing Shadow ͷऔಘͰ͢Β SQL 25

Slide 26

Slide 26 text

Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ޻෉఺ • Ͱ͖ΔݶΓϚωʔδϝϯτػೳΛ࢖͏ • Lambda ΋Ϛωʔδϝϯτ͕ͩɺ΋ͬͱ͍͍΋ͷ͸΋ͬͱ͋Δ • ཪଆͰಈ͍͍ͯΔ༷ʑͳγεςϜΛ༗ޮ׆༻͢Δ • ThingShadow ͕ߋ৽͞Εͨͱ͖ʹ͸৭ʑ Publish ͞ΕΔɻ • ࠓճ͸ update/documents ͷΈ. update/delta ΋৭ʑເ͕޿͕Δ • ৽͍͠ػೳ΋ϝϦοτΛߟ͑ͯ࢖͏ • SQL ͷؔ਺ͷҰͭͰ͋Δ aws_lambda ͸ൺֱత৽͍͠ػೳɻ • අ༻࡟ݮʹେ͍ʹ໾ཱͬͯ͘ΕͯΔ (͸͡Ί͸͍Βͳ͍ͳʔͬͯࢥͬͯͨ) 26

Slide 27

Slide 27 text

Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ຊεϥΠυ • ৘ใू໿ج൫γεςϜ಺ͷ
 ৘ใΛ෼ੳ͢Δ·Ͱͷ෦෼ͷൃදΛͤͯ͞௖͖·ͨ͠ • ͦͷଞ෦෼ʹڵຯ͋Γ·ͨ͠ΒҎԼΛࢀর͍ͩ͘͞ ⁃ AWS Summit 2018 Tokyo - DeNA ΦʔτϞʔςΟϒʹ͓͚Δ AWS ׆༻ࣄྫ ⁃ DeNA TechCon 2018 – AWS IoTΛ༻͍ͨDeNAΦʔτϞʔςΟϒΞʔΩςΫ νϟ ⁃ ݕࡧΩʔϫʔυʮAWS IoT DeNAʯ ※ ΞʔΩςΫνϟͷத਎͸೔ʑਐԽ͓ͯ͠Γ·͢ 27

Slide 28

Slide 28 text

Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Appendix. ࣦഊஊ 28

Slide 29

Slide 29 text

Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Appendix. ੲͷࣦഊ఺ (1) • Lambda ࢖͍·͘Γ • ੲ͸౷ҰԽΛؾʹͯ͠ɺશ෦ Lambda ͰॲཧΛͯͨ͠ • ं͔྆Βͷೖྗ͕ ਺ઍ rps. • தΛશ෦ lambda ʹ͢ΔͱඵؒສϨϕϧͷlambda͕࣮ߦ͞Ε͍ͯͨɻ • ߴ͍ɻ 29

Slide 30

Slide 30 text

Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Appendix. ੲͷࣦഊ఺ (2) • ThingShadow ͷ index ࢖͍·͘Γ • ݕࡧͰ͖Δͷ͸ඇৗʹศརͩͬͨ (͜ͷ৚݅ͷं͚ͩநग़͍ͨ͠ͱ͔) • ਺ઍ rps ͷ index ͷߋ৽͕͔͔Δ • ߴ͍ɻ • ஗͘ͳΔʢ͸ͣʣ 30

Slide 31

Slide 31 text

Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Appendix. ੲͷࣦഊ఺ (3) • Admin API (؅ཧܥͷAPI) ࢖͍·͘Γ • εϧʔϓοτΛٻΊͨ API ͡Όͳ͍ͷʹɺ਺ઍ rps Ͱόϯόϯୟ͍ͯ·ͨ͠ • έʔε͕࡞੒͞ΕΔͱ͍͏ܦݧΛ͠·ͨ͠ 31