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サーバーレスアーキテクチャ導入の基礎とその概念/serverless-webinar-01
Search
Serverless Operations
July 03, 2020
Programming
0
590
実践AWSサーバーレスアーキテクチャ導入の基礎とその概念/serverless-webinar-01
Serverless Operations
July 03, 2020
Tweet
Share
More Decks by Serverless Operations
See All by Serverless Operations
Lambdalithアーキテクチャにより大きく進化するWeb APIの世界/lambdalith
slsops
5
730
ITベンダーから見る内製化支援の本質/in-house-dev
slsops
1
660
Case Study for Repurposing Video Content With Generative AI / AWS Community Day Taiwan 2024
slsops
0
370
サーバーレスなユーザー認証認可の考慮事項と実践的プラクティス紹介 / slsdays-tokyo-2024
slsops
10
4.1k
サーバーレスで負荷試験を行う必要性と実践的プラクティスの紹介/slsdays-tokyo-2023
slsops
4
2.5k
Serverless Web Hosting Strategy For Modern Front-end Application
slsops
0
390
定期料金と従量課金を組み合わせたサブ スクリプション型サービスを作る/jp-stripe-02
slsops
0
560
サーバーレス時代に共創型受託開発をやることの価値/sls-jutaku
slsops
0
840
Auth0とクラウドサービスを組み合わせて作るメディアコマースの開発事例/auth0-media-commerce
slsops
0
670
Other Decks in Programming
See All in Programming
変化を楽しむエンジニアリング ~ いままでとこれから ~
murajun1978
0
710
The State of Fluid (2025)
s2b
0
120
ゲームの物理
fadis
3
970
Claude Code と OpenAI o3 で メタデータ情報を作る
laket
0
120
Reactの歴史を振り返る
tutinoko
1
180
Nuances on Kubernetes - RubyConf Taiwan 2025
envek
0
140
Strands Agents で実現する名刺解析アーキテクチャ
omiya0555
1
120
新世界の理解
koriym
0
130
CEDEC2025 長期運営ゲームをあと10年続けるための0から始める自動テスト ~4000項目を50%自動化し、月1→毎日実行にした3年間~
akatsukigames_tech
0
120
SwiftでMCPサーバーを作ろう!
giginet
PRO
2
230
Go製CLIツールをnpmで配布するには
syumai
2
1.2k
React 使いじゃなくても知っておきたい教養としての React
oukayuka
18
5.5k
Featured
See All Featured
Being A Developer After 40
akosma
90
590k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
Music & Morning Musume
bryan
46
6.7k
How STYLIGHT went responsive
nonsquared
100
5.7k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Writing Fast Ruby
sferik
628
62k
Transcript
4FSWFSMFTT0QFSBUJPOTງՈོ ࣮ફAWSαʔόʔϨεΞʔΩςΫνϟ ಋೖͷجૅͱͦͷ֓೦
ࣗݾհ גࣜձࣾServerless Operations CEO ΦʔϓϯιʔεLover αʔόʔϨεϛʔτΞοϓOrganizer
αʔόʔϨεͰ ΫϥυͷՁΛ࠷େݶʹ Serverless Operations ͜Ε·ͰάϩʔόϧͷୈҰઢͰ ഓ͖ͬͯͨΫϥυٕज़ʢ"84ʵΞϚκϯΣϒαʔϏεʣͷ ๛ͳ࣮ͱݟΛ׆͔͠ɺ͓٬͞·ͷαʔόʔϨε ʹؔ͢Δ͞·͟·ͳ՝Λղܾ͠·͢ɻ ձࣾհ serverless.co.jp
803,
0VS0QFO4PVSDF1SPEVDUT
ͳͥαʔόʔϨεͳͷ͔ʁ
࣮ऀͷϦιʔεΛຊ࣭ʹϑΥʔΧε͢ΔͨΊ ྫ͑ήʔϜιϑτΛ։ൃ͢Δ࣌ʹϑΥʔΧε͍ͨ͠ͷήʔϜͷγφϦΦͷϓϩάϥ ϜɻͦΕҎ֎ͷ։ൃӡ༻Ͱ͖ΔݶΓΫϥυʹΞτιʔε ։ൃऀͷϦιʔεΛຊ࣭తͳ͜ͱʹूதͯ͠ɺͦΕҎ֎ͷίετग़དྷΔݶΓݮ͢Δ ΠϯϑϥɺೝূೝՄɺܾࡁγεςϜɺϝʔϧ৴ͳͲͷߏஙӡ༻͠ͳ͍ɻ Ϋϥυ4BB4ͷαʔϏεΛͰ͖Δ͚ͩར༻͢Δ͜ͱͰຊ࣭ʹूத͢Δ
ϓϩμΫτͷ࣭ΛΞʔΩςΫνϟϨϕϧͰ୲อ ग़དྷΔݶΓোΛൃੜͤ͞ͳ͍ͨΊʹΞʔΩςΫνϟϨϕϧͰεέʔϥϏϦςΟͱ ߴՄ༻ੑΛ࣮ݱ͢Δ ͦͷͨΊʹΫϥυͷఏڙ͢ΔαʔόʔϨεͳαʔϏεΛ׆༻͢Δ "84(PPHMFͷ༏लͳਓ͕ͨͪ࡞ͬͨΠϯϑϥͷΈαϙʔτͷ্ʹ ͔ͬΔ͜ͱͷ҆৺ײɻ
ίετͷݮ ΞΫηε͕গͳ͍͏ͪѹతʹίετ͕͍҆ ͭ·Γখ͘͞ॳΊͯେ͖͘εέʔϧ͍͢͠ ࣮ߦ͞Εͨ࣌ؒʹରͯ͠՝ۚ͞ΕΔΈʹΑΓɺ ࣮֬ʹίετ࠷దԽ͞ΕΔɻΠϯϑϥͷোΫϥυͷதʹ͍Δ༏लͳ ਓୡʹͤΔ͜ͱͰΠϯγσϯτίετൃੜͤ͞ͳ͍
ͭ·Γ ΞʔΩςΫνϟϨϕϧͰߴ࣭͔ͭίετΛ࠷ద Խͨ͠ঢ়ଶͰɺϓϩμΫτͷຊ࣭తͳ։ൃʹϦιʔ εΛूத͢ΔͨΊʹαʔόʔϨεͳαʔϏεΛ׆༻ ͯ͠࡞ΔબΛ͢Δ
αʔόʔϨεͳαʔϏεͱʁ ͪΌΜͱ"84ͷ༻ޠͰ͍͏ͱ ϑϧϚωʔδυαʔϏεͱ͍͍·͢
ϑϧϚωʔδυαʔϏεͱ "84ͷαʔϏεͷதͰͦͷػೳ͚ͩͰͳ͘ߏஙӡ༻ཧͳͲҰׅͯ͠ఏڙͯ͘͠ ΕΔͷ͕ϚωʔδυαʔϏε ͦΕʹ߹ΘͤͯɺਫฏํͷεέʔϦϯάԽʹΑΔՄ༻ੑɻͦͷσΟεΫ༰ྔ ύʔςΟγϣχϯάͷཧશؚͯΊͯαʔϏεͱͯ͠ఏڙͯ͘͠ΕΔͷΛϑϧϚ ωʔδυαʔϏεͱ͍͏
"84ͷϑϧϚωʔδυαʔϏε 'BB4 ΞϓϦέʔγϣϯ %#ɾετϨʔδ ϝοηʔδϯά ετϦʔϜ "1*(BUFXBZ %ZOBNP%# "QQ4ZOD 4
-BNCEB 4/4 424 &WFOU#SJEHF ,JOFTJT
·ͣAWS Lambda(FaaS)ͱ ͦͷΞʔΩςΫνϟʹεϙοτΛͯΔ
"84-BNCEB 'BB4 ͷಛͱϝϦοτ ΞϓϦέʔγϣϯίʔυΛ࣮ߦͯ͘͠ΕΔαʔϏε Πϕϯτ͕ൃੜ͢Δ͜ͱͰίʔυ͕࣮ߦ͞ΕΔ ࣗಈతʹฒྻํʹεέʔϦϯάͯ͘͠ΕΔ ίʔυ͕࣮ߦ͞Εͨ࣌ؒʹରͯ͠ͷ՝ۚɻΞϓϦέʔγϣϯͷಛੑ࣍ୈͰେ͖ͳݮ ݟࠐΊΔ ίʔυΛಈ͔ͨ͢ΊͷϓϥοτϑΥʔϜͷཧෆཁ
ͳͥ͜͏͍ͬͨϝϦοτ͕ ੜ·ΕΔͷ͔
ϙΠϯτLambda͕Πϕϯτۦಈ͔ͭ εςʔτϨεʹઃܭ͞Ε͍ͯΔ͜ͱ
εςʔτϨεͱ ؆୯ʹݴ͏ͱӬଓతͳσʔλΛ-BNCEBͷ෦Ͱอ࣋͠ͳ ͍ɻͦΕʹΑΓਫฏํͷεέʔϧ͕ՄೳʹͳΔ εέʔϧͷཧ"84͕શʹϑϧϚωʔδυͰߦͬͯ͘Ε Δ ͭ·Γɺ࣮ऀ͕εςʔτϨεʹ-BNCEBΛ࣮͢Δ͚ͩͰɺޙτϥϑΟοΫʹ ߹ΘͤͯΦʔτεέʔϦϯάͯ͘͠ΕΔͱ͍͏ϝϦοτΛڗडͰ͖Δ
Πϕϯτۦಈͱ Կ͔͠ΒͷΞΫγϣϯΛݩʹ-BNCEB͕ಈ࡞͢Δͱ͍͏͜ͱ ɾS3ʹϑΝΠϧ͕Ξοϓϩʔυ͞Εͨ ɾAPI GatewayʹϦΫΤετ͕͋ͬͨ ɾDynamoDBͷσʔλʹߋ৽͕͋ͬͨ ϙʔϦϯάΛߦͬͯঢ়ଶͷมԽΛ֬ೝ͢Δ͜ͱͱ ਅٯͷΈ ͭ·ΓɺΠϕϯτ͕ൃੜͨ͠ͱ͖͚ͩ-BNCEB͕ಈ͘͜ͱͰ "84ͷίϯϐϡʔςΟϯάϦιʔεͷ༻࣮ߦ୯ҐͰ࠷దԽ͞ΕΔ
͜ΕʹΑΓίετޮࣗಈతʹ࠷దԽ͞ΕΔ
ΠϕϯτۦಈͰ͋Δ͜ͱ͕ ϓϩάϥϛϯάϞσϧʹͲ͏͍ͬͨ มԽΛͨΒ͢ͷ͔
ΠϕϯτυϦϒϯΞʔΩςΫνϟ -BNCEBͱαʔϏε͕ΠϕϯτͰचͭͳ͗ͱͳͬͨ ϚΠΫϩαʔϏεͰΠϕϯτυϦϒϯͳΞʔΩςΫνϟ͕ࣗ વͱग़དྷ্͕Δ ͭ·ΓɺαʔόʔϨεͷ੍Ͳ͓Γʹ࣮Λߦ͏͜ͱͰ ࣗવͱϚΠΫϩαʔϏεͳΞʔΩςΫνϟ͕ग़དྷ্͕Δ
ΠϕϯτυϦϒϯͰ͋Δ͜ͱͰ Կ͕͏Ε͍͠ͷ͔
োੑ͕͕͋Δ
োੑ͕͕͋Δ ϩδοΫ ϩδοΫ ϩδοΫ ϦΫΤετ
োੑ͕͕͋Δ ϩδοΫ ϩδοΫ ϩδοΫ ϦΫΤετ োͷൃੜ ͷղܾޙʹϦΫΤετ͔ΒΓ͢ඞཁ͕͋Δ
2VFVFΛڬΜͰ͍Δͱ ϩδοΫ ϩδοΫ ϩδοΫ ϦΫΤετ 2VFVF 2VFVF
2VFVFΛڬΜͰ͍Δͱ ϩδοΫ ϩδοΫ ϩδοΫ ϦΫΤετ 2VFVF 2VFVF
2VFVFΛڬΜͰ͍Δͱ ϩδοΫ ϩδοΫ ϩδοΫ ϦΫΤετ 2VFVF 2VFVF 2VFVFʹϦΫΤετ͕ཷ·͍ͬͯ͘
2VFVFΛڬΜͰ͍Δͱ ϩδοΫ ϩδοΫ ϩδοΫ ϦΫΤετ 2VFVF 2VFVF োͷղܾޙɺ2VFVFʹཷ·ͬͨ ϦΫΤετྲྀΕ߹ੑ͕อͨΕΔ
ΤϥʔϋϯυϦϯά͕ Γ͘͢ͳΔ
ΤϥʔϋϯυϦϯά ϩδοΫ ϩδοΫ ϦΫΤετ 2VFVF %-2 %FBE-FUUFS2VFVFͰ ΤϥʔϋϯυϦϯά
ΤϥʔϋϯυϦϯά ϩδοΫ ϩδοΫ ϦΫΤετ 2VFVF %-2 ܽଛͨ͠ σʔλ ॲཧͰ͖ͣʹϦτϥΠͷޙ %FBE-FUUFS2VFVFʹ
ৼΓ͚ΒΕΔ
ΤϥʔϋϯυϦϯά ϩδοΫ ϩδοΫ ϦΫΤετ 2VFVF %-2 ܽଛσʔλΛमਖ਼ͯ͠ ϩδοΫ͔ΒϦΧόϦ͕ ࣮ࢪͰ͖Δ
ػೳՃʹڧ͘ͳΔ
ϞϊϦγοΫͳΞʔΩςΫνϟͷ߹ ػೳՃͰιʔείʔυΛมߋ͢ΔͱӨڹൣғ ϓϩμΫτશମʹٴͿͨΊίʔυͷྔ͕ଟ͚Εଟ͍΄Ͳ ৺ཧతʹ͠ΜͲ͘ͳΔ
ΠϕϯτυϦϒϯΞʔΩςΫνϟͷ߹ 'VODUJPO 4FSWJDF 'VODUJPO 4FSWJDF 'VODUJPO &WFOU &WFOU ৽ػೳ ৽ػೳ
Πϕϯτιʔεʹରͯ͠৽ͨʹ 4VCTDSJCFSΛՃ͍ͯ͘͠ Ξϓϩʔνʹ͢Δ͜ͱͰӨڹൣ ғ͕ߜΓ͘͢ͳΔ
αʔόʔϨεʹ͢Δ͜ͱͰࣗવͱΠϕϯτυϦϒϯ ʹͳΓɺϚΠΫϩαʔϏεͷΞʔΩςΫνϟతͳ ϝϦοτΛ׆͔ͤΔΑ͏ʹͳΔ ͭ·Γ
·ͣαʔόʔϨεΛ࢝ΊΔͨΊʹ ֤ϑϧϚωʔδυαʔϏεͷಛΛ ཧղ͠Α͏
API Gateway "1*(BUFXBZ "1*Λ࡞͢ΔαʔϏε αʔόʔϨεͷੈքͰγεςϜΞΫη ε͢ΔͨΊͷʮϑϩϯτυΞʯͱͯ͠ػೳ ͢ΔαʔϏε
AppSync "QQ4ZOD (SBQI2-ͷόοΫΤϯυΛఏڙ͢ΔϑϧϚ ωʔδυαʔϏε ϑϩϯτΤϯυΞϓϦέʔγϣϯͷόοΫ Τϯυͱͯ͠ ඦສͷσόΠεͱͷؒͷϦΞϧλΠϜ αϒεΫϦϓγϣϯɺΞϓϦσʔλͷ ΦϑϥΠϯΞΫηεՄೳ
DynamoDB %ZOBNP%# ߴͰεέʔϥϒϧͳ/P42-σʔλϕʔε ਖ਼͘͠ઃܭ͢Δ͜ͱͰແݶͷεέʔϥϏϦ ςΟ͕͋Δ ༰ྔແ੍ݶɻσʔλ͕૿͑ΔʹͭΕͯউ खʹύʔςΟγϣχϯάͯ͠σʔλΛஔ ͯ͘͠ΕΔ Ϧʔδϣϯͷཧతʹࢄͨ͠Օॴʹ σʔλΛϨϓϦέʔγϣϯ͢Δ͜ͱͰՄ༻
ੑͱରোੑΛ֬อ͢Δ
S3 4 ֦ுੑͱٱੑΛ݉Ͷඋ͑ͨΦϒδΣΫτ ετϨʔδ ༰ྔແ੍ݶͰɺͷٱੑΛ ࣋ͭ ՕॴͷΞϕΠϥϏϦςΟκʔϯͰࣗಈͰϨ ϓϦέʔγϣϯ͢Δ͜ͱͰোੑͱՄ༻ ੑΛ֬อ "UIFOB4
4FMFDUΛ༻ͯ͠42-ͰΦϒ δΣΫτʹΞΫηεՄೳ
SQS 424 શϚωʔδυܕͷϝοηʔδΩϡʔΠϯ άαʔϏε Ωϡʔ͋ͨΓͷϝοηʔδແ੍ݶͰ΄ ΅ແ੍ݶͷεϧʔϓοτ େྔͷδϣϒʢϝοηʔδʣΛ-BNCEBͰ͞ ͖͍ͨ࣌ʹ424ΛڬΉͱ༗ޮ
EventBridge &WFOU#SJEHF ड͚औͬͨΠϕϯτͷ৴ϑΟϧλϦϯ άΛ௨ͯ͠ϧʔςΟϯάΛߦ͏αʔϏε %BUB%PHͳͲͷ4BB4͔ΒͷσʔλΛ"84 Ͱ-BNCEBͳͲʹϧʔςΟϯάͯ͠ॲཧͤ͞ ͨΓग़དྷΔ -BNCEBಉ࢜Λଓ͢Δʹ༗ޮ
Kinesis Streams ,JOFTJT4USFBNT ετϦʔϜσʔλΛϦΞϧλΠϜʹऩू͠ ͯॲཧ͢ΔͨΊͷαʔϏε αʔόʔϨεͷੈքͰظؒͰେྔʹ͘ ΔΞΫηε3%4ͷಉ࣌ଓͷʹର ॲ͢ΔͨΊʹྲྀྔΛௐͯ͠ཪଆͷ-BNCEB Ͱ·ͱΊͯॲཧ͢ΔϢʔεέʔε͕ଟ͍
Step Functions 4UFQ'VODUJPOT "84ͷ༷ʑͳαʔϏεΛܨ͍Ͱॲཧͷϫʔ ΫϑϩʔΛઃܭɾ࣮ߦ͢ΔαʔϏε -BNCEB୯ମͰλΠϜΞτ͢ΔΑ͏ͳॲ ཧΛϫʔΫϑϩʔʹղ࣮ͯ͠ߦ͢ΔΑ͏ ͳϩϯάϥϯχϯάͳόονॲཧʹ͍ͯ ͍Δɻ
·ͣ͜ΕΒͷϑϧϚωʔδυαʔϏεͷಛੑΛ ཧղͯ͠దࡐదॴͰ͑ΔΑ͏ʹͳΓ·͠ΐ͏ʂ ॏཁͳ͜ͱ
·ͱΊ
·ͱΊ Ϗδωεͷຊ࣭ʹूத͢ΔͨΊʹΠϯϑϥͷӡ༻ཧΛΫϥ υʹؙ͛͠·͠ΐ͏ɻͦͷͨΊͷαʔόʔϨε ΠϕϯτυϦϒϯͳΞʔΩςΫνϟΛҙࣝ͠Α͏ɻͦͷ͜ͱ Ͱมߋʹڧ͘ͳΓɺোੑΤϥʔϋϯυϦϯάʹڧ͍γ εςϜʹͳΓ·͢ ग़དྷΔݶΓϑϧϚωʔδυαʔϏεϑΝʔετͰઃܭ͠· ͠ΐ͏ɻ֤αʔϏεͷಛੑΛཧղͯ͠దࡐదॴͰ͍͚Ε ΔΑ͏ʹ͠·͠ΐ͏
ͱ͍͑ ϑϧϚωʔδυαʔϏεͷ੍༷ΠϕϯτυϦϒϯͳ ϓϩάϥϛϯάϞσϧʹ׳ΕΔ͜ͱͦΕͳΓʹֶशίετ ͕͔͔Δ͜ͱࣄ࣮
࠷ॳͷೖΓํͱͯ͠ "1*(BUFXBZ -BNCEB %ZOBNP%#ͱ͍ͬͨߏͰখنͳͱ͜Ζ͔ΒॳΊͯΈΔɻ ΤϥʔϋϯυϦϯάͳͲ͕ಛʹॏ༻Ͱͳ͍έʔεͳΒɺ -BNCEBʹॲཧΛ٧Ίͯॻ͘ͷແ͠͡Όͳ͍ ࠓͰ3%4ͷίʔϧυελʔτେ෯ʹվળ͍ͯ͠Δɻ3BJMT-BSBWFMͱ͍ͬͨ8FCΞϓϦ έʔγϣϯϑϨʔϜϫʔΫΛࡌͤͯɺීஈ͔Β͍ͬͯΔΞʔΩςΫνϟΛࡌͤସ͑ͯΈΔɻ ࠷ॳ͔ΒͷΠϕϯτυϦϒϯΞʔΩςΫνϟΛࢦ͞ͳ͍
࠷ޙʹ
গ͠ฐࣾͷϏδωεͷհΛ ͍ͤͯͩ͘͞͞
ڞܕडୗ։ൃ
ཁ͢Δʹ ϏδωεͷΰʔϧΛୡ͢ΔͨΊʹαʔόʔϨεΞϓϦέʔ γϣϯΛҰॹʹ࡞͍͖ͬͯ·͠ΐ͏ɻͦͷࢧԉΛߦ͍·͢ɻ "84αʔόʔϨεʹؔ͢Δ͜ͱͳΒɺઃܭɾ։ൃɾ1P$ɾෛ ՙࢼݧɾӡ༻ɾίετ࠷దԽͳͲ͋ΒΏΔ͜ͱ͕Մೳ
ϓϥϯʢࢀߟՁ֨ʣ νϟοτͷΈͰͷ։ൃαϙʔτ ઃܭɾΞʔΩςΫςΟϯάΛҰॹʹ࣮ࢪ Ұॹʹ։ൃΛ࣮ࢪ ෛՙࢼݧͷઃܭ͔Β࣮ࢪ ສ݄ʙ ສ݄ʙ ສ݄ʙ ສ݄ʙ
ڵຯ͕͋ΕੋඇαΠτ͔Β ͓͍߹Θ͍ͤͩ͘͞
serverless.co.jp