특정 패키지 또는 라이브러리를 여러 람다 함수에서 공유하여 사용하는 경우가 자주 있습니다. 이러한 공유되는 패키지는 비즈니스 로직의 구현을 간소화하기 위해 추가하는 사용자 정의 코드이거나, 하나 이상의 함수가 사용하는 코드이거나, 표준 라이브러리일 경우가 많습니다. 람다 레이어의 출시 이전에는 공유되는 패키지와 해당 패키지를 사용하여 실제 동작을 원하는 코드를 패키징하여 람다에 배포해왔습니다. 이러면 패키징의 사이즈가 커진다는 점과 다른 람다함수에서 해당 공유 패키지를 사용할 수 없다는 단점이 있었습니다. 

람다 레이어는 이러한 불편한 점을 해소하기 위해 나왔습니다. 공통적으로 사용할 패키지 또는 라이브러리를 압축 파일에 담아 하나의 람다 레이어로 업로드한 다음, 사용자는 함수 코드를 변경할 필요 없이, 람다 레이어 안의 라이브러리를 참조하여 사용하면 됩니다.

람다 레이어란?

  • 공통으로 사용되는 패키지 또는 라이브러리를 압축하여 업로드 함으로써 여러 람다함수에서 접근하여 코드 수정 없이 사용할 수 있음
  • 람다 함수는 최대 5개의 레이어를 참조할 수 있음
  • 업로드 할 패키지를 실행할 런타임을 직접 선택할 수 있음
  • 업로드가 성공하면 새로운 람다 레이어가 생성되고 각각의 레이어는 버전별로 수정이 불가능. 만약 수정이 필요하다면 zip파일을 다시 올리고 새로운 리비전이 생성
  • 람다 함수를 호출하면 제공한 순서대로 레이어가 /opt 폴더에 생성
    • 레이어는 모두 동일한 경로에 생성되므로 이전에 생성한 레이어와 다음 생성된 레이어의 이름이 같을 경우, 덮어씌워지는 문제가 발생할 수 있음. → 레이어 호출 순서 중요

람다 레이어 장점

  • 종속성과 사용자 정의 비즈니스 로직 사이에서 우려 요소를 강제로 분리
  • 함수 코드를 더 작고 제작 목적에 더 집중하도록 만듦
  • 패키징 및 업로드해야 할 코드가 더 적고 종속성을 재활용할 수 있으므로 배포 시간이 단축

마치며

람다 레이어를 사용하여 람다에 올릴 패키지의 용량을 줄일 수 있지만 람다는 250MB 크기 제약은 여전히 “한 함수의 소스코드 크기 + 레이어 크기 합”으로 되어 있기 때문에 레이어로 쪼개더라도 총 합이 250MB로 제약이 걸려 있습니다. 따라서 람다 레이어를 단순히 람다 함수의 패키지 용량을 줄이는 목적이 아닌 비즈니스 로직 분리 및 다른 람다 함수에서 공통적으로 사용하는 패키지를 업로드 하는 점에 집중 해야 람다 레이어를 쓰는 목적성을 뚜렷하게 볼 수 있을 것입니다.

'AWS' 카테고리의 다른 글

[AWS] 람다 레이어(Lambda Layer)란?  (0) 2019.01.27
[AWS] 람다(Lambda)란?  (0) 2019.01.27
[AWS-EC2] 리눅스, 맥 터미널로 EC2 Instance 접속하기  (0) 2016.09.23

+ Random Posts