# * AWS Lambda Layer

Written by πŸ“ Tesilio

AWS Lambda LayerλŠ” 라이브러리, μ‚¬μš©μž 지정 λŸ°νƒ€μž„ λ˜λŠ” κ·Έ μ™Έ 쒅속성을 ν¬ν•¨ν•˜λŠ” ZIP μ•„μΉ΄μ΄λΈŒμ΄λ‹€.
μ—¬λŸ¬ Lambda ν•¨μˆ˜μ—μ„œ κ³΅ν†΅μœΌλ‘œ μ“°λŠ” 라이브러리 νŒ¨ν‚€μ§€λ‚˜ λͺ¨λ“ˆμ΄ μžˆλ‹€λ©΄, AWS Lambda Layer둜 κ΅¬μ„±ν•˜λŠ” 것이 μ’‹λ‹€. 그러면 배포 νŒ¨ν‚€μ§€λ₯Ό μž‘κ²Œ μœ μ§€ν•  수 μžˆμ–΄ 개발 및 관리가 μš©μ΄ν•΄μ§„λ‹€.

λͺ‡κ°€μ§€ μ‚¬μš© νŒμ„ μ•Œμ•„λ³΄μž.

그전에,

TIP

  • AWS 계정이 있고, Lambdaλ₯Ό μ‚¬μš©ν•΄λ΄€λ˜ μ‚¬λžŒμ„ λŒ€μƒμœΌλ‘œ ν•œλ‹€.
  • Layerλ₯Ό λ§Œλ“œλŠ” 방법은 이 ν¬μŠ€νŒ…μ—μ„œ μ„€λͺ…ν•˜μ§€ μ•ŠλŠ”λ‹€. κ³΅μ‹λ¬Έμ„œλ₯Ό μ°Έμ‘°ν•˜μž.

# μ‚¬μš©ν•˜κΈ°

AWS μ½˜μ†”μ„ μ΄μš©ν•˜κ±°λ‚˜ AWS CLIλ₯Ό μ΄μš©ν•˜μ—¬ zip으둜 μ••μΆ•ν•œ νŒŒμΌμ„ μ—…λ‘œλ“œν•˜λ©΄, ν•΄λ‹Ή zipνŒŒμΌμ€ /opt 폴더 ν•˜μœ„μ— unzip λœλ‹€. 그럼 Lambda ν•¨μˆ˜μ—μ„œ ν•΄λ‹Ή λͺ¨λ“ˆμ΄λ‚˜ νŒ¨ν‚€μ§€λ₯Ό 뢈러였렀면 μ–΄λ–»κ²Œ ν•΄μ•Ό ν• κΉŒ? μ ˆλŒ€κ²½λ‘œλ‘œ λΆˆλŸ¬μ™€λ„ λ˜μ§€λ§Œ, λ‘œμ»¬ν™˜κ²½μ΄λ‚˜ κ°œλ°œν™˜κ²½κ³ΌλŠ” λ‹€λ₯Έ μž„ν¬νŠΈ κ²½λ‘œκ°€ 될 것이닀.

NodeJs8.10 κΈ°μ€€μœΌλ‘œ λͺ¨λ“ˆμ„ λΆˆλŸ¬μ˜€λŠ” κΈ°λ³Έ 경둜(NODE_PATH)λŠ” μ•„λž˜μ™€ κ°™λ‹€.

  • /opt/nodejs/node8/node_modules
  • /opt/nodejs/node_modules
  • /var/runtime/node_modules
  • /var/runtime
  • /var/task
  • /var/runtime/node_modules

μœ„μ— μ—…λ‘œλ“œν•œ zip 파일이 unzip λ˜λŠ” 곳이 κ²°κ΅­ /opt 폴더 ν•˜μœ„λ‹€. 이건 μ–Έμ–΄λ‚˜ λŸ°νƒ€μž„κ³Ό 상관없닀. NodeJs의 κ²½μš°μ—” /opt/nodejs/node8/node_modules 와 /opt/nodejs/node_modules 처럼 폴더ꡬ쑰λ₯Ό λ³€κ²½ν•˜μ—¬ μ••μΆ• ν›„ μ—…λ‘œλ“œλ₯Ό ν•˜λ©΄, μ ˆλŒ€κ²½λ‘œλ₯Ό 쓰지 μ•Šμ•„λ„ λͺ¨λ“ˆμ„ μž„ν¬νŠΈ ν•  수 μžˆλ‹€.

# μ œν•œμ‚¬ν•­

  • ν•˜λ‚˜μ˜ Lambda ν•¨μˆ˜λ‹Ή μ΅œλŒ€ 5개의 Layerλ₯Ό μ‚¬μš©κ°€λŠ₯ν•˜λ‹€.
  • Lambda ν•¨μˆ˜ 및 λͺ¨λ“  Layer의 μ••μΆ•λ˜μ§€ μ•Šμ€ 총 ν¬κΈ°λŠ” 250 MB을 μ΄ˆκ³Όν•  수 μ—†λ‹€.
Last Updated: 7/5/2019, 8:38:55 AM