Slide 1

Slide 1 text

αʔόϨε ΞʔΩςΫνϟ ೖ໳

Slide 2

Slide 2 text

About Me • ৿߂ Ұໜ • Ruby / JavaScript(Node.js) / C • Ruby on Rails / Serverless / React.js
 ϏΞόογϡεϐʔΧʔେืूʂ

Slide 3

Slide 3 text

αʔόϨε ΞʔΩςΫνϟ ͱ͸

Slide 4

Slide 4 text

ࡶͳઆ໌ • AWS Lambda • Google Cloud Functions • Azure Functions • ͱ͔ͷFaaS(Function as a Service)Λ࢖͏
 ΞʔΩςΫνϟ

Slide 5

Slide 5 text

FaaS ͱ͸

Slide 6

Slide 6 text

αʔόͷߏஙɾ؅ཧΛඞཁͱ͠ͳ͍ Function࣮ߦ؀ڥ • ࣮ߦ͍ͨؔ͠਺(ίʔυ)Λ഑ஔ͢Ε͹ɺ࣮ߦ͸ Ϋϥ΢υαʔϏεଆ͕Α͠ͳʹ΍ͬͯ͘ΕΔ • ࣮ߦྔɾ࣮ߦ࣌ؒʹԠͨ͡՝ۚํࣜ • ༷ʑͳΠϕϯτΛτϦΨʔͱͯؔ͠਺Λ࣮ߦ ͢Δ͜ͱ͕Ͱ͖Δ

Slide 7

Slide 7 text

ैདྷͷWebΞϓϦέʔγϣϯͩͱ… • αʔό͕ॲཧՄೳ͔؂ࢹ͢Δඞཁ͕͋Δ • ٸͳτϥϑΟοΫ૿େͰམͪΔةݥ͕͋Δ
 (ώϧφϯσε๒ɺ೥຤೥࢝etc…) • ༧૝࠷େτϥϑΟοΫʹ߹ΘͤͯαʔόΛௐ ୡ͢Δͱɺ௨ৗ࣌τϥϑΟοΫ࣌ʹίεύ͕ ѱ͘ͳΔ

Slide 8

Slide 8 text

FaaSΛ࢖͏ͱ… • αʔό؂ࢹͷඞཁ͕ͳ͘ͳΔ • ٸͳτϥϑΟοΫ͕͖ͯ΋Ϋϥ΢υαʔϏε ͕શ෦ద੾ʹ͞͹͍ͯ͘ΕΔ • ࢖༻෼ͷίετ͔͔͔͠Βͳ͍ͷͰαʔόΛ ϑϧͰௐୡ͢ΔΑΓ҆͘ͳΔ৔߹͕ଟ͍

Slide 9

Slide 9 text

࣮ࡍʹಈ͍ͯͨΓ ։ൃͯ͠Δը໘ΛݟΔͷ͕ ૣ͍Ͱ͢

Slide 10

Slide 10 text

σϞΞϓϦ֓ཁ • S3(Ϋϥ΢υετϨʔδ)͔ΒΞηοτ͕഑৴͞ΕΔ • API ܦ༝ͰLambda͕࣮ߦ͞ΕɺAWS͕࣋ͭϑϧϚ ωʔδυͳαʔϏε(Web APIܦ༝Ͱݺͼग़ͤΔαʔ Ϗε)Ͱ͋ΔDynamo DBʹσʔλΛอଘ͢Δ • Dynamo DB΁ͷอଘΛτϦΨʔͱͯ͠LambdaΛ࣮ ߦͤ͞ɺอଘ಺༰ΛSlackʹ௨஌͢Δ

Slide 11

Slide 11 text

σϞΞϓϦ֓ཁ

Slide 12

Slide 12 text

σϞΞϓϦ͕ैདྷͷΞϓϦߏ੒ͩͬͨ৔߹ !3FTU$POUSPMMFS DMBTTDPOUSPMMFS\ !3FRVFTU.BQQJOH tDSFBUFu QVCMJDWPJEDSFBUF 3FRSFR \ 4USJOHNTHSFRNTH j ᬊᅊ j %ZOBNPECOFX%ZOBNP ECTBWF JUFN j ᬊᅊ j 4MBDLTMBDLOFX4MBDL4FSWJDF TMBDLQPTU JUFN ^ ^ DMBTT4MBDL4FSWJDF\ QVCMJDWPJEQPTU 4USJOHNTH \ 1PTUUP4MBDL ^ ^ DMBTT%ZOBNP\ QVCMJDWPJETBWF 4USJOHNTH \ 4BWFUP%# ^ ^

Slide 13

Slide 13 text

ʮSlack௨஌͔Βϝʔϧૹ৴ʹ͠Α͏ʂʯ ͱ͍͏࢓༷มߋ͕ೖΔͱ… !3FTU$POUSPMMFS DMBTTDPOUSPMMFS\ !3FRVFTU.BQQJOH tDSFBUFu QVCMJDWPJEDSFBUF 3FRSFR \ 4USJOHNTHSFRNTH j ᬊᅊ j %ZOBNPECOFX%ZOBNP ECTBWF JUFN j ᬊᅊ j 4MBDL͝ΛϦ⑲ϰͽม๞ .BJMNBJMOFX.BJM4FSWJDF NBJMQPTU JUFN ^ DMBTT.BJM4FSWJDF\ QVCMJDWPJEQPTU 4USJOHNTH \ 4FOEBONBJM ^ ^ DMBTT%ZOBNP\ QVCMJDWPJETBWF 4USJOHNTH \ 4BWFUP%# ^ ^ NBJM

