Slide 1

Slide 1 text

"84-BNCEBΧελϜϥϯλΠϜ 1)1ݴޠͷ࣮૷ גࣜձࣾίʔϧυɾϑϡʔδϣϯ ςομʔɹϚΠέϧ
 5FDIOJDBM%JSFDUPS$&0 ୈճ+"846(ࡳຈษڧձ ೥݄೔ ໦ KBXTVH

Slide 2

Slide 2 text

$ whoami KBXTVH ςομʔɹϚΠέϧ ࡀ ೥Ҏ্ήʔϜ։ൃ ίϯγϡʔϚήʔϜػ
 ϞόΠϧ୺຤1$0DVMVT3JGU73ʣ Ͱ͖Δ͜ͱΞϓϦόοΫΤϯυ։ൃήʔϜΤϯδϯ։ൃ
 Πϯϑϥઃܭ%FW0QT $*$% "1*ΠϯςάϨʔγϣϯ Α͘࢖͏"84αʔϏε-BNCEB"1*(BUFXBZ3%4 %ZOBNP%#(BNF-JGU&$&$34*". michael.tedder42 !@'BMLFO

Slide 3

Slide 3 text

ࠓ೔࿩͢͜ͱ KBXTVH -BNCEBͷΧελϜϥΠϯλΠϜΛ࣮૷͢Δʹ
 ඞཁͳ͜ͱʢݴޠؔ܎ͳ͘ʣ গ͚ͩ͠1)1ݴޠͷιʔε͸ग़ͯ͘Δ ςΫχΧϧͳ෦෼͕एׯଟ͍ͷͰɺΘ͔Βͳ͍͜ͱ ͋Ε͹࣭໰λΠϜຢ͸4/4Ͱ͓౴͑͠·͢ʂ

Slide 4

Slide 4 text

-BNCEBͱ͸ʁ KBXTVH ιʔείʔυʢσʔλʣΛ[JQϑΝΠϧʹ·ͱΊͯɺ
 ؔ਺ͱ࣮ͯ͠ߦͰ͖ΔʢαʔόʔϨεʣ ؔ਺ʹ౉͢ύϥϝʔλͱ໭Γ஋͸+40/ "1*(BUFXBZͱ࿈ܞ͢Ε͹)5514Ͱ-BNCEBݺͼग़ͤΔ ݱࡏରԠϥϯλΠϜ1ZUIPO/PEFKT+BWB3VCZ (P/&5$PSF $

Slide 5

Slide 5 text

ϨΠϠʔͱΧελϜϥϯλΠϜ৽ػೳ KBXTVH IUUQTBXTBNB[PODPNKQBCPVUBXTXIBUT OFXBXTMBNCEBOPXTVQQPSUT DVTUPNSVOUJNFTBOEMBZFST

Slide 6

Slide 6 text

ϨΠϠʔͱΧελϜϥϯλΠϜ৽ػೳ KBXTVH ϨΠϠʔ͸ؔ਺ͱಉ༷ɺιʔείʔυʢσʔλʣΛ[JQ ϑΝΠϧʹ·ͱΊΔʢϥΠϒϥϦ༻ͳͲʣ -BNCEBؔ਺ͭʹରͯ͠ϨΠϠʔͭ·Ͱ෇͚ΒΕΔ ϨΠϠʔͷղౚॱҐ͸ࢦఆͰ͖ΔʢϑΝΠϧ্ॻ͖༻ʣ -BNCEBϥϯλΠϜ͕ݱࡏରԠ͍ͯ͠ͳ͍ݴޠͰ΋ɺ
 ΧελϜϥϯλΠϜͷϨΠϠʔ࡞੒ͰͲΜͳݴޠ͸ରԠՄೳ

Slide 7

Slide 7 text

ཧ૝ͳ1)1ؔ਺ϋϯυϥʔ KBXTVH ͳΔ΂͘ରԠϥϯλΠϜͷݴޠͱಉ༷ /PEFKTྫ 
 
 
 
 ؔ਺ʹΠϕϯτͱίϯςΩετΦϒδΣΫτ͕
 ύϥϝʔλͰ౉͞Εɺ໭Γ஋ͰϨεϙϯεΛฦ͢

Slide 8

Slide 8 text

ཧ૝ͳ1)1ؔ਺ϋϯυϥʔ KBXTVH ͜Μͳײ͡Ͱ͢ʂ

Slide 9

Slide 9 text

ΧελϜϥϯλΠϜͷϑϩʔ KBXTVH ॳظԽ " -BNCEBଆͷॳظԽ # ϥϯλΠϜͷॳظԽ Πϕϯτॲཧʢແݶϧʔϓʣ " )551ͰΠϕϯτΛಡΈࠐΉ # ΠϕϯτΛॲཧ͢Δ $ )551ͰϨεϙϯεΛૹΔ ίʔϧυελʔτ ^ ϫʔϜελʔτ ^

