Slide 1

Slide 1 text

AWS AmplifyͱmockmockͰ IoTόοΫΤϯυΛεϐʔσΟʹߏங͢Δ 2020-10-07(Wed) Serverless Meetup Japan Virtual #8 ઌਐٕज़෦໳*P5νʔϜΤϯδχΞ Ԭቌ༤ฏ 1

Slide 2

Slide 2 text

ࣗݾ঺հ Ԭቌ ༤ฏ Okazaki Yuhei ‣ ID - @yuuu @Y_uuu ‣ ࣗݾ঺հ wઌਐٕज़෦໳*P5νʔϜΤϯδχΞ w"84ɾ3BJMTΛ࢖ͬͨडୗɾαʔϏε։ൃΛ୲౰ w෱Ԭࡏॅ ຊ೔΋෱Ԭ͔Β͓ૹΓ͍ͯ͠·͢ ‣ Skill 2 image

Slide 3

Slide 3 text

ຊ೔࿩͢͜ͱ 3 1.IoT x 2.IoT x *P5όοΫΤϯυΛεϐʔσΟʹߏஙʂ

Slide 4

Slide 4 text

*P5Y

Slide 5

Slide 5 text

AWS Amplifyͱ͸ 5 w ϞόΠϧ͓ΑͼϑϩϯτΤϯυͷ΢Σϒσϕϩούʔ͕ "84Λར༻ͯ҆͠શͰεέʔϥϒϧͳϑϧελοΫΞϓϦέʔγϣϯΛ ߏஙͰ͖ΔΑ͏ʹ͢ΔπʔϧͱαʔϏεͷηοτ w ӈਤͷΑ͏ͳΞϓϦέʔγϣϯɾΠϯϑϥΛ ؆୯ʹߏஙͰ͖Δ

Slide 6

Slide 6 text

