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
What is Serverless. Why is Serverless.
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
堀家隆宏
January 24, 2019
Programming
1
100
What is Serverless. Why is Serverless.
堀家隆宏
January 24, 2019
Tweet
Share
More Decks by 堀家隆宏
See All by 堀家隆宏
オープンソースコミュニティで加速するサーバーレスの未来/serverless will be
horike37
4
760
auth0-meetup.pdf
horike37
1
280
What’s happening with Serverless Framework, and it lives with AWS SAM.
horike37
0
130
aws-with-functional-saas
horike37
2
210
serverless-with-oss
horike37
0
150
slsconftokyo
horike37
0
5.7k
slsconfworkshop
horike37
3
2.9k
Test Driven Development For Lambda
horike37
2
380
serverless-kyoto
horike37
1
180
Other Decks in Programming
See All in Programming
2026年 エンジニアリング自己学習法
yumechi
0
130
CSC307 Lecture 03
javiergs
PRO
1
490
AIと一緒にレガシーに向き合ってみた
nyafunta9858
0
140
AI前提で考えるiOSアプリのモダナイズ設計
yuukiw00w
0
220
開発者から情シスまで - 多様なユーザー層に届けるAPI提供戦略 / Postman API Night Okinawa 2026 Winter
tasshi
0
180
360° Signals in Angular: Signal Forms with SignalStore & Resources @ngLondon 01/2026
manfredsteyer
PRO
0
100
OCaml 5でモダンな並列プログラミングを Enjoyしよう!
haochenx
0
110
AI Schema Enrichment for your Oracle AI Database
thatjeffsmith
0
220
.NET Conf 2025 の興味のあるセッ ションを復習した / dotnet conf 2025 quick recap for backend engineer
tomohisa
0
130
AIによる高速開発をどう制御するか? ガードレール設置で開発速度と品質を両立させたチームの事例
tonkotsuboy_com
2
770
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
5.9k
CSC307 Lecture 09
javiergs
PRO
1
810
Featured
See All Featured
sira's awesome portfolio website redesign presentation
elsirapls
0
140
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
170
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
110
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
170
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
How Software Deployment tools have changed in the past 20 years
geshan
0
32k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.9k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
160
Being A Developer After 40
akosma
91
590k
GitHub's CSS Performance
jonrohan
1032
470k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
GraphQLとの向き合い方2022年版
quramy
50
14k
Transcript
What is Serverless Why is Serverless
ࣗݾհ ງՈོ • Serverless Operations LLC • Serverless Framework Core
mainainer • Serverless Step Functions, Serverless Atom Dashbord ։ൃऀ • Serverless Champion powerd by Serverless.inc
ServerlessͱԿ͔ ͦͷຊ࣭ʹ͍ͭͯ ղઆ͍͖ͯ͠·͢
• ٛͳҙຯͰ͍͏ͱαʔόʔίϯςφͷཧ͕ෆཁͳαʔϏεΛར༻ͨ͠ ΓɺͦΕΒΛ׆༻ͯ͠ΞϓϦέʔγϣϯΛͭͬͨ͘Γ͢Δߟ͑ํͱੈք؍ • ͜͜Ͱ͍͏ServerlessͱɺAWS LambdaͷΑ͏ͳFunction as a Serviceͱ ϚωʔδυαʔϏεͰߏ͞ΕͨγεςϜΞϓϦέʔγϣϯΛҙຯ͢Δ
ServerlessͱԿ͔ʁ 2014ʹAWS Lambda͕ొ͠ɺΫϥυͷΞʔΩςΫςΟϯάͷ෯͕ େ͖͕ͬͨ͘ɻ·ͨɺAPI GatewayKinesis, AWS IoTͳͲͷొʹΑΓ Ϋϥυͷ֎෦ͱͷσʔλ࿈ܞ͕༰қʹͳͬͨ
• αʔόίϯςφͳͲͷΠϯϑϥετϥΫνϟΛཧ͢Δ࡞ۀ͔Β։์͞Ε Δ • ίετͷ࠷దԽɻଟ͘ͷ߹҆͘ͳΔ • Ϋϥυͷ੍Լʹ͓͍ͯແݶͷεέʔϥϏϦςΟΛੜΉɻجຊతʹࣄલ ͷΩϟύγςΟ༧ෆཁ Serverlessͷ͍ΘΏΔϝϦοτ Ϋϥυʹ͜ΕΒΛΞτιʔε͢Δ͜ͱͰӡ༻ͰָΛ͢Δ
Serverless Overview
• AWS Lambda, Azure Functions, Google Cloud Functionsͱ͍ͬͨΞϓϦέʔ γϣϯίʔυΛ࣮ߦͯ͘͠ΕΔαʔϏε •
ঢ়ଶͷมԽʹΑΓΠϕϯτ͕ൃੜ͢Δ͜ͱͰίʔυ͕࣮ߦ͞ΕΔ • ಉ࣮࣌ߦͷ੍Լʹ͓͍ͯແݶʹεέʔϦϯά͢Δ(εέʔϦϯάͷࣄલ ༧ଌ͕ෆཁ) • ՝͕ۚίʔυͷ࣮ߦ࣌ؒ୯Ґ(ଟ͘ͷέʔεͰ҆͘ͳΔ) • ϛυϧΣΞͷΞοϓσʔτෆཁ(αʔόཧ͔Βͷ։์) Function as a Service
• DynamoDB, API gateway, Auth0, Stripeͱ͍ͬͨػೳͷΈΛఏڙͯ͘͠ΕΔ αʔϏε • ServerlessͷੈքͰ͜ΕΒΛFaaSΛؔͱݺͿ͜ͱͱରൺͯ͠ϛυϧΣ ΞͱݺΜͰΔ
Functional SaaS / BaaS
FaaSʹΑΔίʔυͷ࣮ߦڥͱ Functional SaaSʹΑΔػೳͷఏڙ γϯϓϧʹߟ͑Δͱ͜ͷ2ͭͷཁૉͰ ServerlessΞʔΩςΫνϟΓཱͭ
FaaSͷಛੑ
ΠϕϯτυϦϒϯͰ͋Γ ඇৗறܕͰ͋Δ͜ͱΛ೦಄ʹஔ͍ͨ ϓϩάϥϛϯάϞσϧͱͳΔ
• FaaSͷલஈʹ͋ΔαʔϏε্Ͱͷঢ়ଶͷมԽʹΑΓίʔυ͕࣮ߦ͞ΕΔ • PublisherͱSubscriberͱ͍͏ؔੑ • αʔόʔ্ͷมߋΛϙʔϦϯάͯ͠ݕ͢Δͷͱਅٯͷߟ͑ ΠϕϯτυϦϒϯͱ putObject Event trigger
• Πϕϯτ͕ൃੜͯ͠ίʔυ͕࣮ߦ͞ΕΔͱ͖ͷΈϓϩηε͕ଘࡏ͢Δ • ಥવϓϩηε͕མͪΔͱ͍͏͜ͱͳ͍ͨΊɺͦͷҙຯͰݎकͳγεςϜ ʹͰ͖Δ ඇৗறܕͱ
• Πϕϯτ͕ൃੜͨ࣌͠ͷΈϓϩηεΛىಈͤ͞Εྑ͍ͷͰৗʹϓϩηεΛ ্ཱ͓ͪ͛ͯ͘ඞཁ͕ͳ͍ɻΠϕϯτυϦϒϯ͔ͩΒͦ͜ඇৗறͳϓϩηε ͷΈ͕Γཱͭ • ϓϩηε͕ৗʹଘࡏ͍ͯ͠ΔΘ͚Ͱͳ͍ͨΊɺFunctionͰσʔλͷอ࣋ Λલఏͱ࣮ͨ͠Ͱ͖ͳ͍ɻͭ·ΓࣗવͱεςʔτϨεͳঢ়ଶͱͳΔɻ݁ ՌɺεςʔτΛ࣋ͨͳ͍͜ͱͰεέʔϥϏϦςΟΛ࣮ݱͰ͖Δ • Πϕϯτ͕ൃੜͨ࣌͠ͷΈϓϩηεΛىಈͤ͞Εྑ͍ͷͰɺ࣮ߦ࣌ؒʹͷ
Έ՝ۚ͢Εྑ͍ͱ͍͏࠷దԽ͕Γཱͭ ΠϕϯτυϦϒϯͱඇৗற͕ ͨΒ͢ϝϦοτ ͜ΕΒͷ੍݅ʹΑΓFaaSͷϝϦοτ͕ ࠷େݶ׆͔ͤΔΈʹͳ͍ͬͯΔ
Functional SaaSͷಛੑ
ެࣜͷυΩϡϝϯτΛಡΜͰਖ਼͘͠ ཧղͷ্ͰɺదࡐదॴͰར༻͠ɺͦ ͷ੍݅ԼͰ࠷େݶͷੑೳΛҾ͖ ग़ͯ͠Δ͜ͱ͕େࣄ
Kinesis Stream • େྔͷσʔλετϦʔϜΛϦΞϧλΠϜͰऩूͯ͠ɺॲཧΛͤ͞ΔͨΊͷα ʔϏε • ͨ͘͞ΜͷIoTσόΠεͷόοΫΤϯυͷड͚ޱͱͯ͠ར༻͞ΕΔέʔε͕ଟ ͍ • ड͚औͬͨσʔλBatch
sizeͷ୯ҐͰLambda͕ड͚औΓɺޙଓͷॲཧΛ࣮ ࢪ͢ΔɻKinesisͰγʔέϯεׂ͕ΓৼΒΕΔ͜ͱͰॱংอূ͋Δɻྻ ʹσʔλΛॲཧ͍ͤͨ࣌͞ʹKinesisΛڬΉ
DynamoDB • ϚωʔδυܕͷNo SQLσʔλϕʔεɻେྔͷϫʔΫϩʔυͷσʔλΛӬଓ Խͤ͞Δͷʹ͍͍ͯΔ • Partition KeyʹΑΔશҰகͱIndexʹΑΔ୳ࡧ͕Մೳ • ύϑΥʔϚϯεΛ࠷େʹͯ͠εϧʔϓοτίετΛ࠷খʹ͢ΔͨΊʹϓϥΫ
ςΟεʹԊͬͨςʔϒϧઃܭ͕ඞཁͱͳΔ ɹɾΩʔͷϋογϡͰPartition͕ࢄ -> ۉʹͳΔΑ͏ͳΩʔઃܭ ɹɾεΩʔϚϨεDBɻεΩʔϚ͝ͱʹςʔϒϧΛ͚Δͱ͍͏ൃ͕ ɹɹͦͦͳ͍ɻΩϟύγςΟཧͷͨΊʹςʔϒϧΞϓϦέʔγϣϯ ɹɹͰ1ͭʹ͢Δ͜ͱ͕ཧཧ
API Gateway • ։ൃऀ͕ API Λ࡞ɺɺอकɺࢹɺอޢͰ͖ΔαʔϏε • SPAͰWebΞϓϦέʔγϣϯΛ։ൃ͢Δ߹ͷόοΫΤϯυAPIͱͯ͠Θ ΕΔέʔε͕Α͋͘Δ •
جຊతʹ֎෦͔ΒͷೖྗͷೖΓޱͱͯ͠ɺ1ର1ͷؔੑͰσʔλΛѻ͏ɻ ೖྗνΣοΫͷલॲཧ͚ͩΛ࣮ࢪͯ͠ɺޙSNSDynamoDBʹܨ͙͜ͱ ͰޙଓͷॲཧΛ࣮ࢪͤ͞Δ
ΞʔΫςΫνϟͱͯ͠ͷಛੑ
ΠϕϯτυϦϒϯΞʔΩςΫνϟ Service Function Service Function Function Event Event ΠϕϯτυϦϒϯͳϓϩάϥϛϯάϞσϧͱͳΔ͜ͱʹΑΓ ࣗવͱΠϕϯτ͕चͭͳ͗ʹൖ͍ͯ͘͠ΞʔΩςΫνϟͱͳΔ
Service Service
AWSͷαʔϏεʹஔ͖͑Δͱ ͜Μͳײ͡ API Gateway Lambda SNS DynamoDB
ΠϕϯτυϦϒϯΞʔΩςΫνϟ Publisher Subscriber Event • جຊతʹPublisherͱSubscriberؒͰϝοηʔδΛૹड৴͢Δؔੑ • Publisher͕ࣗૹ৴͢ΔΠϕϯτͷ͜ͱ͔͠Βͳ͍ • Subscriber͕ࣗͲͷΠϕϯτΛड͚औΔ͔͔͠Βͳ͍
• ͜ΕʹΑΓγϯϓϧʹૄͷؔੑΛอͭ
ΠϕϯτυϦϒϯΞʔΩςΫνϟ Կ͕خ͍͠ͷ͔
ΠϕϯτͷSubscriberͱPublisherͷؔੑΛมߋ͢Δ͜ͱͰ γϯϓϧʹػೳՃมߋ͕࣮ݱͰ͖Δ Service Function Service Function Function Event Event ৽ػೳ
Կ͕خ͍͠ͷ͔ ৽ػೳ
Service Function Function Event Function Function Service Service Function Service
جຊతʹґଘؔૄͰ͋ΓͭͭҰํʹू͞ΕΔͨΊɺ σʔλͷྲྀΕͷݟ௨͕͠ඇৗʹྑ͘ͳΔ Կ͕خ͍͠ͷ͔
֤αʔϏεͷ੍݅ԼͰ࣮Λߦ ͏͜ͱͰࣗવͱϚΠΫϩαʔϏεΞ ʔΫςΫνϟͷϝϦοτΛڗडͰ͖ ΔΑ͏ʹͳΔ
·ͱΊ
·ͱΊ • ServerlessΞʔΩςΫνϟ୯७ʹFaaSͱFunctional SaaSͷΈ߹ΘͤͰ ͳΓ͍ͨͬͯΔ • FaaSͱFunctional SaaSͷ੍ࣄ߲Λਖ਼͘͠ཧղͯ͠దࡐదॴͰ͏ɻ੍ ੍ݶͰͳ͍ɻͦͷ੍ʹै͏͜ͱͰ࠷େݶͷੑೳΛൃشͰ͖Δͱ͍͏͜ ͱ
• ServerlessΞʔΩςΫνϟෳࡶͰͳ͍ɻΉ͠Ζมߋʹڧ͘σʔλͷྲྀΕ ͕͔Γ͘͢ͳΔɻϚΠΫϩαʔϏεͷϝϦοτΛਖ਼͘͠ڗडͰ͖Δ
Thank You