Slide 10

Slide 10 text

ΧελϜϥϯλΠϜͷϑϩʔ KBXTVH ॳظԽ " -BNCEBଆͷॳظԽ # ϥϯλΠϜͷॳظԽ Πϕϯτॲཧʢແݶϧʔϓʣ " )551ͰΠϕϯτΛಡΈࠐΉ # ΠϕϯτΛॲཧ͢Δ $ )551ͰϨεϙϯεΛૹΔ ίʔϧυελʔτ ^ ϫʔϜελʔτ ^

Slide 11

Slide 11 text

-BNCEBଆͷॳظԽ KBXTVH -BNCEBؔ਺ͱϨΠϠʔ͕શͯPQUʹղౚ͞ΕΔ TUEPVUͱTUEFSSΛ$MPVE8BUDI-PHT΁ϦμΠϨΫτ -BNCEBؔ਺ͱϥϯλΠϜ༻ͷ؀ڥม਺ΛॳظԽ PQUCPPUTUSBQ͕࣮ߦ͞ΕΔʢγΣϧεΫϦϓτɺ
 όΠφϦ࣮ߦϑΝΠϧͰ΋Մೳʣ

Slide 12

Slide 12 text

-BNCEBଆͷॳظԽ KBXTVH -BNCEB͕༻ҙͨ͠؀ڥม਺ͷ಺༰ΛҰؾʹௐ΂ΕΔ PQUCPPUTUSBQΛ͜ͷߦʹ͢Δ͚ͩ
 
 
#!/bin/sh env

Slide 13

Slide 13 text

ϥϯλΠϜͷॳظԽ KBXTVH PQUCPPUTUSBQͰ1)1όΠφϦΛ࣮ߦ͢Δ ʂ

Slide 14

Slide 14 text

1)1Λιʔε͔ΒϏϧυ লུ KBXTVH Ϗϧυ͢Δ04ͷϥΠϒϥϦ MJCD౳ ͕-BNCEB؀ڥͱ ౷Ұ͠ͳ͚Ε͹όΠφϦ࣮ߦϑΝΠϧ͸࣮ߦ͞Εͳ͍ IUUQTEPDTBXTBNB[PODPNMBNCEBMBUFTU EHMBNCEBSVOUJNFTIUNM

Slide 15

Slide 15 text

1)1Λιʔε͔ΒϏϧυ লུ KBXTVH ".*࢖ͬͯ&$ΠϯελϯεΛ্ཱͪ͛Δ "NB[PO-JOVY".*
 BN[OBNJIWNY@HQ %PDLFSΛར༻ʢ͓͢͢Ίʣ '30.BNB[POMJOVY QIQNZTRMJDVSMKTPONCTUSJOHNIBTIΛDMBOH ͰαΠζ࠷దԽ 0[ ͔͚ͯ.#ͷͭͷ1)1όΠφϦ

Slide 16

Slide 16 text

ϥϯλΠϜͷॳظԽʢଓ͖ʣ KBXTVH PQUCPPUTUSBQͰ1)1όΠφϦΛ࣮ߦ͢Δʢ࣮ߦ ͢Δ1)1ϑΝΠϧ໊ΛҾ਺Ͱ౉͢ʣ #!/bin/sh /opt/php-runtime/bin/php /opt/php- runtime/bootstrap.php

Slide 17

Slide 17 text

ϥϯλΠϜͷॳظԽʢଓ͖ʣ KBXTVH -BNCEBଆͷ؀ڥม਺͔ΒඞཁͳύϥϝʔλΛར༻ @)"/%-&3-BNCEBؔ਺ϋϯυϥʔ໊ʢจࣈྻʣ "84@-".#%"@36/5*.&@"1*-BNCEBͷΠϕϯτ΍Γ ͱΓ͢ΔͨΊͷ*1Wͱϙʔτ൪߸ )5514Ͱ͸ͳ͍ʂ -BNCEBΤϯυϙΠϯτͷ)551ϦΫΤετ63*
 IUUQ"84@-".#%"@36/5*.&@"1*
 ‎IUUQ

Slide 18

Slide 18 text

