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
Y_uuu
April 27, 2021
Programming
1
820
アクアシャッター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
260
Porting PicoRuby to Another Microcontroller: ESP32
yuuu
4
970
RubyKaigi 2025でプロポーザルが初めて採択されるまでにやったこと
yuuu
1
650
地方企業の強みを活かす!AWSを活用したIoTシステムの開発事例とその裏側
yuuu
0
150
あの重機は今どこにある?- 重機管理IoTプロダクトのバックエンドをAWSで構築した話 -
yuuu
0
1.1k
mruby-esp32におけるペリフェラルAPIの実装検討
yuuu
1
850
育成力 - エンジニアの才能を引き出す環境とチューターの立ち回り -
yuuu
4
5k
committee-railsとOpenAPI Generatorでスキーマ駆動なAPI開発をする
yuuu
0
1k
mrubyでマイコンの世界に足を踏み入れる
yuuu
2
2.2k
Other Decks in Programming
See All in Programming
AWS Infrastructure as Code の新機能 2025 総まとめ 〜SA 4人による怒涛のデモ祭り〜
konokenj
10
3.3k
Agentic AI: Evolution oder Revolution
mobilelarson
PRO
0
140
モジュラモノリスにおける境界をGoのinternalパッケージで守る
magavel
0
3.5k
コードレビューをしない選択 #でぃーぷらすトウキョウ
kajitack
2
780
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
470
Fundamentals of Software Engineering In the Age of AI
therealdanvega
1
240
猫の手も借りたい!ので AIエージェント猫を作って社内に放した話 Claude Code × Container Lambda の Slack Bot "DevNeko"
naramomi7
0
260
TROCCOで実現するkintone+BigQueryによるオペレーション改善
ssxota
0
170
Swift ConcurrencyでよりSwiftyに
yuukiw00w
0
250
エンジニアの「手元の自動化」を加速するn8n 2026.02.27
symy2co
0
120
AI活用のコスパを最大化する方法
ochtum
0
130
ロボットのための工場に灯りは要らない
watany
7
1.9k
Featured
See All Featured
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.5k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.1k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.3k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
67
37k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
170
We Have a Design System, Now What?
morganepeng
55
8k
How GitHub (no longer) Works
holman
316
140k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
HDC tutorial
michielstock
1
520
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
390
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
190
Making the Leap to Tech Lead
cromwellryan
135
9.8k
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/