Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
530
実践AWSサーバーレスアーキテクチャ導入の基礎とその概念/serverless-webinar-01
Serverless Operations
July 03, 2020
Tweet
Share
More Decks by Serverless Operations
See All by Serverless Operations
Case Study for Repurposing Video Content With Generative AI / AWS Community Day Taiwan 2024
slsops
0
140
サーバーレスなユーザー認証認可の考慮事項と実践的プラクティス紹介 / slsdays-tokyo-2024
slsops
10
3.4k
サーバーレスで負荷試験を行う必要性と実践的プラクティスの紹介/slsdays-tokyo-2023
slsops
4
2.1k
Serverless Web Hosting Strategy For Modern Front-end Application
slsops
0
300
定期料金と従量課金を組み合わせたサブ スクリプション型サービスを作る/jp-stripe-02
slsops
0
480
サーバーレス時代に共創型受託開発をやることの価値/sls-jutaku
slsops
0
770
Auth0とクラウドサービスを組み合わせて作るメディアコマースの開発事例/auth0-media-commerce
slsops
0
590
Shifter HeadlessとSaaSを組み合わせた サーバーレスECサイトの構築/shifter-serverless-ec
slsops
0
2.2k
サーバーレスにおいてどのようにDynamoDBとRDSを使い分ければ良いのか/serverless-webinar-02
slsops
9
3k
Other Decks in Programming
See All in Programming
複雑な仕様に立ち向かうアーキテクチャ
myohei
0
120
Discord Bot with AI -for English learners-
xin9le
1
110
Djangoの開発環境で工夫したこと - pre-commit / DevContainer
hiroki_yod
1
640
Vapor Revolution
kazupon
2
2.5k
クリエイティブコーディングとRuby学習 / Creative Coding and Learning Ruby
chobishiba
0
2.6k
eBPF Deep Dive: Architecture and Safety Mechanisms
takehaya
12
1.2k
Arm移行タイムアタック
qnighy
0
400
事業成長を爆速で進めてきたプロダクトエンジニアたちの成功談・失敗談
nealle
3
1.2k
.NET Conf 2024の振り返り
tomokusaba
0
190
Seamless Flutter Native Integration: FFI & Pigeon - Dreamwalker (JaichangPark / 박제창) @FlutterKaigi2024
itsmedreamwalker
0
110
デザインパターンで理解するLLMエージェントの作り方 / How to develop an LLM agent using agentic design patterns
rkaga
11
3.2k
物流システムにおけるリファクタリングとアーキテクチャの再構築 〜依存関係とモジュール分割の重要性〜
deeprain
1
380
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Typedesign – Prime Four
hannesfritz
40
2.4k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Visualization
eitanlees
145
15k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
247
1.3M
Statistics for Hackers
jakevdp
796
220k
Bash Introduction
62gerente
608
210k
Docker and Python
trallard
40
3.1k
What's in a price? How to price your products and services
michaelherold
243
12k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
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