ϥϯλΠϜͷॳظԽʢଓ͖ʣ KBXTVH @)"/%-&3Ͱࢦఆ͞ΕͯΔιʔεϑΝΠϧಡΈࠐΜͰ ؔ਺ϋϯυϥʔ͕ଘࡏ͢Δ͔֬ೝ ྫ@)"/%-&3lIFMMPXPSMENBJO)BOEMFSz 1)1Ͱ
 GVODFYQMPEF b` @&/7 
 JODMVEF@PODF l\GVOD<>^QIQz 
 JG GVODUJPO@FYJTUT l\GVOD<>^z FSSPS

Slide 19

Slide 19 text

ΧελϜϥϯλΠϜͷϑϩʔ KBXTVH ॳظԽ " -BNCEBଆͷॳظԽ # ϥϯλΠϜͷॳظԽ Πϕϯτॲཧʢແݶϧʔϓʣ " )551ͰΠϕϯτΛಡΈࠐΉ # ΠϕϯτΛॲཧ͢Δ $ )551ͰϨεϙϯεΛૹΔ ίʔϧυελʔτ ^ ϫʔϜελʔτ ^

Slide 20

Slide 20 text

Πϕϯτॲཧʢແݶϧʔϓʣ KBXTVH

Slide 21

Slide 21 text

)551ͰΠϕϯτΛಡΈࠐΉ KBXTVH 1)1ͷDVSM@FYFD ؔ਺౳Λར༻ DVSM@TFUPQU@BSSBZ ͰΦϓγϣϯࢦఆ͢Δ $63-015@5*.&065
 ωοτϫʔΫλΠϜΞ΢τΛແݶʹ͢Δ ॏཁʂ $63-015@5$1@/0%&-":USVF
 /BHMFΞϧΰϦζϜΛແޮʹ͢Δ EFMBZ͸ඞཁͳ͍

Slide 22

Slide 22 text

)551ͰΠϕϯτΛಡΈࠐΉ KBXTVH -BNCEB΁)551ϦΫΤετΛૹ৴
 (&5ΤϯυϙΠϯτSVOUJNFJOWPDBUJPOOFYU
 ‎IUUQSVOUJNFJOWPDBUJPOOFYU ड৴ͨ͠Ϩεϙϯε͔Β)551ϔομʔ͸ز͔ͭ෇͍ͯ͘Δ େࣄͳͷ͸͜ͷͭʢΠϕϯτ͝ͱʹมಈ͢Δʂʣ
 -BNCEB3VOUJNF"XT3FRVFTU*ECGG⒎GDDEBB BCBFDG ͜ͷϦΫΤετ*%͸Πϕϯτॲཧޙ-BNCEBʹฦ৴ͨΊʹඞཁ )551CPEZ͸-BNCEB͕ड৴ͨ͠Πϕϯτʢ+40/σʔλʣ

Slide 23

Slide 23 text

ΠϕϯτΛॲཧ͢Δ KBXTVH $POUFYUͱ-PHHFSΦϒδΣΫτΛ࡞੒ʢ೚ҙʣ ྫ֎͕ରԠͯ͠Δݴޠ͸USZDBUDIΛ༻ҙ͢Δ ؔ਺ϋϯυϥʔΛݺͼग़͢ 1)1Ͱ͸DBMM@VTFS@GVOD ͸ؔ਺໊Λࢦఆ͢Δ
 จࣈྻͰؔ਺Λݺͼग़ͤΔ

Slide 24

Slide 24 text

)551ͰϨεϙϯεΛૹΔ KBXTVH Πϕϯτॲཧ͔Βͷ+40/σʔλ໭Γ஋Λ-BNCEBʹฦ͢ -BNCEB΁)551ϦΫΤετΛૹ৴
 1045ΤϯυϙΠϯτSVOUJNFJOWPDBUJPO3FR*%SFTQPOTF
 ‎IUUQSVOUJNFJOWPDBUJPO
 CGG⒎GDDEBBBCBFDGSFTQPOTF )551CPEZ͸จࣈྻʹม׵ͨ͠+40/σʔλ ׬ྃʂϧʔϓͰ࣍ʹड৴ͨ͠ΠϕϯτॲཧΛߦ͏

Slide 25

Slide 25 text

͔͠͠ KBXTVH ࣍ͷΠϕϯτ͕·ͩଘࡏ͠ͳ͍ͳΒͲ͏ͳΔ

Slide 26

Slide 26 text

Πϕϯτ͕·ͩଘࡏ͠ͳ͍ͱͲ͏ͳΔ KBXTVH ࣍ͷΠϕϯτΛड৴͢ΔͨΊ-BNCEB΁ͷ)551઀ଓ ͸੒ޭ͢Δ ΧελϜϥϯλΠϜͷ(&5ϦΫΤετૹ৴͸੒ޭ͢Δ $63-015@5*.&065͕ઃఆ͞ΕͯΔͷͰ
 -BNCEB͔Βฦ৴͕དྷΔ·Ͱແݶʹ଴ͭʂ

Slide 27

Slide 27 text

Πϕϯτ͕·ͩଘࡏ͠ͳ͍ͱͲ͏ͳΔ KBXTVH IUUQTHJUIVCDPNBXTMBCTBXTMBNCEBDQQCMPC NBTUFSTSDSVOUJNFDQQ͔Βͷίϝϯτ
 
 Πϕϯτ͕ଘࡏ͠ͳ͍৔߹͸ίϯςφ͕Ұ࣌ఀࢭ͞ΕΔ ͨͩ͠ɺ͙͢ʹఀࢭ͞Εͳ͍ͷͰड৴λΠϜΞ΢τͯ͠
 ͠·͏ͱΤϥʔॲཧ͠ͳ͚Ε͹ͳΒͳ͍ ແݶλΠϜΞ΢τઃఆ͢Ε͹λΠϜΞ΢τͷճආ͸Ͱ͖Δ

Slide 28

Slide 28 text

ΧελϜϥϯλΠϜΛϨΠϠʔʹ KBXTVH CPPUTUSBQ͕ϧʔτʹ͋ΔΑ͏ʹ[JQΛ࡞੒
 
 
 [JQ͔ΒϨΠϠʔΛ࡞੒ͯ͠-BNCEB΁Ξοϓϩʔυ $ zip -v -9 -r -D ../php-7.3.9-runtime.zip * adding: bootstrap (in=66) (out=46) (deflated 30%) adding: php-runtime/bin/php (in=6105792) (out=2471517) (deflated 60%) adding: php-runtime/bootstrap.php (in=6380) (out=2451) (deflated 62%) adding: php-runtime/Context.inc.php (in=1209) (out=628) (deflated 48%) adding: php-runtime/Logger.inc.php (in=1853) (out=784) (deflated 58%) total bytes=6115300, compressed=2475426 -> 60% savings $ aws lambda publish-layer-version --layer-name php-7_3_9-runtime --zip-file fileb://php-7.3.9-runtime.zip

Slide 29

Slide 29 text

1)1Ͱ-BNCEBʂ KBXTVH -BNCEBؔ਺Λ࡞੒ʢίϯιʔϧͷΤσΟλʔͰ΋ʣ Ξοϓϩʔυͨ͠1)1ϨΠϠʔΛؔ਺ʹ௥Ճ ࣮ߦʂ

Slide 30

Slide 30 text

ެ։ͨ͠1)1ϥϯλΠϜΛੋඇʂ KBXTVH ίʔϧυɾϑϡʔδϣϯ͸-BNCEBͰ1)1Λࠓޙͱ ΋׬શʹαϙʔτ͍ͨ͠ͷͰ৽نͷ1)1ϦϦʔε΋ ެ։͠ଓ͚·͢ʂ QIQBSOBXTMBNCEBBQOPSUIFBTUMBZFSQIQ@@SVOUJNF QIQBSOBXTMBNCEBBQOPSUIFBTUMBZFSQIQ@@SVOUJNF QIQBSOBXTMBNCEBBQOPSUIFBTUMBZFSQIQ@@SVOUJNF QIQBSOBXTMBNCEBBQOPSUIFBTUMBZFSQIQ@@SVOUJNF

Slide 31

Slide 31 text

͢΂ͯΦʔϓϯιʔε KBXTVH "84-BNCEB1)13VOUJNF-BZFS
 IUUQTHJUMBCDPNDPMEGVTJPOKQBXTMBNCEBQIQSVOUJNF "844%,GPS1)1-BNCEB-BZFS
 IUUQTHJUMBCDPNDPMEGVTJPOKQBXTTELQIQMBNCEBMBZFS "NB[PO-JOVYDMBOHMMWN%PDLFSJNBHF
 IUUQTIVCEPDLFSDPNSDPMEGVTJPOKQBNB[POMJOVYDMBOH
 IUUQTHJUMBCDPNDPMEGVTJPOKQCVJMEDMBOHMMWN .*5ϥΠηϯε(JU-BC$*ʹΑΔࣗಈϏϧυςετ

Slide 32

Slide 32 text

͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·͢ʂ
 
 KBXTVH