Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
サーバレスアーキテクチャ入門
morihirok
February 13, 2018
Programming
0
200
サーバレスアーキテクチャ入門
社内勉強会で話したときのスライドです。
morihirok
February 13, 2018
Tweet
Share
More Decks by morihirok
See All by morihirok
1日5分!子育て中もインプットを続ける工夫
morihirok
1
370
rarray_value.pdf
morihirok
0
1.2k
失敗しても大丈夫!ひとりWebサービスのすゝめ
morihirok
2
420
try_to_making_a_gem_with_pattern_matching.pdf
morihirok
0
130
introduce_pattern_matching_with_mongo-clarify
morihirok
0
69
エンジニアの勉強法
morihirok
0
340
Other Decks in Programming
See All in Programming
Workshop on Jetpack compose
aldefy
0
140
爆速の日経電子版開発の今
shinyaigeek
2
560
OIDC仕様に準拠した Makuake ID連携基盤構築の裏側
ymtdzzz
0
480
Hasura の Relationship と権限管理
karszawa
0
170
Zynq MP SoC で楽しむエッジコンピューティング ~RTLプログラミングのススメ~
ryuz88
0
330
23年のJavaトレンドは?Quarkusで理解するコンテナネイティブJava
tatsuya1bm
1
120
domain層のモジュール化 / MoT TechTalk #15
mot_techtalk
0
110
Glance App Widgetでウィジェットを作ろう / MoT TechTalk #15
mot_techtalk
0
110
TokyoR#103_DataProcessing
kilometer
0
530
An Advanced Introduction to R
nicetak
0
1.7k
監視せなあかんし、五大紙だけにオオカミってな🐺🐺🐺🐺🐺
sadnessojisan
2
1.4k
Amebaブログの会員画面システム刷新の道程
ryotasugawara
1
220
Featured
See All Featured
A designer walks into a library…
pauljervisheath
199
16k
Embracing the Ebb and Flow
colly
75
3.6k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
29
7.9k
WebSockets: Embracing the real-time Web
robhawkes
58
6k
How STYLIGHT went responsive
nonsquared
89
4.2k
Building Flexible Design Systems
yeseniaperezcruz
314
35k
Atom: Resistance is Futile
akmur
256
24k
Keith and Marios Guide to Fast Websites
keithpitt
407
21k
Robots, Beer and Maslow
schacon
154
7.3k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
31
20k
Building Adaptive Systems
keathley
27
1.3k
Mobile First: as difficult as doing things right
swwweet
213
7.8k
Transcript
αʔόϨε ΞʔΩςΫνϟ ೖ
About Me • ߂ Ұໜ • Ruby / JavaScript(Node.js) /
C • Ruby on Rails / Serverless / React.js ϏΞόογϡεϐʔΧʔେืूʂ
αʔόϨε ΞʔΩςΫνϟ ͱ
ࡶͳઆ໌ • AWS Lambda • Google Cloud Functions • Azure
Functions • ͱ͔ͷFaaS(Function as a Service)Λ͏ ΞʔΩςΫνϟ
FaaS ͱ
αʔόͷߏஙɾཧΛඞཁͱ͠ͳ͍ Function࣮ߦڥ • ࣮ߦ͍ͨؔ͠(ίʔυ)Λஔ͢Εɺ࣮ߦ ΫϥυαʔϏεଆ͕Α͠ͳʹͬͯ͘ΕΔ • ࣮ߦྔɾ࣮ߦ࣌ؒʹԠͨ͡՝ۚํࣜ • ༷ʑͳΠϕϯτΛτϦΨʔͱͯؔ͠Λ࣮ߦ ͢Δ͜ͱ͕Ͱ͖Δ
ैདྷͷWebΞϓϦέʔγϣϯͩͱ… • αʔό͕ॲཧՄೳ͔ࢹ͢Δඞཁ͕͋Δ • ٸͳτϥϑΟοΫ૿େͰམͪΔةݥ͕͋Δ (ώϧφϯσε๒ɺ࢝etc…) • ༧࠷େτϥϑΟοΫʹ߹ΘͤͯαʔόΛௐ ୡ͢Δͱɺ௨ৗ࣌τϥϑΟοΫ࣌ʹίεύ͕ ѱ͘ͳΔ
FaaSΛ͏ͱ… • αʔόࢹͷඞཁ͕ͳ͘ͳΔ • ٸͳτϥϑΟοΫ͕͖ͯΫϥυαʔϏε ͕શ෦దʹ͍ͯ͘͞ΕΔ • ༻ͷίετ͔͔͔͠Βͳ͍ͷͰαʔόΛ ϑϧͰௐୡ͢ΔΑΓ҆͘ͳΔ߹͕ଟ͍
࣮ࡍʹಈ͍ͯͨΓ ։ൃͯ͠Δը໘ΛݟΔͷ͕ ૣ͍Ͱ͢
σϞΞϓϦ֓ཁ • S3(ΫϥυετϨʔδ)͔ΒΞηοτ͕৴͞ΕΔ • API ܦ༝ͰLambda͕࣮ߦ͞ΕɺAWS͕࣋ͭϑϧϚ ωʔδυͳαʔϏε(Web APIܦ༝Ͱݺͼग़ͤΔαʔ Ϗε)Ͱ͋ΔDynamo DBʹσʔλΛอଘ͢Δ
• Dynamo DBͷอଘΛτϦΨʔͱͯ͠LambdaΛ࣮ ߦͤ͞ɺอଘ༰ΛSlackʹ௨͢Δ
σϞΞϓϦ֓ཁ
σϞΞϓϦ͕ैདྷͷΞϓϦߏͩͬͨ߹ !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%# ^ ^
ʮ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
!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௨͔Βϝʔϧૹ৴ʹ͠Α͏ʂʯ ͱ͍͏༷มߋ͕ೖΔͱ… ਏ͍ະདྷ͕ ݟ͑ͯ͘Δʜ
σϞΞϓϦͷߏͰ༷มߋ͕ೖͬͨ߹ NBJM
σϞΞϓϦͷߏͰ༷มߋ͕ೖͬͨ߹ NBJM ͜͜Λมߋ͢ΔͷΈʂ
σϞΞϓϦͷߏͰ༷มߋ͕ೖͬͨ߹ • ϩάͷग़ྗΛLambdaͷ࣮ߦΠϕϯτʹ͢Δͱ Ξϥʔτܥͷ࣮͕ͦ͢͠͏ • όϦσʔγϣϯॲཧAPI GatewayΛ࣮ߦΠϕ ϯτʹ͢Δ͜ͱͰରԠͰ͖ͦ͏ • ଞσʔλετΞରԠDynamo
DBͷอଘΛ ࣮ߦΠϕϯτʹ͢ΕΑͦ͞͏
ΠϕϯτۦಈͰ ૄ݁߹͔ͭ αʔόཧ͕ෆཁͳ ΞʔΩςΫνϟ
αʔόϨε ΞʔΩςΫνϟ
֤ʑͷػೳ Πϕϯτ͔Web APIΛܦ༝ͯ͠ ࣮ߦ͞ΕΔͷΈ
ϚΠΫϩαʔϏεͷ ࣮ݱ
ಋೖࣄྫ • υϥΰϯΫΤετX (גࣜձࣾεΫΤΞɾΤχοΫε) • ܦిࢠ൛ (גࣜձࣾ ຊܦࡁ৽ฉࣾ)
ࢀߟ: https://aws.amazon.com/jp/solutions/case-studies/
σϝϦοτ • ࣮ߦϥϯλΠϜ͕ݶΒΕΔ • Node.js, Python, C#, Java, Go(2018/2ݱࡏ) •
ࢥ͍͖ͬΓϕϯμʔϩοΫΠϯ͢Δ • αʔυύʔςΟʔͷOSS͕֤Ϋϥυαʔ ϏεͷࠩҟΛٵऩͯ͘͠Εͳ͍͔ͳ͊
σϝϦοτ • ֶशίετ݁ߏߴ͍ • Πϕϯτۦಈͱ͍͏ߟ͑ํ • ϚΠΫϩαʔϏεͷܮ • ֤ΫϥυαʔϏεͷࣝ
σϝϦοτ ʮαʔόϨεͬͯαʔόࢹ͠ͳ͍͍ͯ͘ΜͰ͠ΐʁʯ ʮͱΓ͋͑ͣDBطଘͷRDBMS͓͏ʯ ʮEC2Λϥούʔͱͯ͠ஔ͍ͱ͚͍͍Μ͡Όͳ͍ʁʯ ↑่յͷংষ
ੋඇࢼͯ͠Έ͍ͯͩ͘͞