AWS Amplifyͷྑ͍ͱ͜Ζ 6 w ϑϩϯτΤϯυΞϓϦέʔγϣϯΛ؆୯ʹߏஙͰ͖Δ w (SBQI2-εΩʔϚΛϕʔεʹόοΫΤϯυ͓Αͼ ϑϩϯτΤϯυͷΫϥΠΞϯτΛࣗಈੜ੒͢Δ w $*$%΋؆୯ʹηοτΞοϓͰ͖Δ (JU)VC࿈ܞՄ

Slide 7

Slide 7 text

"NQMJGZͱ*P5ʹԿͷؔ܎͕ʜʁ

Slide 8

Slide 8 text

ݱࡏIoTγεςϜʹٻΊΒΕ͍ͯΔ͜ͱ 8 σόΠε؅ཧ σʔλऩू σʔλ஝ੵ ՄࢹԽ ෼ੳ ϑΟʔυόοΫ

Slide 9

Slide 9 text

ྫ: ΦϑΟεͷԹ౓؂ࢹγεςϜ 9 ΦϑΟεʹ Թ౓ηϯαΛઃஔ (ηϯαͷ؅ཧ) Թ౓Λ ఆظతʹऩू Թ౓Λ σʔλϕʔεʹอଘ Թ౓Λάϥϑ౳Ͱ ՄࢹԽ Թ౓ͷมಈཁҼΛ ෼ੳ(ఱؾɺ࣌ؒɺ ਓ਺ͳͲ) ۭௐઃఆΛ ࠷దԽ͠ ίετΛ࡟ݮ ෼ੳ ϑΟʔυόοΫ σόΠε؅ཧ σʔλऩू σʔλ஝ੵ ՄࢹԽ

Slide 10

Slide 10 text

ݱࡏIoTγεςϜʹٻΊΒΕ͍ͯΔ͜ͱ 10 σόΠε؅ཧ σʔλऩू σʔλ஝ੵ ՄࢹԽ ଟ͘ͷΫϥΠΞϯτ͸ ෼ੳɾϑΟʔυόοΫ͢ΔͨΊͷԼ஍͕੔͍ͬͯͳ͍ ˠʮ·ͣ͸ऩूʙՄࢹԽʯͱ͍͏ґཔ͕ଟ͍ ෼ੳ ϑΟʔυόοΫ

Slide 11

Slide 11 text

ݱࡏIoTγεςϜʹٻΊΒΕ͍ͯΔ͜ͱ 11 σόΠε؅ཧ σʔλऩू σʔλ஝ੵ ՄࢹԽ ؅ཧγεςϜΛࣗ࡞ PS ❓

Slide 12

Slide 12 text

IoTγεςϜͱRDSͷ૬ੑ͕͋·Γྑ͘ͳ͍ 12 w εέʔϧΞ΢τ͕ۤख w γεςϜͷ੒௕ʹͭΕσόΠεͷ୆਺͸૿͑Δ w $16ϝϞϦσΟεΫ*0ͷ͍ͣΕ͔͕ރׇ͢Δ w 71$ͷதʹ഑ஔ͞ΕΔͷͰ*P5$PSF͔ΒΞΫηεͮ͠Β͍ w 3%41SPYZΛ࢖͏ͱͯ͠΋-BNCEB͕ඞཁ w 3%4Ͱ͸ͳ͘%ZOBNP%#͕σʔλετΞͷୈީิͱͳΔ

Slide 13

Slide 13 text

ݱࡏIoTγεςϜʹٻΊΒΕ͍ͯΔ͜ͱ 13 σόΠε؅ཧ σʔλऩू σʔλ஝ੵ ՄࢹԽ ؅ཧγεςϜΛࣗ࡞ PS ❓

Slide 14

Slide 14 text

DynamoDBͷ஋ΛಡΈग़͢ͷ͕໘౗ 14 w -BNCEBͷίʔυΛॻ͘ͷ͕໘౗ w "1*(BUFXBZपΓͷઃఆ΋໘౗ ೝূ͕བྷΜͰ͘Δͱಛʹ

Slide 15

Slide 15 text

AmplifyΛ࢖ͬͯGraphQL APIΛఆٛ 15 w 4DIFNBΛهड़͢Δ͚ͩͰ"1*ɾΫϥΠΞϯτίʔυ͕ࣗಈੜ੒͞ΕΔ w $PHOJUPೝূ΋؆୯ʹ࿈ܞͰ͖Δ

Slide 16

Slide 16 text

ݱࡏIoTγεςϜʹٻΊΒΕ͍ͯΔ͜ͱ 16 σόΠε؅ཧ σʔλऩू σʔλ஝ੵ ՄࢹԽ ؅ཧγεςϜΛࣗ࡞ PS

Slide 17

Slide 17 text

ݱࡏIoTγεςϜʹٻΊΒΕ͍ͯΔ͜ͱ 17 σόΠε؅ཧ σʔλऩू σʔλ஝ੵ ՄࢹԽ ؅ཧγεςϜΛࣗ࡞ PS ΅͕͔͘Μ͕͍͖͑ͨ͞ΐ͏ͷαʔϏεߏ੒

Slide 18

Slide 18 text

શମߏ੒ 18 w *P5$PSFͷ"$5ϧʔϧΛ࢖ͬͯ "NQMJGZͷόοΫΤϯυ %ZOBNP%# ΁ σʔλΛॻ͖ࠐΉ w "NQMJGZͰ%ZOBNP%#ʹอଘͨ͠σʔλΛ ͍͍ײ͡ʹՄࢹԽ͢ΔΞϓϦΛߏங

Slide 19

Slide 19 text

"NQMJGZʹΑΔ*P5όοΫΤϯυ ߏங࣌ͷϙΠϯτ

Slide 20

Slide 20 text

جຊతͳखॱ 20 DSFBUFOFYUBQQ ϓϩδΣΫτ࡞੒ɺݸਓతʹ͸XJUIUZQFTDSJQUFTMJOUKFTUָ͕ BNQMJGZJOJU "NQMJGZͷॳظԽ BNQMJGZBEEIPTUJOH ϗεςΟϯάͷ௥Ճ BNQMJGZBEEBVUI ೝূͷ௥Ճ BNQMJGZBEEBQJ "1*ͷ௥Ճ ࢀরʮ/FYUKT5ZQF4DSJQU"84"NQMJGZ3FDPJMͰ5P%PϦετΛ࡞Δʯ ɹIUUQT[FOOEFWZ@VVVBSUJDMFTBCDCF

Slide 21

Slide 21 text

Next.jsΛ࢖ͬͨΞϓϦͷCI/CD 21 ੩తϖʔδͷ&YQPSUઌͱσϓϩΠઌΛ߹ΘͤΔඞཁ͕͋Δ ࢀরʮ"84"NQMJGZͰIPTUJOHͨ͠/FYUKTͷ41"͕ʮ"DDFTT%FOJFEʯͱͳͬͨͱ͖ͷରॲ๏ʯ ɹIUUQTRJJUBDPN:@VVVJUFNTBGBDEDGBE

Slide 22

Slide 22 text

εΩʔϚઃܭ 22 w TDIFNBHSBQIRMʹεΩʔϚ 㲈ςʔϒϧઃܭ Λهड़͢Δ w σόΠεͷ৘ใ΋%ZOBNP%#ʹอ࣋ w !DPOOFDUJPOσΟϨΫςΟϒͰIBTNBOZͷؔ࿈ΛఆٛͰ͖Δ w !BVUIσΟϨΫςΟϒͰݖݶೝূ΋௥ՃͰ͖Δ

Slide 23

Slide 23 text

εΩʔϚઃܭ 23 w !LFZͰ(4*Λఆٛ͠ɺύʔςΟγϣϯΩʔEFWJDF*E ιʔτΩʔUJNFTUBNQʹ w !DPOOFDUJPOͰCFMPOHTUPͷؔ࿈Λఆٛ

Slide 24

Slide 24 text

ΧελϜΧςΰϦ 24 w "NQMJGZͰ͸ΧςΰϦ୯ҐͰػೳΛ௥Ճ͢Δ͜ͱ͕Ͱ͖Δ

Slide 25

Slide 25 text

ΧελϜΧςΰϦ 25 w "1* (SBQI2- ɺೝূɺϗεςΟϯά͸ "NQMJGZ$-*Λ࢖ͬͯ؆୯ʹ௥ՃͰ͖Δ w *P5$PSF͸ΧςΰϦͱͯ͠௥ՃͰ͖ͳ͍ ˠΧελϜΧςΰϦΛ࡞੒

Slide 26

Slide 26 text

ΧελϜΧςΰϦ 26 w $GOςϯϓϨʔτΛࣗ࡞͢Δ͜ͱͰɺଞΧςΰϦͱಉ༷ʹ؅ཧͰ͖Δ w BNQMJGZBEEJPUFOEQPJOUͱίϚϯυΛୟ͘͜ͱͰόοΫΤϯυͷػೳΛ௥Ճ

Slide 27

Slide 27 text

IoT Core→DynamoDB 27 w *P5$PSFͰ͸ϧʔϧΛ࡞੒͠ɺ42-ͱΞΫγϣϯΛఆٛ͢Δ͜ͱͰ ଞαʔϏε΁ड৴σʔλΛड͚౉͢

Slide 28

Slide 28 text

IoT Core→DynamoDB 28 w "NQMJGZͰੜ੒͞ΕΔ(SBQI2-ͷ࢓্༷ɺJE͸ඞਢͳͷͰ OFXVVJE ͱ͍͏'VODUJPOΛ࢖ͬͯੜ੒

Slide 29

Slide 29 text

IoT Core→DynamoDB 29 w ಉ༷ʹDSFBUFE"UɺVQEBUFE"U΋ඞਢ w ࣌ࠁͷจࣈྻΛ͍͍ײ͡ʹੜ੒͢Δ'VODUJPO͕ແͦ͞͏ͳͷͰμϛʔͷ஋Λࢦఆ

Slide 30

Slide 30 text

GraphQLͷݺͼग़͠ 30 w "NQMJGZ$-*͕TDIFNBHSBQIRMʹରԠͨ͠ΫϥΠΞϯτΛࣗಈੜ੒ͯ͘͠ΕΔ w ݺͼग़͚ͩ͢ͰόοΫΤϯυ͔Β৘ใΛऔಘͰ͖Δ

Slide 31

Slide 31 text

ग़དྷ্͕ͬͨը໘ 31 w /FYUKT.BUFSJBM6*ͰσόΠεͷ$36%ը໘Λߏங w άϥϑ͸SFBDUDIBSUKTΛ࢖༻

Slide 32

Slide 32 text

*P5Y

Slide 33

Slide 33 text

IoTόοΫΤϯυͷಈ࡞֬ೝʹ͸σόΠε͕ඞཁ 33 w%FWJDF͕σʔλΛૹ৴͠ͳ͍ͱ %ZOBNP%#͕ۭͬΆͷ··

Slide 34

Slide 34 text

σόΠεΛ༻ҙ͢Δͷ͸େม 34 wσόΠεࣗମͷௐୡʹ͕͔͔࣌ؒΔ wσόΠεͷ։ൃʹ͕͔͔࣌ؒΔ w୅ΘΓʹγϛϡϨʔλΛ࡞Δʁ wे෼ͳ͕࣌ؒऔΕͣยखؒʹͳΓ͕ͪ wࡉ͔͘৚݅Λม͑ΒΕΔ͔ʁ

Slide 35

Slide 35 text

mockmockͱ͸ 35 w *P5։ൃʹ͓͚ΔςετΛࢧԉ͢ΔαʔϏε w σόΠεͷ୅ΘΓʹԾ૝σόΠε NPDL ͕όοΫΤϯυ΁σʔλΛૹ৴͢Δ w NPDL͸࠷େສ୆·ͰىಈՄೳ Ͱݕࡧͯ͠Έ͍ͯͩ͘͞ NPDLNPDL ৄࡉ͸

Slide 36

Slide 36 text

mockmockΛ࢖͏ͱσόΠεແ͠Ͱಈ࡞֬ೝ͕Ͱ͖Δ 36 wNPDLNPDL͔ΒσʔλΛૹ৴͢Δ͜ͱͰ &&ͰγεςϜͷಈ࡞Λ֬ೝͰ͖Δ

Slide 37

Slide 37 text

NPDLNPDLͰσʔλΛૹ৴͢Δखॱ

Slide 38

Slide 38 text

ૹ৴ઌΛઃఆ͢Δ 38 w*P5$PSFͷΤϯυϙΠϯτʹ.255ͰσʔλΛૹ৴͢Δ w9ূ໌ॻʹରԠ

Slide 39

Slide 39 text

ૹΔσʔλΛઃఆ͢Δ 39 wηϯαͷ஋Λ࠶ݱ͢ΔάϥϑΛඳ͘ w࣮ࡍͷηϯαΒ͘͠ɺ஋ʹΏΒ͗Λ࣋ͨͤΔ͜ͱ΋Մೳ

Slide 40

Slide 40 text

ૹ৴ઌͷTopic΍ૹ৴ස౓Λઃఆ 40 w5PQJD͸NPDLຖʹม͍͑ͨͷͰɺม਺ΛຒΊࠐΉ wૹ৴ස౓΋೚ҙʹઃఆՄೳ ࠓճ͸ඵݻఆ

Slide 41

Slide 41 text

mockΛىಈ 41 wNPDLΛىಈ͢Δͱσʔλૹ৴͕։࢝ wҰఆ࣌ؒܦաޙʹࣗಈఀࢭ

Slide 42

Slide 42 text

άϥϑͷத਎͕දࣔ 42 wNPDLNPDLͰઃఆͨ͠άϥϑͱɺΞϓϦͰදࣔͨ͠άϥϑ͕Ұக ˠਖ਼͘͠ද͍ࣔͯ͠Δ͜ͱ͕֬ೝͰ͖ͨʂ

Slide 43

Slide 43 text

mockmockΛར༻͢ΔϝϦοτ: IoTγεςϜͷෛՙࢼݧ͕Ͱ͖Δ 43 w༗ྉϓϥϯͰ࠷େສ୆·ͰNPDLΛ૿΍ͤΔͷͰෛՙࢼݧʹ΋࢖͑Δ w%ZOBNP%#ͷΩϟύγςΟෆ଍΍"VUP4DBMJOHͷಈ࡞Λӡ༻લʹݕग़Ͱ͖Δ

Slide 44

Slide 44 text

mockmockΛར༻͢ΔϝϦοτ: ՄࢹԽํ๏ͷଥ౰ੑΛ֬ೝͰ͖Δ 44 wຊ෺ʹ͍ۙσʔλ͕ଘࡏ͢Δঢ়ଶͰը໘Λ֬ೝ͢Δͱɺؾ෇͖͕ಘΒΕ΍͍͢ wͦ΋ͦ΋ંΕઢάϥϑͰྑ͍ͷ͔ʁ wଞͷηϯαͷ஋Λಉ͡ը໘Ͱ֬ೝͰ͖ΔͱΘ͔Γ΍͍͢ͷͰ͸ʁ

Slide 45

Slide 45 text

"NQMJGZͱNPDLNPDLͰ *P5όοΫΤϯυΛεϐʔσΟʹߏஙͰ͖ͨʂ

Slide 46

Slide 46 text

·ͱΊ 46 w "NQMJGZΛ࢖͏͜ͱͰεϐʔσΟʹ*P5γεςϜΛߏஙͰ͖Δ w NPDLNPDLΛ࢖͏͜ͱͰεϐʔσΟʹςετͰ͖Δ w Έͳ͞·΋ͥͻ͓ࢼ͍ͩ͘͠͞ʂ *P5Y Y

Slide 47

Slide 47 text

͝ਗ਼ௌ͍͖ͨͩ͋Γ͕ͱ͏͍͟͝·ͨ͠ Thank You We are Hiring ! https://recruit.fusic.co.jp/

Slide 48

Slide 48 text

⚡ "QQFOEJY

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

FAQ: Next.jsΛ࢖ͬͨײ૝ 50 wࠓճ͸3FBDUͷϑϨʔϜϫʔΫͱ͍͏Ґஔ͚ͮͰ࢖͍ͬͯΔ wSFBDUSPVUFSͷಋೖ΍ઃఆΛ؆ུԽͰ͖Δ w443ʹ΋ରԠ ࠓճ͸࢖͍ͬͯͳ͍ w".1ରԠ ࠓճ͸࢖͍ͬͯͳ͍ w18"ରԠ ࠓճ͸࢖͍ͬͯͳ͍ w3FBDU͚ͩͰ։ൃ͢ΔΑΓ΋εϐʔσΟ wग़དྷ্͕ͬͨΞϓϦέʔγϣϯ΋αΫαΫಈ͘

Slide 51

Slide 51 text

FAQ: Firebaseͱൺ΂ͯͲ͏ʁ 51 wϑϩϯτΤϯυϞόΠϧΞϓϦΛ࡞Δͱ͍͏ҙຯͰ͸ 'JSFCBTF΋༗ྗީิ wҰํɺ"84*P5$PSFʹ૬౰͢ΔαʔϏε΍ػೳ͕ແ͍ҹ৅ w($1*P5$PSF͸ศརͰ͸͋Δ͕ 'JSFTUPSFͱ࿈ܞ͢Δʹ͸ $MPVE'VODUJPOT͕ඞཁͦ͏

Slide 52

Slide 52 text

FAQ: ElasticsearchΛ࢖Θͳ͍ཧ༝ 52 wऩू஋ͷՄࢹԽ͚ͩΛ࠷଎Ͱ࣮ݱ͢ΔͳΒ&MBTUJDTFBSDI͕࠷ద wݸผΧελϚΠζ͕೉͍͠ wσόΠε؅ཧͷ࢓૊Έͷ௥Ճ͕೉͍͠ wσβΠϯͷΧελϚΠζ͕೉͍͠ wىಈ࣌ؒʹൺྫͯ͠ίετ͕͔͔Δ

Slide 53

Slide 53 text

FAQ: Amazon Timestream͸Ͳ͏ͳͷ͔ʁ 53 wࢲ΋ؾʹͳΓ·͆͢ w*P5$PSFˠ5JNFTUSFBNͷॻ͖ࠐΈ͸Մೳ w"QQ4ZODͱͷ࿈ܞ͕͓ͦΒ͘·ͩ ࿈ܞͯ͘͠ΕΔͱ͍͍ͳʜ

Slide 54

Slide 54 text

FAQ: mockͷ୆਺Λ૿΍͢৔߹ɺઃఆ͕େมͰ͸ͳ͍͔ʁ 54 w$47ΠϯϙʔτͰҰׅઃఆՄೳ

Slide 55

Slide 55 text

mockmock: ͜Μͳσʔλ΋ੜ੒Ͱ͖·͢ - όέοτόϦϡʔδΣωϨʔλ 55 w͍͔ͭ͘ͷσʔληοτΛ༻ҙͯ͠ɺͦͷ͏ͪͷҰͭΛબ୒ wॱ൪ͷࢦఆ΍ϥϯμϜબ୒΋Մೳ

Slide 56

Slide 56 text

mockmock: ͜Μͳσʔλ΋ੜ੒Ͱ͖·͢ - ҐஔδΣωϨʔλ 56 w஍ਤ্ͰҠಈϧʔτΛࢦఆ͠ɺҠಈମͷ࠲ඪ৘ใΛૹ৴