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
slsconfworkshop
Search
堀家隆宏
November 02, 2017
Programming
3
2.6k
slsconfworkshop
堀家隆宏
November 02, 2017
Tweet
Share
More Decks by 堀家隆宏
See All by 堀家隆宏
オープンソースコミュニティで加速するサーバーレスの未来/serverless will be
horike37
4
710
auth0-meetup.pdf
horike37
1
250
What’s happening with Serverless Framework, and it lives with AWS SAM.
horike37
0
88
What is Serverless. Why is Serverless.
horike37
1
64
aws-with-functional-saas
horike37
2
160
serverless-with-oss
horike37
0
110
slsconftokyo
horike37
0
5.4k
Test Driven Development For Lambda
horike37
2
310
serverless-kyoto
horike37
1
160
Other Decks in Programming
See All in Programming
機能が複雑化しても 頼りになる FactoryBotの話
tamikof
0
130
ML.NETで始める機械学習
ymd65536
0
230
Kotlinの開発でも AIをいい感じに使いたい / Making the Most of AI in Kotlin Development
kohii00
5
1.2k
Better Code Design in PHP
afilina
0
170
コードを読んで理解するko build
bells17
1
110
Rails 1.0 のコードで学ぶ find_by* と method_missing の仕組み / Learn how find_by_* and method_missing work in Rails 1.0 code
maimux2x
1
190
密集、ドキュメントのコロケーション with AWS Lambda
satoshi256kbyte
1
210
Rubyと自由とAIと
yotii23
6
1.7k
1年目の私に伝えたい!テストコードを怖がらなくなるためのヒント/Tips for not being afraid of test code
push_gawa
1
540
データの整合性を保つ非同期処理アーキテクチャパターン / Async Architecture Patterns
mokuo
54
19k
2025.2.14_Developers Summit 2025_登壇資料
0101unite
0
190
XStateを用いた堅牢なReact Components設計~複雑なClient Stateをシンプルに~ @React Tokyo ミートアップ #2
kfurusho
1
990
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
22
1.4k
Statistics for Hackers
jakevdp
797
220k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Docker and Python
trallard
44
3.3k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.4k
Speed Design
sergeychernyshev
27
810
Optimizing for Happiness
mojombo
376
70k
Thoughts on Productivity
jonyablonski
69
4.5k
Practical Orchestrator
shlominoach
186
10k
Designing for humans not robots
tammielis
250
25k
Visualization
eitanlees
146
15k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
193
16k
Transcript
*OUSPEVDJOH"/FX &WFOU%SJWFO8PSME
ࣗݾհ w%JHJUBM$VCF$P-UE w4FSWFSMFTT'SBNFXPSL$PSF.BJOUBJOFS w4FSWFSMFTT'SBNFXPSLຊޠϑΥʔϥϜཧऀ IUUQTHJUIVCDPNTFSWFSMFTTKBQBOGPSVN
ΞδΣϯμ
w&WFOU(BUFXBZΛಈ͔ͯ͠ݟΑ͏ w,VCFSOFUFT্ʹࣗ࡞'BB4ڥΛߏங͠Α͏ w&WFOU(BUFXBZͱ(PPHMF#JH2VFSZΛ࿈ܞ͞ΕΑ͏
*OUSPEVDUJPO
wίετʁ wεέʔϥϏϦςΟʁ wՃՁΛ࢈·ͳ͍ϝϯςφϯε͔Βͷ։์ʁ αʔόϨεΞʔΩςΫνϟͷ ϝϦοτͬͯʁ
wͲͷΫϥυαʔϏεͷ'BB4Λ͏͔ w֤ΫϥυαʔϏε͝ͱͷϝϦοτɾσϝϦοτԿ͔ ࠓͷαʔόϨεΞʔΩςΫνϟͷจ຺
ࠓ͜ΕΒΛ ҰճΕΔ
wαʔόϨεͷੈքͷதͰɺΫϥυϕϯμʔʹґଘ͠ͳ͍044ͱ͍͏ Ξϓϩʔν͕ࠓੈքͰٸʹ৳ͼ͖ͯͨɻ044Ͱ͋Εɺ͜ͷ αʔόϨεͷੈքͰԿ͔୭ͰΛఏҊͰ͖Δ͜ͱɻ͜͏͍͏ੈք͕͢ Ͱʹۙʹ͋Δͱ͍͏͜ͱ ࠓײͯ͡Β͍͍ͨ͜ͱ ϚϧνΫϥυͱࣗલ'BB4ͱ͍͏ࠓ·Ͱʹͳ͍Ξϓϩʔν
None
ͳͥ&WFOU(BUFXBZ͕ ඞཁͳͷ͔ʁ
&WFOU(BUFXBZ͕ϑΥʔΧε ͍ͯ͠Δ wෳͷϚΠΫϩαʔϏε ͘͠ϓϩόΠμ Λ૬ޓʹ௨৴ͨ͠Γཧ͢Δ ͨΊͷϕετͳΞϓϩʔν͕ͳ͍ w4FSWFSMFTT'SBNFXPSLΛͬͯཧͰ͖ΔͷͭͷαʔϏε ϓϩόΠ μʔ ͷΈ
͜ΕΛͻͱͭͷϚΠΫϩαʔ Ϗεʹ·ͱΊΒΕΔʁ
௨ৗҙຯͷ͋Δ୯ҐʹϚΠ ΫϩαʔϏεׂ͞ΕΔ ϚΠΫϩ αʔϏε ϚΠΫϩ αʔϏε ϚΠΫϩ αʔϏε
&WFOU(BUFXBZ͕հ ϚΠΫϩ αʔϏε ϚΠΫϩ αʔϏε ϚΠΫϩ αʔϏε
ΑΓৄ͍͠ྫ
wڊେͳΠϕϯτυϦϒϯͳϓϥοτϑΥʔϜΛߏ͢Δ͜ͱΛՄೳ ʹ͢ΔͨΊ wطଘͷ'BB4ϓϩόΠμʔΛநԽͯ͠ɺશͯͷσʔλΛΠϕϯτͱ ͯ͠දݱ͢Δͱ͜ͰɺڊେͳΞʔΩςΫνϟͷதͰҰ؏ͨ͠σʔ λͷྲྀΕ͕ग़དྷΔ wϚϧνΫϥυԼʹ͓͚Δ'BB4ͷͨΊͷநԽιϦϡʔγϣϯ &WFOU(BUFXBZͷՁ
$PODFQU
044 IUUQTHJUIVCDPNTFSWFSMFTTFWFOUHBUFXBZ
w&WFOU(BUFXBZ(PόΠφϦͱͯ͠ৗற͢Δ w&WFOU(BUFXBZ͔Βఏڙ͞ΕΔཧ༻"1*Λ௨ͯ͠GVODUJPOFWFOUͷ ొ TVCTDSJQUJPO Λߦ͏ w'%,ͱ͍͏OPEFKTͷΫϥΠΞϯτϥΠϒϥϦ͋Δ IUUQTHJUIVCDPNTFSWFSMFTTGEL جૅ
ΞʔΩςΫνϟ
ϓϥοτϑΥʔϜඇґଘ w"84ɺ.JDSPTPGU"[VSFɺ*#.#MVNJYɺ(PPHMF$MPVE1MBUGPSN ؒͰϑΝϯΫγϣϯͱΠϕϯτͷڞ༗͕Մೳ
ΠϕϯτυϦϒϯ wͯ͢ͷσʔλΠϕϯτͱͯ͠දݱ͞ΕΔ wΠϕϯτυϦϒϯͳઃܭͰγεςϜΛߏங͢Δ͜ͱ͕લఏͱͳΔ
ϑΝετσϦόϦʔ wΠϕϯτΛૉૣ͘σϦόϦʔग़དྷΔ༷ʹͳΔ͜ͱ͕ϝΠϯͷΰʔϧ
&(ͷجຊૢ࡞
w'BB4'VODUJPOΛ&WFOU(BUFXBZʹొ͢Δ w'VODUJPOʹ&WFOUΛొ 'VODUJPO͕&WFOUͱͯ͠நԽ͞ΕΔ w&WFOUΛΫϥΠΞϯτ͔ΒൃՐͤ͞Δ ཪଆʹ͍Δ'VODUJPO͕࣮ߦ͞ΕΔ جຊతͳૢ࡞खॱ
'VODUJPOEJTDPWFSZ w'BB4'VODUJPOΛ&WFOU(BUFXBZʹొͯ͠Ͳ͔͜ΒͰݺͼग़͠ ͕ՄೳͱͳΔ
4VCTDSJQUJPO wొͨ͠'VODUJPOʹFWFOUΛՃ͢Δ TVCTDSJQUJPOͷొ -BNCEBΛFWFOUͱͯ͠நԽͨ͜͠ͱʹ
&NJU wొͨ͠FWFOUΛൃՐͤ͞Δ ઌ΄Ͳͷཧ"1*Ͱͳ͘ɺIUUQΠϕϯτΛ༻͍ͯ͠Δ͜ͱʹ
&(ͷجຊૢ࡞Λ ͬͯΈΑ͏ ʢϋϯζΦϯ։࢝ʣ
Δ͜ͱ
/PEFͷΠϯετʔϧ CSFXJOTUBMMOPEFCSFX FDIPFYQPSU1"5)1"5))0.&OPEFCSFX DVSSFOUCJOdCBTI@QSPpMF NLEJSQdOPEFCSFXTSD OPEFCSFXJOTUBMMCJOBSZW /PEFWܥΛ༻͍ͯͩ͘͠͞ɻWܥޙͷϋϯζΦϯͰΤϥʔ͕ग़·͢
4FSWFSMFTT'SBNFXPSLͷ Πϯετʔϧ OQNJOTUBMMHTFSWFSMFTT
࡞ۀσΟϨΫτϦͷ࡞ NLEJSFHXPSL &(͕࡞ۀσΟϨΫτϦʹΠϯετʔϧ͞ΕΔͨΊ
&(Πϯετʔϧ DVSMTG-IUUQTSBXHJUIVCVTFSDPOUFOUDPN TFSWFSMFTTFWFOUHBUFXBZNBTUFSJOTUBMMTIcTI
&(Πϯετʔϧ 8JOEPXT IUUQTHJUIVCDPNTFSWFSMFTTFWFOUHBUFXBZSFMFBTFT͔Β 8JOEPXT༻ͷFYFΛμϯϩʔυ
&(ىಈ CJOFWFOUHBUFXBZEFW
&(ىಈ 8JOEPXT aFWFOUHBUFXBZFYFEFW
'VODUJPOొ DVSMSFRVFTU1045a VSMIUUQWGVODUJPOTa IFBEFSDPOUFOUUZQFBQQMJDBUJPOKTPOa EBUB\GVODUJPO*EIFMMP QSPWJEFS\UZQF BXTMBNCEB BSOBSOBXTMBNCEBVT FBTUGVODUJPOTMTXPSLTIPQEFW QPTUQSPDFTT
SFHJPOVTFBTU^^`
$SFEFOUJBMͷొ DBUdBXTDSFEFOUJBMT <EFGBVMU> BXT@BDDFTT@LFZ@JEYYYYYY BXT@TFDSFU@BDDFTT@LFZYYYYYYYYYYYYYYY SFHJPOVTFBTU
ొ͞Εͨ'VODUJPOͷ֬ೝ DVSMSFRVFTU(&5VSMIUUQWGVODUJPOT
&WFOUͷ4VCTDSJQUJPO DVSMSFRVFTU1045a VSMIUUQWTVCTDSJQUJPOTa IFBEFSDPOUFOUUZQFBQQMJDBUJPOKTPOa EBUB\GVODUJPO*EIFMMP FWFOU BXFTPNF&WFOU^
4VCTDSJQUJPOͷ֬ೝ DVSMSFRVFTU(&5VSMIUUQWTVCTDSJQUJPOT
&WFOUͷ&NJU DVSMSFRVFTU1045a VSMIUUQa IFBEFSDPOUFOUUZQFBQQMJDBUJPOKTPOa IFBEFSFWFOUBXFTPNF&WFOUa EBUB\VTFS*E^
ޙย͚ DPOUSPM DͰ&(ͷϓϩηεͷఀࢭ
LVCFMFTTΛ͍ l0OQSFNJTFTz'BB4Λߏங͠Α͏
0OQSFNJTFT'BB4ͱ wίϯςφͷ্ʹߏங͞ΕΔಠࣗͷ'BB4ڥ w"84"[VSF($1*#.ͷΫϥυϕϯμʔʹϚωʔδυ͞Εͨ'BB4ͱ ۠ผ͢ΔͨΊʹ͜͏ಡΜͰ͍Δ
ͳͥ0OQSFNJTFT'BB4 wΫϥυϓϩόΠμʔͷ੍ݶʹറΒΕΔ͜ͱͷແ͍'BB4ڥ͕࣮ݱͰ͖Δ ࣮ߦ࣌ؒͳͲ wΠϯϑϥϨϕϧͰڥͷνϡʔχϯά͕Մೳɻͦͷ໘ྑ͘'BB4ͷϝϦοτͱͯ͠͞ΕΔ Πϯϑϥϝϯςφϯε͔Βͷ։์ͱ͍͏ϝϦοτࣦΘΕΔ w'BB4ͷੈքͷ৽͍͠બࢶ
ࠓճ࡞Δߏ
,VCFSOFUFT wΫϥελԽ͞Εͨ%PDLFSڥʹ͓͚ΔΦʔέετϨʔγϣϯπʔϧ w044ͱͯ͠։ൃ͞Ε͍ͯΔ
,VCFMFTT w,VCFSOFUFTωΠςΟϒͷαʔόʔϨεϑϨʔϜϫʔΫ w,VCFSOFUFTͷϦιʔεΛ׆༻ͯ͠ɺGVODUJPO୯ҐͰͷࣗಈεέʔϦϯάɺ"1*ϧʔ ςΟϯάɺࢹɺτϥϒϧγϡʔςΟϯάͳͲΛఏڙ͠·͢ w)551ٴͼ1VC4VCͷϝΧχζϜΛ௨ͯ͠ɺίʔυΛ࣮ߦͰ͖Δ w͜Ε044ͱͯ͠։ൃ
,VCFMFTT4FSWFSMFTT1MVHJO w4FSWFSMFTT'SBNFXPSLͷϓϥάΠϯͱͯ͠,VCFMFTTΛ͑Δ
࣮ࡍʹͬͯΈΑ͏
($1ͷίϯύωʹΞΫηε IUUQTDPOTPMFDMPVEHPPHMFDPN
ϓϩδΣΫτͷ࡞
ϓϩδΣΫτͷ࡞
(PPHMF$POUBJOFS&OHJOFͷ༗ޮԽ IUUQTDPOTPMFDMPVEHPPHMFDPNLVCFSOFUFTMJTU
՝ۚΛ༗ޮԽ͢Δ
LTΫϥελͷ࡞
σϑΥϧτͷঢ়ଶͰ0,ɻ࡞ΛΫϦοΫ
$-06%4)&--ͷىಈ
$-06%4)&--্ʹ 4FSWFSMFTTΛΠϯετʔϧ TVEPOQNJOTUBMMHTFSWFSMFTT
্ཱͪ͛ͨLTΛLVCFDUM͔Βૢ࡞Մೳʹ͢Δ
্෦ͷίϚϯυΛίϐϖͯ͠ $-06%4)&--্Ͱ࣮ߦ
LVCFMFTTͷQPEΛ࡞ FYQPSU3&-&"4&W LVCFDUMDSFBUFOTLVCFMFTT LVCFDUMDSFBUFGIUUQTHJUIVCDPNLVCFMFTTLVCFMFTT SFMFBTFTEPXOMPBE3&-&"4&LVCFMFTT3&-&"4&ZBNM
LVCFMFTTͷQPEΛ֬ೝ LVCFDUMHFUQPETOLVCFMFTT ͜͜·ͰͰ'BB4ͷڥͬͨ
,VCFMFTT4FSWFSMFTT1MVHJOͰGVODUJPOΛ σϓϩΠ͢Δ HJUDMPOFHJU!HJUIVCDPNTFSWFSMFTTTFSWFSMFTTLVCFMFTTHJU
,VCFMFTT4FSWFSMFTT1MVHJOͰGVODUJPOΛ σϓϩΠ͢Δ DETFSWFSMFTTLVCFMFTTFYBNQMFTHFUQZUIPOOQNJOTUBMM
,VCFMFTT4FSWFSMFTT1MVHJOͰGVODUJPOΛ σϓϩΠ͢Δ TFSWFSMFTTEFQMPZ
σϓϩΠ͞ΕͨGVODUJPOͷ֬ೝ LVCFDUMHFUGVODUJPO
GVODUJPOͷ࣮ߦ TFSWFSMFTTJOWPLFGIFMMPM
ϩάͷ֬ೝ TFSWFSMFTTMPHTGIFMMP
αʔϏεͷআ TFSWFSMFTTSFNPWF
ޙย͚ ίϯςφΫϥελͷআ
&(Λܦ༝ͯ͠(PPHMF#JH2VFSZ ʹσʔλΛొͯ͠ΈΑ͏
Δ͜ͱ ϩʔΧϧͰ&(Λىಈͤͯ͞ɺXFCͷϑϩϯτΤϯυܦ༝Ͱ&( ্ͷTVCTDSJQUJPOΛݺͼग़͠ɺ#JH2VFSZʹσʔλΛొ͢Δ
Δ͜ͱ
&(༻ͷαϯϓϧϦϙδτϦΛϩʔΧϧʹDMPOF HJUDMPOFHJU!HJUIVCDPNTFSWFSMFTT FWFOUHBUFXBZFYBNQMFHJU
ηοτΞοϓ DEFWFOUHBUFXBZFYBNQMFHJU OQNJOTUBMM
ηοτΞοϓͷྃ
#JH2VFSZͷ४උ IUUQTDMPVEHPPHMFDPNCJHRVFSZRVJDLTUBSUXFCVJΑΓ ՝ۚٴͼ"1*Λ༗ޮԽ
ೝূใͷ࡞ IUUQTDPOTPMFDMPVEHPPHMFDPNBQJTDSFEFOUJBMT͔Β࣮ࢪ
αʔϏεΞΧϯτΩʔͷ࡞
DSFEFOUJBMͷμϯϩʔυ
DSFEFOUJBMͷઃஔ μϯϩʔυͨ͠ೝূใΛDSFEFOUJBMTKTPOʹϦωʔϜɺ FWFOUHBUFXBZFYBNQMFTFSWJDFTBOBMZUJDTԼʹઃஔ͢Δ
ଓใͷฤू FWFOUHBUFXBZFYBNQMFTFSWJDFTBOBMZUJDT DPOpHKTPOΛ։͖ɺ130+&$5@*%Λࣗͷͷʹฤू
130+&$5@*%μογϡϘʔυ͔Β ֬ೝͰ͖·͢
ςʔϒϧͷ࡞ DEFWFOUHBUFXBZFYBNQMFTFSWJDFTBOBMZUJDTOPEF TFUVQKT
IUUQTCJHRVFSZDMPVEHPPHMFDPN͔Β UFTU@FWFOUTςʔϒϧ͕ग़དྷ͍ͯΔ͜ͱΛ֬ೝ͢Δ ςʔϒϧ͕࡞͞Ε͍ͯΔ͜ͱΛ֬ೝ
ςʔϒϧ͕࡞͞Ε͍ͯΔ͜ͱΛ֬ೝ IUUQTCJHRVFSZDMPVEHPPHMFDPN͔Β UFTU@FWFOUTςʔϒϧ͕ग़དྷ͍ͯΔ͜ͱΛ֬ೝ͢Δ
&(ͷ্ཱͪ͛ 4FSWFSMFTT1MBUGPSNʹϩάΠϯ TMTMPHJO
&(ͷ্ཱͪ͛ 4FSWFSMFTT'SBNFXPSLʹಉࠝ͞ΕͯΔFNVMBUPSΛ༻͠·͢ DEFWFOUHBUFXBZFYBNQMFTFSWJDFTBOBMZUJDTTMTSVO
IUUQΠϕϯτͷTVCTDSJQUJPO DVSMSFRVFTU1045VSMIUUQMPDBMIPTUW TVCTDSJQUJPOTIFBEFSDPOUFOUUZQFBQQMJDBUJPOKTPO EBUB\ GVODUJPO*EBOBMZUJDTBOBMZUJDT FWFOUIUUQ NFUIPE1045
QBUIVTFST ^
IUUQΠϕϯτͷTVCTDSJQUJPO DVSM9(&5IUUQMPDBMIPTUW TVCTDSJQUJPOTcKR
XFCϑϩϯτը໘ͷ্ཱͪ͛ DEFWFOUHBUFXBZFYBNQMFGSPOUFOE OQNTUBSU IUUQMPDBMIPTUʹϒϥβͰΞΫηε
XFCϑϩϯτը໘ͷ্ཱͪ͛ ϝʔϧΞυϨεΛೖྗͯ͠SFHJTUFSΛΫϦοΫ
ಈ࡞֬ೝ TMTSVOԼλʔϛφϧ্Ͱϩά͕ग़͍ͯΔͣ
ಈ࡞֬ೝ #JH2VFSZͷίϯύωʹҠಈ
ಈ࡞֬ೝ 4&-&$5 FWFOU SFDFJWFE"U +40/@&953"$5 EBUB FNBJM "4FNBJM
EBUB '30. <ZPVSQSPKFDUJEFNJU@EFNPUFTU@FWFOUT> 03%&3#:SFDFJWFE"U%&4$ -*.*5 3VO2VFSZΑΓ্هͷ42-Λྲྀ͢
ޙย͚ wTMTMPHPVUͰQMBUGPSN͔ΒϩάΞτ wςʔϒϧͷআ