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
アクアシャッターf IoT異常通報システム開発記 〜 AWSとSORACOMとmockmock
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Y_uuu
April 27, 2021
Programming
1
810
アクアシャッターf IoT異常通報システム開発記 〜 AWSとSORACOMとmockmock
2021-04-27(Tue) 19:00〜
Fusic Tech Live Vol.1:AWS 活用事例 にて発表
https://fusic.connpass.com/event/206957/
Y_uuu
April 27, 2021
Tweet
Share
More Decks by Y_uuu
See All by Y_uuu
Porting filesystem-fat to Another Microcontroller: ESP32
yuuu
2
220
Porting PicoRuby to Another Microcontroller: ESP32
yuuu
4
950
RubyKaigi 2025でプロポーザルが初めて採択されるまでにやったこと
yuuu
1
620
地方企業の強みを活かす!AWSを活用したIoTシステムの開発事例とその裏側
yuuu
0
140
あの重機は今どこにある?- 重機管理IoTプロダクトのバックエンドをAWSで構築した話 -
yuuu
0
1k
mruby-esp32におけるペリフェラルAPIの実装検討
yuuu
1
840
育成力 - エンジニアの才能を引き出す環境とチューターの立ち回り -
yuuu
4
4.9k
committee-railsとOpenAPI Generatorでスキーマ駆動なAPI開発をする
yuuu
0
990
mrubyでマイコンの世界に足を踏み入れる
yuuu
2
2.1k
Other Decks in Programming
See All in Programming
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
2
510
AI時代の認知負荷との向き合い方
optfit
0
120
CSC307 Lecture 01
javiergs
PRO
0
680
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
570
CSC307 Lecture 04
javiergs
PRO
0
650
Patterns of Patterns
denyspoltorak
0
1.3k
IFSによる形状設計/デモシーンの魅力 @ 慶應大学SFC
gam0022
1
280
AIエージェントの設計で注意するべきポイント6選
har1101
7
3.3k
re:Invent 2025 トレンドからみる製品開発への AI Agent 活用
yoskoh
0
710
コマンドとリード間の連携に対する脅威分析フレームワーク
pandayumi
1
440
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
7
2.7k
AI Agent の開発と運用を支える Durable Execution #AgentsInProd
izumin5210
7
2.2k
Featured
See All Featured
The Invisible Side of Design
smashingmag
302
51k
[SF Ruby Conf 2025] Rails X
palkan
0
730
Agile that works and the tools we love
rasmusluckow
331
21k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
170
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
55
49k
Marketing to machines
jonoalderson
1
4.6k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.7k
Getting science done with accelerated Python computing platforms
jacobtomlinson
1
110
Information Architects: The Missing Link in Design Systems
soysaucechin
0
750
How to train your dragon (web standard)
notwaldorf
97
6.5k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.1k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
Transcript
ΞΫΞγϟολʔ̵ IoTҟৗ௨ใγεςϜ։ൃه ʙ AWSͱSORACOMͱmockmock 2021-04-27(Tue ) Fusic Tech Live Vol.1ɿAWS
׆༻ࣄྫ ઌਐٕज़෦ IoTνʔϜ Ԭቌ ༤ฏ 1
ࣗݾհ Ԭቌ ༤ฏ Okazaki Yuhei ‣ I D - @yuuu
@Y_uuu ‣ ࣗݾհ • FusicͷIoTΫϥυΤϯδχΞ • ݩɾࠐΈΤϯδχΞ(2018͔ΒWebܥ ) • ࠷ۙͷ͓ࣄઐΒAzure ‣ Skil l 2 image ʘNewʗ
IoTΫϥυΤϯδχΞͷ͓ࣄ 3 ‣ IoT=ITͷ૯߹֨ಆٕ
IoTΫϥυΤϯδχΞͷ͓ࣄ 4 ‣ σόΠεҎ֎ͷ෦(IoTʹ͓͚ΔΫϥυ)ͷ։ൃɾςετɾӡ༻Λ୲
࣍ 5 0. ΞΠεϒϨΠΫ ʙ IoTϓϩμΫτࠓͷΠνΦγ 1. γεςϜ֓ཁ 2. ΞʔΩςΫνϟ
ʙ SORACO M 3. ΞʔΩςΫνϟ ʙ AW S 4. mockmockΛͬͨςετ 5. ·ͱΊ
ΞΠεϒϨΠΫ: IoTϓϩμΫτࠓͷΠνΦγ 6 ‣ εϚϗ͕ʮ伴ʯʹͳΔ ‣ Ոʹۙͮ͘ͱࣗಈղৣɺࣗಈࢪৣ(ΦʔτϩοΫ ) ‣ APIެ։͞Ε͍ͯΔͷͰ͍Ζ͍Ζ༡Δ
ηαϛεϚʔτϩοΫ
ΞΠεϒϨΠΫ: IoTϓϩμΫτࠓͷΠνΦγ 7 ‣ Ո͔ΒΕ͍ͯͯՈͷঢ়ଶ͕Θ͔Δ - ʮ伴ดΊ͚ͨͬʁʯͱෆ҆ʹͳΔ͜ͱ͕ͳ͘ͳͬͨ - Ո͕༧ఆ௨ΓͷߦಈΛ͍ͯ͠Δ͔ɺՄࢹԽ ‣
ԕִʹ͋ΔϞϊͷঢ়ଶΛՄࢹԽ - ҙ֎ͱخ͍͠ - ࠓ͓͢ΔγεςϜʮԕִࢹʯ͕ςʔϚͰ͢ ղৣ࣌ɾࢪৣ࣌ʹεϚϗʹ௨͕དྷΔ
ʘ͔͜͜ΒຊͰ͢ʗ 📣 ΞΫΞγϟολʔ̵ IoTҟৗ௨ใγεςϜ։ൃه 8
1. γεςϜ֓ཁ 9
લఏ: ։ൃʹ͓͚ΔεςʔΫϗϧμʔ 10 ɾγεςϜͷൃݩɺϢʔβʔ ɾSORACOM SIMͷൃɾཧ ɾσόΠεͷઃܭɾ։ൃɾςετ ɾγεςϜͷઃܭɾ։ൃɾςετ ɾAWSͷٻߦ σόΠεൃ
σόΠεೲ γεςϜൃ γεςϜೲ ࿈ܞͯ͠։ൃ
ຊհ͢ΔγεςϜ 11 ΞΫΞγϟολʔ̵ IoTҟৗ௨ใγεςϜ
ΞΫΞγϟολʔ̵ͱ 12 ‣ גࣜձࣾӉࠜమॴ͕ɾൢച ‣ େӍɾߑਫ࣌ʹݐઃඋͷਁਫΛ͙ਫ൘ ‣ ʮ24࣌ؒɺແಈྗɾແૢ࡞ʯΛചΓʹ͍ͯ͠Δ
ΞΫΞγϟολʔ̵ͱ 13
ΞΫΞγϟολʔ̵๊͕͑Δ՝ 14 ‣ ແಈྗɾແૢ࡞ͷͨΊɺಈ࡞ϩά͕Βͳ͍ - ࣮ࡍʹਁਫ͕ൃੜͯ͠ɺ࡞ಈͨ͠ͷ͔Θ͔Βͳ͍ - ൶ʹॏྔ͕͍ͬͯͯɺ࡞ಈෆೳʹͳ͍ͬͯͯؾ͔ͳ͍
IoTҟৗ௨ใγεςϜͷػೳ༷ 15 ‣ ʹσόΠε(+ηϯαʔ)Λޙ͢Δ͜ͱͰɺ ൶ىཱɾ൶෬ͱ͍ͬͨঢ়ଶΛγεςϜ্Ͱ֬ೝͰ͖ΔΑ͏ʹ͢Δ ‣ ͕࡞ಈͨ͜͠ͱΛࢦఆͨ͠Ѽઌ௨͢Δ ‣ σόΠεͷࢮ׆ࢹΛ͢Δ
શମΞʔΩςΫνϟ 16
2. ΞʔΩςΫνϟ ʙ SORACOM 17
SORACOMΛ࠾༻ͨ͠ཧ༝ 18 ‣ SIMΛ͏͜ͱͰ֎Ͱͷ௨৴Λ࣮ݱ ‣ SIMΛ1ຕ͔ΒൃՄೳ ‣ σόΠεͱΫϥυ͕γʔϜϨεʹ௨৴Ͱ͖Δ
IoT։ൃʹ͓͚ΔσόΠεͱΫϥυͷΪϟοϓ 19 σόΠε Ϋϥυ ϓϩτίϧ ϑΥʔϚοτ ೝূ ‣ σʔλͷૹड৴ʹؔͯ͠େ͖ͳΪϟοϓ͕͋Δ ϨΠϠͷ͍ϓϩτίϧ
(ྫ: TCP, UDP) ϨΠϠͷߴ͍ϓϩτίϧ (ྫ: HTTPS, MQTTS) όΠφϦͰߏԽͨ͠ σʔλ͕ѻ͍͍͢ ςΩετԽ͞Εͨσʔλ͕ ѻ͍͍͢(ྫ: JSON) ߴͳೝূίετ͕͔͔Δ ෆਖ਼ͳσόΠε͔Βͷ ΞΫηεΛ͙ͨΊೝূ͕ඞཁ
όΠφϦύʔαʔ+FunnelͰΪϟοϓΛຒΊΔ 20 ‣ ϓϩτίϧ: TCP→HTTPSʹม ‣ ϑΥʔϚοτ: όΠφϦˠJSONʹม ‣ IoT
CoreͷೝূFunnelͰҰݩԽ
όΠφϦύʔαʔ+FunnelͰΪϟοϓΛຒΊΔ 21 ‣ ϓϩτίϧ: TCP→HTTPSʹม ‣ ϑΥʔϚοτ: όΠφϦˠJSONʹม ‣ IoT
CoreͷೝূFunnelͰҰݩԽ ‣ σόΠεɾΫϥυͦΕͧΕ։ൃ͍͢͠
3. ΞʔΩςΫνϟ ʙ AWS 22
AWS 23 ‣ IoT Core͕ड৴ͨ͠σʔλΛSQSPU T
AWS 24 ‣ Webଆࢸͬͯී௨ͷWebγεςϜ
AWS 25 ‣ Worker͕SQS͔ΒGE T ‣ RDS֨ೲ ‣ ඞཁʹԠͯ͡ϝʔϧ௨(SES)
SQSΛͬͯσʔλΛEC2Ͱॲཧ 26 ‣ SQS→EC2Α͋͘Δઃܭ ‣ SQSͷલஈʹSNSΛڬΉͱ͜Ζ͕ϙΠϯτ - SQS͕σόοά͠ʹ͍͘ͷͰSNSΛڬΉ͜ͱͰɺσʔλͷ֬ೝΛ༰қʹ͢Δ - SQSҎ֎ͷૹ৴ઌ͕ඞཁʹͳͬͨͱ͖ʹରԠ͍͢͠
SQSΛͬͯσʔλΛEC2→RDSʹ֨ೲ 27 ‣ ࠓͳΒEvent BridgeΛͬͨํ͕ྑͦ͞͏ʁ - IoT Core→Event Bridge͕ະରԠ -
SNSΛڬΜͩσʔλૹ৴·ͩ·ͩ༗ޮ(ࠓޙʹظ)
αʔόϨεΞʔΩςΫνϟˠIaaSΞϯνύλʔϯʁ 28 ‣ ඞͣͦ͠͏ͱݴ͑ͳ͍ɺέʔεόΠέʔε - ϝϦοτ: WebγεςϜ͔ΒΞΫηεɾूܭ͍͢͠ - σϝϦοτ: εέʔϧ͠ʹ͍͘
‣ ࠓճن͕ͦ͜·Ͱେ͖͘ͳ͘ɺٸܹͳεέʔϧͷՄೳੑ͍ͱஅ - σόΠεͷଓ: ͓͓Αͦ100 - ௨৴ස: 1ճ/ɾ
αʔόϨεΞʔΩςΫνϟ+IaaSΞϯνύλʔϯʁ 29 ‣ ࠓͳΒLambda→RDS-Proxyͱ͍͏બࢶΞϦ
αʔόϨεΞʔΩςΫνϟ+IaaSΞϯνύλʔϯʁ 30 ‣ ࠓͳΒLambda→RDS-Proxyͱ͍͏બࢶΞϦ
αʔόϨεΞʔΩςΫνϟ+IaaSΞϯνύλʔϯʁ 31 ‣ ࠓͳΒLambda→RDS-Proxyͱ͍͏બࢶΞϦ
4. mockmockΛͬͨςετ 32
IoTͷςετ͍͠ 33 ‣ ͳΜΒ͔ͷํ๏ͰσʔλΛૹ৴͠ͳ͍ͱɺಈ࡞Λ֬ೝͰ͖ͳ͍ σόΠε͔Βͷ σʔλૹ৴͕ ͯ͢ͷ͡·Γ
ཧܗ: mockmock͕ΘΓʹσʔλΛૹ৴ 34 ಈ࡞Λ֬ೝͰ͖Δ
mockmock 35 ‣ ࣌SORACOM࿈ܞ͕ະϩʔϯν - E2EͰ֬ೝͰ͖ͳ͍ͱ͋·Γҙຯ͕ແ͍ͱߟ͑ͨ ‣ ༧͞ΕΔΫϥυଆͷෛՙ͕খ͍͞ - σόΠε͕গͳ͘ɺૹ৴ස͍ͷͰ
ຊ։ൃͰ͋·Γ׆༻͕Ͱ͖ͳ͔ͬͨ
ݱ࣮: ຊ։ൃͰͷςετ 36 ಈ࡞Λ֬ೝͰ͖Δ ‣ όοΫΤϯυͷςετ SORACOM Funnel͔Βͷ σʔλૹ৴Λٖ(ճ)
ݱ࣮: ຊ։ൃͰͷςετ 37 ‣ όοΫΤϯυͷςετ SORACOM Funnel͔Βͷ σʔλૹ৴Λٖ(ճ) ‣ E2Eςετ
σόΠε͔Βͷσʔλૹ৴ ಈ࡞Λ֬ೝͰ͖Δ
σόΠεͱΫϥυΛଓͨ͠ࡍʹൃੜ 38 ‣ ϝοηʔδΛ࿈ଓૹ৴ͨ͠ࡍͷঢ়ଶભҠʹ͋Γ
σόΠεͱΫϥυΛଓͨ͠ࡍʹൃੜ 39 ‣ ϝοηʔδΛ࿈ଓૹ৴ͨ͠ࡍͷঢ়ଶભҠʹ͋Γ
σόΠεͱΫϥυΛଓͨ͠ࡍʹൃੜ 40 ‣ ϝοηʔδΛ࿈ଓૹ৴ͨ͠ࡍͷঢ়ଶભҠʹ͋Γ
ཧܗ: mockmock͕ΘΓʹσʔλΛૹ৴ 41 ಈ࡞Λ֬ೝͰ͖Δ
ཧܗ: mockmock͕ΘΓʹσʔλΛૹ৴ 42 ಈ࡞Λ֬ೝͰ͖Δ ࠓͳΒΕΔʂ
5. ·ͱΊ 43
·ͱΊ 44 ‣ SORACOM SIMͰσόΠεͱΫϥυΛγʔϜϨεʹଓͰ͖Δ ‣ AWSͰड৴ͨ͠σʔλΛWebΞϓϦʹड͚ͤΔ ‣ mockmockΛ͑σόΠεͱΫϥυΛඇಉظͰ։ൃɾςετͰ͖Δ
45 ͝ਗ਼ௌ͍͖ͨͩ͋Γ͕ͱ͏͍͟͝·ͨ͠ Thank You We are Hiring ! https://recruit.fusic.co.jp/