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  QIQ NZTRMJ DVSM KTPO NCTUSJOH NIBTIΛ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-JOVY DMBOHMMWN%PDLFSJNBHF
 IUUQTIVCEPDLFSDPNSDPMEGVTJPOKQBNB[POMJOVYDMBOH
 IUUQTHJUMBCDPNDPMEGVTJPOKQCVJMEDMBOHMMWN  .*5ϥΠηϯε(JU-BC$*ʹΑΔࣗಈϏϧυ ςετ

Slide 32

Slide 32 text

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