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
AWS AmplifyとmockmockでIoTバックエンドをスピーディに構築する
Search
Y_uuu
October 07, 2020
Technology
2
1k
AWS AmplifyとmockmockでIoTバックエンドをスピーディに構築する
Serverless Meetup Japan Virtual #7 での登壇資料です
https://serverless.connpass.com/event/188880/
Y_uuu
October 07, 2020
Tweet
Share
More Decks by Y_uuu
See All by Y_uuu
Porting PicoRuby to Another Microcontroller: ESP32
yuuu
4
760
RubyKaigi 2025でプロポーザルが初めて採択されるまでにやったこと
yuuu
1
490
地方企業の強みを活かす!AWSを活用したIoTシステムの開発事例とその裏側
yuuu
0
97
あの重機は今どこにある?- 重機管理IoTプロダクトのバックエンドをAWSで構築した話 -
yuuu
0
960
mruby-esp32におけるペリフェラルAPIの実装検討
yuuu
1
760
育成力 - エンジニアの才能を引き出す環境とチューターの立ち回り -
yuuu
4
4.7k
committee-railsとOpenAPI Generatorでスキーマ駆動なAPI開発をする
yuuu
0
910
mrubyでマイコンの世界に足を踏み入れる
yuuu
2
2k
mruby on IoT devices.
yuuu
4
2.5k
Other Decks in Technology
See All in Technology
Amplify Gen2から知るAWS CDK Toolkit Libraryの使い方/How to use the AWS CDK Toolkit Library as known from Amplify Gen2
fossamagna
1
250
Reach American Airlines®️ Instantly: 19 Calling Methods for Fast Support in the USA
flyamerican
1
180
CDK Vibe Coding Fes
tomoki10
1
540
ClaudeCodeにキレない技術
gtnao
0
560
american aa airlines®️ USA Contact Numbers: Complete 2025 Support Guide
aaguide
0
500
「Chatwork」のEKS環境を支えるhelmfileを使用したマニフェスト管理術
hanayo04
1
240
マルチプロダクト環境におけるSREの役割 / SRE NEXT 2025 lunch session
sugamasao
1
400
VGGT: Visual Geometry Grounded Transformer
peisuke
1
620
AIの全社活用を推進するための安全なレールを敷いた話
shoheimitani
2
640
AWS CDKの仕組み / how-aws-cdk-works
gotok365
10
890
Copilot coding agentにベットしたいCTOが開発組織で取り組んだこと / GitHub Copilot coding agent in Team
tnir
0
150
アクセスピークを制するオートスケール再設計: 障害を乗り越えKEDAで実現したリソース管理の最適化
myamashii
1
330
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
Six Lessons from altMBA
skipperchong
28
3.9k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
The Language of Interfaces
destraynor
158
25k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Practical Orchestrator
shlominoach
189
11k
Making Projects Easy
brettharned
116
6.3k
4 Signs Your Business is Dying
shpigford
184
22k
Speed Design
sergeychernyshev
32
1k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.7k
KATA
mclloyd
30
14k
Transcript
AWS AmplifyͱmockmockͰ IoTόοΫΤϯυΛεϐʔσΟʹߏங͢Δ 2020-10-07(Wed) Serverless Meetup Japan Virtual #8 ઌਐٕज़෦*P5νʔϜΤϯδχΞ
Ԭቌ༤ฏ 1
ࣗݾհ Ԭቌ ༤ฏ Okazaki Yuhei ‣ ID - @yuuu @Y_uuu
‣ ࣗݾհ wઌਐٕज़෦*P5νʔϜΤϯδχΞ w"84ɾ3BJMTΛͬͨडୗɾαʔϏε։ൃΛ୲ wԬࡏॅ ຊԬ͔Β͓ૹΓ͍ͯ͠·͢ ‣ Skill 2 image
ຊ͢͜ͱ 3 1.IoT x 2.IoT x *P5όοΫΤϯυΛεϐʔσΟʹߏஙʂ
*P5Y
AWS Amplifyͱ 5 w ϞόΠϧ͓ΑͼϑϩϯτΤϯυͷΣϒσϕϩούʔ͕ "84Λར༻ͯ҆͠શͰεέʔϥϒϧͳϑϧελοΫΞϓϦέʔγϣϯΛ ߏஙͰ͖ΔΑ͏ʹ͢ΔπʔϧͱαʔϏεͷηοτ w ӈਤͷΑ͏ͳΞϓϦέʔγϣϯɾΠϯϑϥΛ ؆୯ʹߏஙͰ͖Δ
AWS Amplifyͷྑ͍ͱ͜Ζ 6 w ϑϩϯτΤϯυΞϓϦέʔγϣϯΛ؆୯ʹߏஙͰ͖Δ w (SBQI2-εΩʔϚΛϕʔεʹόοΫΤϯυ͓Αͼ ϑϩϯτΤϯυͷΫϥΠΞϯτΛࣗಈੜ͢Δ w $*$%؆୯ʹηοτΞοϓͰ͖Δ
(JU)VC࿈ܞՄ
"NQMJGZͱ*P5ʹԿͷ͕ؔʜʁ
ݱࡏIoTγεςϜʹٻΊΒΕ͍ͯΔ͜ͱ 8 σόΠεཧ σʔλऩू σʔλੵ ՄࢹԽ ੳ ϑΟʔυόοΫ
ྫ: ΦϑΟεͷԹࢹγεςϜ 9 ΦϑΟεʹ ԹηϯαΛઃஔ (ηϯαͷཧ) ԹΛ ఆظతʹऩू ԹΛ σʔλϕʔεʹอଘ
ԹΛάϥϑͰ ՄࢹԽ ԹͷมಈཁҼΛ ੳ(ఱؾɺ࣌ؒɺ ਓͳͲ) ۭௐઃఆΛ ࠷దԽ͠ ίετΛݮ ੳ ϑΟʔυόοΫ σόΠεཧ σʔλऩू σʔλੵ ՄࢹԽ
ݱࡏIoTγεςϜʹٻΊΒΕ͍ͯΔ͜ͱ 10 σόΠεཧ σʔλऩू σʔλੵ ՄࢹԽ ଟ͘ͷΫϥΠΞϯτ ੳɾϑΟʔυόοΫ͢ΔͨΊͷԼ͕͍ͬͯͳ͍ ˠʮ·ͣऩूʙՄࢹԽʯͱ͍͏ґཔ͕ଟ͍ ੳ
ϑΟʔυόοΫ
ݱࡏIoTγεςϜʹٻΊΒΕ͍ͯΔ͜ͱ 11 σόΠεཧ σʔλऩू σʔλੵ ՄࢹԽ ཧγεςϜΛࣗ࡞ PS ❓
IoTγεςϜͱRDSͷ૬ੑ͕͋·Γྑ͘ͳ͍ 12 w εέʔϧΞτ͕ۤख w γεςϜͷʹͭΕσόΠεͷ૿͑Δ w $16ϝϞϦσΟεΫ*0ͷ͍ͣΕ͔͕ރׇ͢Δ w 71$ͷதʹஔ͞ΕΔͷͰ*P5$PSF͔ΒΞΫηεͮ͠Β͍
w 3%41SPYZΛ͏ͱͯ͠-BNCEB͕ඞཁ w 3%4Ͱͳ͘%ZOBNP%#͕σʔλετΞͷୈީิͱͳΔ
ݱࡏIoTγεςϜʹٻΊΒΕ͍ͯΔ͜ͱ 13 σόΠεཧ σʔλऩू σʔλੵ ՄࢹԽ ཧγεςϜΛࣗ࡞ PS ❓
DynamoDBͷΛಡΈग़͢ͷ͕໘ 14 w -BNCEBͷίʔυΛॻ͘ͷ͕໘ w "1*(BUFXBZपΓͷઃఆ໘ ೝূ͕བྷΜͰ͘Δͱಛʹ
AmplifyΛͬͯGraphQL APIΛఆٛ 15 w 4DIFNBΛهड़͢Δ͚ͩͰ"1*ɾΫϥΠΞϯτίʔυ͕ࣗಈੜ͞ΕΔ w $PHOJUPೝূ؆୯ʹ࿈ܞͰ͖Δ
ݱࡏIoTγεςϜʹٻΊΒΕ͍ͯΔ͜ͱ 16 σόΠεཧ σʔλऩू σʔλੵ ՄࢹԽ ཧγεςϜΛࣗ࡞ PS
ݱࡏIoTγεςϜʹٻΊΒΕ͍ͯΔ͜ͱ 17 σόΠεཧ σʔλऩू σʔλੵ ՄࢹԽ ཧγεςϜΛࣗ࡞ PS ΅͕͔͘Μ͕͍͖͑ͨ͞ΐ͏ͷαʔϏεߏ
શମߏ 18 w *P5$PSFͷ"$5ϧʔϧΛͬͯ "NQMJGZͷόοΫΤϯυ %ZOBNP%# σʔλΛॻ͖ࠐΉ w "NQMJGZͰ%ZOBNP%#ʹอଘͨ͠σʔλΛ
͍͍ײ͡ʹՄࢹԽ͢ΔΞϓϦΛߏங
"NQMJGZʹΑΔ*P5όοΫΤϯυ ߏங࣌ͷϙΠϯτ
جຊతͳखॱ 20 DSFBUFOFYUBQQ ϓϩδΣΫτ࡞ɺݸਓతʹXJUIUZQFTDSJQUFTMJOUKFTUָ͕ BNQMJGZJOJU "NQMJGZͷॳظԽ
BNQMJGZBEEIPTUJOH ϗεςΟϯάͷՃ BNQMJGZBEEBVUI ೝূͷՃ BNQMJGZBEEBQJ "1*ͷՃ ࢀরʮ/FYUKT 5ZQF4DSJQU "84"NQMJGZ 3FDPJMͰ5P%PϦετΛ࡞Δʯ ɹIUUQT[FOOEFWZ@VVVBSUJDMFTBCDCF
Next.jsΛͬͨΞϓϦͷCI/CD 21 ੩తϖʔδͷ&YQPSUઌͱσϓϩΠઌΛ߹ΘͤΔඞཁ͕͋Δ ࢀরʮ"84"NQMJGZͰIPTUJOHͨ͠/FYUKTͷ41"͕ʮ"DDFTT%FOJFEʯͱͳͬͨͱ͖ͷରॲ๏ʯ ɹIUUQTRJJUBDPN:@VVVJUFNTBGBDEDGBE
εΩʔϚઃܭ 22 w TDIFNBHSBQIRMʹεΩʔϚ 㲈ςʔϒϧઃܭ Λهड़͢Δ w σόΠεͷใ%ZOBNP%#ʹอ࣋ w !DPOOFDUJPOσΟϨΫςΟϒͰIBTNBOZͷؔ࿈ΛఆٛͰ͖Δ
w !BVUIσΟϨΫςΟϒͰݖݶೝূՃͰ͖Δ
εΩʔϚઃܭ 23 w !LFZͰ(4*Λఆٛ͠ɺύʔςΟγϣϯΩʔEFWJDF*E ιʔτΩʔUJNFTUBNQʹ w !DPOOFDUJPOͰCFMPOHTUPͷؔ࿈Λఆٛ
ΧελϜΧςΰϦ 24 w "NQMJGZͰΧςΰϦ୯ҐͰػೳΛՃ͢Δ͜ͱ͕Ͱ͖Δ
ΧελϜΧςΰϦ 25 w "1* (SBQI2- ɺೝূɺϗεςΟϯά "NQMJGZ$-*Λͬͯ؆୯ʹՃͰ͖Δ w *P5$PSFΧςΰϦͱͯ͠ՃͰ͖ͳ͍ ˠΧελϜΧςΰϦΛ࡞
ΧελϜΧςΰϦ 26 w $GOςϯϓϨʔτΛࣗ࡞͢Δ͜ͱͰɺଞΧςΰϦͱಉ༷ʹཧͰ͖Δ w BNQMJGZBEEJPUFOEQPJOUͱίϚϯυΛୟ͘͜ͱͰόοΫΤϯυͷػೳΛՃ
IoT Core→DynamoDB 27 w *P5$PSFͰϧʔϧΛ࡞͠ɺ42-ͱΞΫγϣϯΛఆٛ͢Δ͜ͱͰ ଞαʔϏεड৴σʔλΛड͚͢
IoT Core→DynamoDB 28 w "NQMJGZͰੜ͞ΕΔ(SBQI2-ͷ্༷ɺJEඞਢͳͷͰ OFXVVJE ͱ͍͏'VODUJPOΛͬͯੜ
IoT Core→DynamoDB 29 w ಉ༷ʹDSFBUFE"UɺVQEBUFE"Uඞਢ w ࣌ࠁͷจࣈྻΛ͍͍ײ͡ʹੜ͢Δ'VODUJPO͕ແͦ͞͏ͳͷͰμϛʔͷΛࢦఆ
GraphQLͷݺͼग़͠ 30 w "NQMJGZ$-*͕TDIFNBHSBQIRMʹରԠͨ͠ΫϥΠΞϯτΛࣗಈੜͯ͘͠ΕΔ w ݺͼग़͚ͩ͢ͰόοΫΤϯυ͔ΒใΛऔಘͰ͖Δ
ग़དྷ্͕ͬͨը໘ 31 w /FYUKT .BUFSJBM6*ͰσόΠεͷ$36%ը໘Λߏங w άϥϑSFBDUDIBSUKTΛ༻
*P5Y
IoTόοΫΤϯυͷಈ࡞֬ೝʹσόΠε͕ඞཁ 33 w%FWJDF͕σʔλΛૹ৴͠ͳ͍ͱ %ZOBNP%#͕ۭͬΆͷ··
σόΠεΛ༻ҙ͢Δͷେม 34 wσόΠεࣗମͷௐୡʹ͕͔͔࣌ؒΔ wσόΠεͷ։ൃʹ͕͔͔࣌ؒΔ wΘΓʹγϛϡϨʔλΛ࡞Δʁ wेͳ͕࣌ؒऔΕͣยखؒʹͳΓ͕ͪ wࡉ͔݅͘Λม͑ΒΕΔ͔ʁ
mockmockͱ 35 w *P5։ൃʹ͓͚ΔςετΛࢧԉ͢ΔαʔϏε w σόΠεͷΘΓʹԾσόΠε NPDL ͕όοΫΤϯυσʔλΛૹ৴͢Δ w NPDL࠷େສ·ͰىಈՄೳ
Ͱݕࡧͯ͠Έ͍ͯͩ͘͞ NPDLNPDL ৄࡉ
mockmockΛ͏ͱσόΠεແ͠Ͱಈ࡞֬ೝ͕Ͱ͖Δ 36 wNPDLNPDL͔ΒσʔλΛૹ৴͢Δ͜ͱͰ &&ͰγεςϜͷಈ࡞Λ֬ೝͰ͖Δ
NPDLNPDLͰσʔλΛૹ৴͢Δखॱ
ૹ৴ઌΛઃఆ͢Δ 38 w*P5$PSFͷΤϯυϙΠϯτʹ.255ͰσʔλΛૹ৴͢Δ w9ূ໌ॻʹରԠ
ૹΔσʔλΛઃఆ͢Δ 39 wηϯαͷΛ࠶ݱ͢ΔάϥϑΛඳ͘ w࣮ࡍͷηϯαΒ͘͠ɺʹΏΒ͗Λ࣋ͨͤΔ͜ͱՄೳ
ૹ৴ઌͷTopicૹ৴සΛઃఆ 40 w5PQJDNPDLຖʹม͍͑ͨͷͰɺมΛຒΊࠐΉ wૹ৴සҙʹઃఆՄೳ ࠓճඵݻఆ
mockΛىಈ 41 wNPDLΛىಈ͢Δͱσʔλૹ৴͕։࢝ wҰఆ࣌ؒܦաޙʹࣗಈఀࢭ
άϥϑͷத͕දࣔ 42 wNPDLNPDLͰઃఆͨ͠άϥϑͱɺΞϓϦͰදࣔͨ͠άϥϑ͕Ұக ˠਖ਼͘͠ද͍ࣔͯ͠Δ͜ͱ͕֬ೝͰ͖ͨʂ
mockmockΛར༻͢ΔϝϦοτ: IoTγεςϜͷෛՙࢼݧ͕Ͱ͖Δ 43 w༗ྉϓϥϯͰ࠷େສ·ͰNPDLΛ૿ͤΔͷͰෛՙࢼݧʹ͑Δ w%ZOBNP%#ͷΩϟύγςΟෆ"VUP4DBMJOHͷಈ࡞Λӡ༻લʹݕग़Ͱ͖Δ
mockmockΛར༻͢ΔϝϦοτ: ՄࢹԽํ๏ͷଥੑΛ֬ೝͰ͖Δ 44 wຊʹ͍ۙσʔλ͕ଘࡏ͢Δঢ়ଶͰը໘Λ֬ೝ͢Δͱɺؾ͖͕ಘΒΕ͍͢ wͦͦંΕઢάϥϑͰྑ͍ͷ͔ʁ wଞͷηϯαͷΛಉ͡ը໘Ͱ֬ೝͰ͖ΔͱΘ͔Γ͍͢ͷͰʁ
"NQMJGZͱNPDLNPDLͰ *P5όοΫΤϯυΛεϐʔσΟʹߏஙͰ͖ͨʂ
·ͱΊ 46 w "NQMJGZΛ͏͜ͱͰεϐʔσΟʹ*P5γεςϜΛߏஙͰ͖Δ w NPDLNPDLΛ͏͜ͱͰεϐʔσΟʹςετͰ͖Δ w Έͳ͞·ͥͻ͓ࢼ͍ͩ͘͠͞ʂ *P5Y Y
͝ਗ਼ௌ͍͖ͨͩ͋Γ͕ͱ͏͍͟͝·ͨ͠ Thank You We are Hiring ! https://recruit.fusic.co.jp/
⚡ "QQFOEJY
FAQ: Amplifyͷ͍ํΛֶͿͷʹཱͬͨίϯςϯπ 49 w EBCJUSFBDUOPUFT w ؆୯ͳ5P%PϦετΛ࡞ΔνϡʔτϦΞϧ w όʔδϣϯ͕গ͠ݹ͍͔ w
IUUQTHJUIVCDPNEBCJUSFBDUOPUFT w "NQMJGZ4/48PSLTIPQ w 5XJUUFSϥΠΫͳΞϓϦέʔγϣϯΛ3FBDU "NQMJGZͰߏங w ͪ͜Βόʔδϣϯ͕ݹ͘ͳΓͭͭ͋ΔͷͰߋ৽ʹظ w IUUQTBNQMJGZTOTXPSLTIPQBXTKB w "NQMJGZ'SBNFXPSL%PDVNFOUBUJPO w ެࣜυΩϡϝϯτɺࠔͬͨΒ͜͜ΛಡΉ w IUUQTEPDTBNQMJGZBXT
FAQ: Next.jsΛͬͨײ 50 wࠓճ3FBDUͷϑϨʔϜϫʔΫͱ͍͏Ґஔ͚ͮͰ͍ͬͯΔ wSFBDUSPVUFSͷಋೖઃఆΛ؆ུԽͰ͖Δ w443ʹରԠ ࠓճ͍ͬͯͳ͍ w".1ରԠ ࠓճ͍ͬͯͳ͍
w18"ରԠ ࠓճ͍ͬͯͳ͍ w3FBDU͚ͩͰ։ൃ͢ΔΑΓεϐʔσΟ wग़དྷ্͕ͬͨΞϓϦέʔγϣϯαΫαΫಈ͘
FAQ: FirebaseͱൺͯͲ͏ʁ 51 wϑϩϯτΤϯυϞόΠϧΞϓϦΛ࡞Δͱ͍͏ҙຯͰ 'JSFCBTF༗ྗީิ wҰํɺ"84*P5$PSFʹ૬͢ΔαʔϏεػೳ͕ແ͍ҹ w($1*P5$PSFศརͰ͋Δ͕ 'JSFTUPSFͱ࿈ܞ͢Δʹ $MPVE'VODUJPOT͕ඞཁͦ͏
FAQ: ElasticsearchΛΘͳ͍ཧ༝ 52 wऩूͷՄࢹԽ͚ͩΛ࠷Ͱ࣮ݱ͢ΔͳΒ&MBTUJDTFBSDI͕࠷ద wݸผΧελϚΠζ͕͍͠ wσόΠεཧͷΈͷՃ͕͍͠ wσβΠϯͷΧελϚΠζ͕͍͠ wىಈ࣌ؒʹൺྫͯ͠ίετ͕͔͔Δ
FAQ: Amazon TimestreamͲ͏ͳͷ͔ʁ 53 wࢲؾʹͳΓ·͆͢ w*P5$PSFˠ5JNFTUSFBNͷॻ͖ࠐΈՄೳ w"QQ4ZODͱͷ࿈ܞ͕͓ͦΒ͘·ͩ ࿈ܞͯ͘͠ΕΔͱ͍͍ͳʜ
FAQ: mockͷΛ૿͢߹ɺઃఆ͕େมͰͳ͍͔ʁ 54 w$47ΠϯϙʔτͰҰׅઃఆՄೳ
mockmock: ͜ΜͳσʔλੜͰ͖·͢ - όέοτόϦϡʔδΣωϨʔλ 55 w͍͔ͭ͘ͷσʔληοτΛ༻ҙͯ͠ɺͦͷ͏ͪͷҰͭΛબ wॱ൪ͷࢦఆϥϯμϜબՄೳ
mockmock: ͜ΜͳσʔλੜͰ͖·͢ - ҐஔδΣωϨʔλ 56 wਤ্ͰҠಈϧʔτΛࢦఆ͠ɺҠಈମͷ࠲ඪใΛૹ৴