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
800
アクアシャッター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
940
RubyKaigi 2025でプロポーザルが初めて採択されるまでにやったこと
yuuu
1
610
地方企業の強みを活かす!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
980
mrubyでマイコンの世界に足を踏み入れる
yuuu
2
2.1k
Other Decks in Programming
See All in Programming
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.5k
AIの誤りが許されない業務システムにおいて“信頼されるAI” を目指す / building-trusted-ai-systems
yuya4
7
4.3k
Spinner 軸ズレ現象を調べたらレンダリング深淵に飲まれた #レバテックMeetup
bengo4com
1
220
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
170
なるべく楽してバックエンドに型をつけたい!(楽とは言ってない)
hibiki_cube
0
110
AtCoder Conference 2025
shindannin
0
940
フルサイクルエンジニアリングをAI Agentで全自動化したい 〜構想と現在地〜
kamina_zzz
0
360
TestingOsaka6_Ozono
o3
0
270
はじめてのカスタムエージェント【GitHub Copilot Agent Mode編】
satoshi256kbyte
0
170
AIエージェントの設計で注意するべきポイント6選
har1101
6
3.1k
re:Invent 2025 のイケてるサービスを紹介する
maroon1st
0
170
Basic Architectures
denyspoltorak
0
210
Featured
See All Featured
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
71k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Designing for Performance
lara
610
70k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
52
Building Applications with DynamoDB
mza
96
6.9k
Are puppies a ranking factor?
jonoalderson
0
2.6k
Why Our Code Smells
bkeepers
PRO
340
58k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
110
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
115
100k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Accessibility Awareness
sabderemane
0
35
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/