Slide 14

Slide 14 text

!3FTU$POUSPMMFS DMBTTDPOUSPMMFS\ !3FRVFTU.BQQJOH tDSFBUFu QVCMJDWPJEDSFBUF 3FRSFR \ 4USJOHNTHSFRNTH ϕϯό⑲μϬϸ ᳔ό⑲τξύΧରԠ %ZOBNPECOFX%ZOBNP ECTBWF JUFN έϮ⑲ϔϸώϯϸε ͔ΞΔͩͱ͖ ͥΞΔͩͱ͖ 4MBDL͝ΛϦ⑲ϰͽม๞ .BJMNBJMOFX.BJM4FSWJDF NBJMQPTU JUFN ^ DMBTT.BJM4FSWJDF\ QVCMJDWPJEQPTU 4USJOHNTH \ 4FOEBONBJM ^ ^ DMBTT%ZOBNP\ QVCMJDWPJETBWF 4USJOHNTH \ 4BWFUP%# ^ ^ NBJM ʮSlack௨஌͔Βϝʔϧૹ৴ʹ͠Α͏ʂʯ ͱ͍͏࢓༷มߋ͕ೖΔͱ… ਏ͍ະདྷ͕ ݟ͑ͯ͘Δʜ

Slide 15

Slide 15 text

σϞΞϓϦͷߏ੒Ͱ࢓༷มߋ͕ೖͬͨ৔߹ NBJM

Slide 16

Slide 16 text

σϞΞϓϦͷߏ੒Ͱ࢓༷มߋ͕ೖͬͨ৔߹ NBJM ͜͜Λมߋ͢ΔͷΈʂ

Slide 17

Slide 17 text

σϞΞϓϦͷߏ੒Ͱ࢓༷มߋ͕ೖͬͨ৔߹ • ϩάͷग़ྗΛLambdaͷ࣮ߦΠϕϯτʹ͢Δͱ Ξϥʔτܥͷ࣮૷͕͠΍ͦ͢͏ • όϦσʔγϣϯॲཧ΋API GatewayΛ࣮ߦΠϕ ϯτʹ͢Δ͜ͱͰରԠͰ͖ͦ͏ • ଞσʔλετΞରԠ΋Dynamo DB΁ͷอଘΛ ࣮ߦΠϕϯτʹ͢Ε͹Αͦ͞͏

Slide 18

Slide 18 text

ΠϕϯτۦಈͰ ૄ݁߹͔ͭ αʔό؅ཧ͕ෆཁͳ ΞʔΩςΫνϟ

Slide 19

Slide 19 text

αʔόϨε ΞʔΩςΫνϟ

Slide 20

Slide 20 text

֤ʑͷػೳ͸ Πϕϯτ͔Web APIΛܦ༝ͯ͠ ࣮ߦ͞ΕΔͷΈ

Slide 21

Slide 21 text

ϚΠΫϩαʔϏεͷ ࣮ݱ

Slide 22

Slide 22 text

ಋೖࣄྫ • υϥΰϯΫΤετX 
 (גࣜձࣾεΫΤΞɾΤχοΫε) • ೔ܦిࢠ൛
 (גࣜձࣾ ೔ຊܦࡁ৽ฉࣾ)
 
 ࢀߟ: https://aws.amazon.com/jp/solutions/case-studies/

Slide 23

Slide 23 text

σϝϦοτ • ࣮ߦϥϯλΠϜ͕ݶΒΕΔ • Node.js, Python, C#, Java, Go(2018/2ݱࡏ) • ࢥ͍͖ͬΓϕϯμʔϩοΫΠϯ͢Δ • αʔυύʔςΟʔ੡ͷOSS͕֤Ϋϥ΢υαʔ ϏεͷࠩҟΛٵऩͯ͘͠Εͳ͍͔ͳ͊

Slide 24

Slide 24 text

σϝϦοτ • ֶशίετ͸݁ߏߴ͍ • Πϕϯτۦಈͱ͍͏ߟ͑ํ • ϚΠΫϩαʔϏε΁ͷ଄ܮ • ֤Ϋϥ΢υαʔϏεͷ஌ࣝ

Slide 25

Slide 25 text

σϝϦοτ ʮαʔόϨεͬͯαʔό؂ࢹ͠ͳ͍͍ͯ͘ΜͰ͠ΐʁʯ 
 ʮͱΓ͋͑ͣDB͸طଘͷRDBMS࢖͓͏ʯ 
 ʮEC2Λϥούʔͱͯ͠ஔ͍ͱ͚͹͍͍Μ͡Όͳ͍ʁʯ 
 ↑่յͷংষ

Slide 26

Slide 26 text

ੋඇࢼͯ͠Έ͍ͯͩ͘͞