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
580
実践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
720
ITベンダーから見る内製化支援の本質/in-house-dev
slsops
1
650
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
React は次の10年を生き残れるか:3つのトレンドから考える
oukayuka
41
16k
CIを整備してメンテナンスを生成AIに任せる
hazumirr
0
520
AIのメモリー
watany
12
1.2k
Claude Code で Astro blog を Pages から Workers へ移行してみた
codehex
0
170
Advanced Micro Frontends: Multi Version/ Framework Scenarios
manfredsteyer
PRO
0
150
構造化・自動化・ガードレール - Vibe Coding実践記 -
tonegawa07
0
170
Workers を定期実行する方法は一つじゃない
rokuosan
0
140
AIコーディングエージェント全社導入とセキュリティ対策
hikaruegashira
16
9.3k
GitHub Copilotの全体像と活用のヒント AI駆動開発の最初の一歩
74th
6
1.7k
MCPで実現できる、Webサービス利用体験について
syumai
7
2.4k
Vibe coding コードレビュー
kinopeee
0
400
DMMを支える決済基盤の技術的負債にどう立ち向かうか / Addressing Technical Debt in Payment Infrastructure
yoshiyoshifujii
5
750
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
[RailsConf 2023] Rails as a piece of cake
palkan
56
5.7k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Why Our Code Smells
bkeepers
PRO
337
57k
Building Applications with DynamoDB
mza
95
6.5k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.2k
A Tale of Four Properties
chriscoyier
160
23k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
Fireside Chat
paigeccino
38
3.6k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
Designing for humans not robots
tammielis
253
25k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
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