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
780
ITベンダーから見る内製化支援の本質/in-house-dev
slsops
1
670
Case Study for Repurposing Video Content With Generative AI / AWS Community Day Taiwan 2024
slsops
0
380
サーバーレスなユーザー認証認可の考慮事項と実践的プラクティス紹介 / 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
400
定期料金と従量課金を組み合わせたサブ スクリプション型サービスを作る/jp-stripe-02
slsops
0
560
サーバーレス時代に共創型受託開発をやることの価値/sls-jutaku
slsops
0
850
Auth0とクラウドサービスを組み合わせて作るメディアコマースの開発事例/auth0-media-commerce
slsops
0
680
Other Decks in Programming
See All in Programming
Introducing ReActionView: A new ActionView-compatible ERB Engine @ Rails World 2025, Amsterdam
marcoroth
0
690
「手軽で便利」に潜む罠。 Popover API を WCAG 2.2の視点で安全に使うには
taitotnk
0
860
時間軸から考えるTerraformを使う理由と留意点
fufuhu
16
4.8k
モバイルアプリからWebへの横展開を加速した話_Claude_Code_実践術.pdf
kazuyasakamoto
0
330
ぬるぬる動かせ! Riveでアニメーション実装🐾
kno3a87
1
220
アルテニア コンサル/ITエンジニア向け 採用ピッチ資料
altenir
0
100
print("Hello, World")
eddie
2
530
機能追加とリーダー業務の類似性
rinchoku
2
1.3k
CloudflareのChat Agent Starter Kitで簡単!AIチャットボット構築
syumai
2
490
Kiroで始めるAI-DLC
kaonash
2
590
MCPとデザインシステムに立脚したデザインと実装の融合
yukukotani
4
1.4k
Ruby×iOSアプリ開発 ~共に歩んだエコシステムの物語~
temoki
0
310
Featured
See All Featured
Faster Mobile Websites
deanohume
309
31k
Producing Creativity
orderedlist
PRO
347
40k
The Pragmatic Product Professional
lauravandoore
36
6.9k
Building Applications with DynamoDB
mza
96
6.6k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
840
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
188
55k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
810
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.7k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Facilitating Awesome Meetings
lara
55
6.5k
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