AWS DVA-C02AWS 허브발행일 2025. 8. 19.원본 https://blog.naver.com/jword_/223975055711 ↗

AWS DVA-C02 #44 Lambda 공유 라이브러리

AWS DVA-C02 #44 Lambda 공유 라이브러리 — #개발자의도구들 #AWS시험 #LambdaLayer #Lambda라이브러리 참고: ExamPotic Disscussion 문제 찾...

#DVA-C02#Naver Blog

#개발자의도구들 #AWS시험 #LambdaLayer #Lambda라이브러리

참고: ExamPotic Disscussion

문제 찾는법 : 여기 최하단

요구사항 분석

  • Lambda 함수 2개
  • 하나는 S3 + DynamoDB 저장
  • 하나는 S3 + DynamoDB 조회
  • 공통 Python 라이브러리 사용 → 배포 패키지 크기(50MB zipped / 250MB unzipped 제한)에 가까워짐
  • 목표:
  • 패키지 크기 최소화
  • 운영 오버헤드 최소화 (즉, 관리/코드 변경 부담 줄이기)

보기 분석

A. 각 라이브러리를 .zip으로 다로 패키징 후, 각각 Lambda에 배포

​

B. Lambda Layer를 사용하여 python 라이브러리를 Layer로 빼서 각 함수에서 사용

​

C. 두 Lambda를 하나의 함수로 합치기

​

D. python 라이브러리를 S3에 두고, Lambda가 실행 시마다 다운로드.

​


A.

❌ 관리 비용 2배 증가.

​

B.

✅ 공통 라이브러리 Layer로 분리 하여 여러 Lambda에서 사용가능

​

C.

❌

  • 서로 다른 기능(저장 vs 조회)을 하나로 묶으면 관심사 분리 원칙 위반.
  • 코드 복잡성 증가, 유지보수 어려움.

​

D.

  • 실행할 때마다 S3에서 가져와야 함 → cold start 지연 증가.
  • 매번 I/O 발생 → 성능 저하.
  • 코드 수정 필요 → 운영 오버헤드 ↑.
  • ❌ AWS 모범 사례 아님.

요구 지식

✅ Lambda 사용시 공통 라이브러리를 사용하는 방법?

개념 정리

Lambda Layer

  • 공통 라이브러리, 런타인, 설정 파일 등을 Layer로 묶어서 올릴 수 있다.
  • 여러 Lambda 함수에서 재사용 가능하다 → 중복제거

​

​

ColdStart & 라이브러리 코딩

  • Lambda는 실행 환경을 콜드 스타트 시 최초 초기화 한다.
  • 큰 라이브러리 포함되면 초기 로딩 시간이 길어짐
  • Layer를 쓰면 중복된 라이브러리 사용가능으로 초기화 비용이 감소된다.

​

서버리스 모범 사례 (Best Practice)

  • 중복 라이브러리 제거 = Layer
  • 대규모 의존성 = Container Image
  • 데이터 공유/저장 = S3, DynamoDB
  • 코드 공유는 절대 S3에 두고 매번 불러오는 방식 쓰지 않음 (운영 오버헤드, Cold Start 지연)

​