Layers
1 AWS Lambda Layers
- AWS Lambda Layers는 Lambda 함수의 코드를 효율적으로 관리하고 재사용할 수 있게 해주는 기능입니다.
- 이 기능을 통해 라이브러리, 커스텀 런타임, 또는 기타 함수 종속성을 별도의 계층으로 패키징할 수 있습니다.
- Lambda Layers를 사용하면 함수 코드와 종속성을 분리하여 개발 프로세스를 간소화하고 함수 패키지 크기를 줄일 수 있습니다.
2 Lambda Layers의 주요 특징
- 코드 재사용: 여러 함수에서 공통 코드를 공유할 수 있습니다.
- 버전 관리: 각 Layer는 버전 관리가 가능하여 함수의 안정성을 향상시킵니다.
- 권한 제어: Layer에 대한 액세스를 제어하여 조직 내에서 또는 공개적으로 공유할 수 있습니다.
- 배포 최적화: 함수 코드와 종속성을 분리함으로써 배포 프로세스를 최적화할 수 있습니다.
- 런타임 지원: 다양한 런타임과 호환되며, 커스텀 런타임도 Layer로 제공할 수 있습니다.
- 불변성: 한 번 게시된 Layer 버전은 수정할 수 없어 안정성과 일관성을 보장합니다.
3 Lambda Layers의 불변성
- Lambda Layers는 불변(immutable) 특성을 가지고 있습니다.
- 이는 한 번 게시된 Layer 버전은 수정할 수 없음을 의미합니다.
- 불변성의 주요 이점:
- 안정성: 함수가 의존하는 Layer가 예기치 않게 변경되는 것을 방지합니다.
- 버전 관리: 각 변경사항에 대해 새로운 버전을 생성하여 명확한 이력 관리가 가능합니다.
- 롤백 용이성: 문제 발생 시 이전 버전의 Layer로 쉽게 롤백할 수 있습니다.
3.1 Layer 업데이트 방법
- Layer를 "수정"하는 대신, 새로운 버전을 생성하여 업데이트를 수행합니다:
- 새로운 코드나 라이브러리로 새 ZIP 파일을 준비합니다.
- 동일한 Layer 이름으로 새 버전을 게시합니다.
- Lambda 함수의 구성을 업데이트하여 새 Layer 버전을 사용하도록 변경합니다.
4 Lambda Layers 사용 방법
4.1 Layer 생성
- Layer를 생성하려면 종속성을 포함한 ZIP 아카이브를 준비해야 합니다.
- AWS Management Console, AWS CLI, 또는 AWS SDK를 통해 Layer를 생성할 수 있습니다.
AWS CLI를 사용한 Layer 생성 예시
aws lambda publish-layer-version \
--layer-name my-layer \
--description "My shared library" \
--license-info "MIT" \
--zip-file fileb://layer.zip \
--compatible-runtimes python3.8 python3.9
- 이 명령은 'my-layer'라는 이름의 Layer를 생성하고, Python 3.8과 3.9 런타임과 호환되도록 설정합니다.
4.2 Lambda 함수에 Layer 추가
- 생성된 Layer는 Lambda 함수의 구성에 추가할 수 있습니다.
- 하나의 함수에 최대 5개의 Layer를 추가할 수 있습니다.
AWS Management Console에서 Layer 추가 방법
- Lambda 함수 구성 페이지로 이동합니다.
- 'Layers' 섹션에서 'Add a layer'를 클릭합니다.
- 사용할 Layer와 버전을 선택합니다.
- 'Add'를 클릭하여 Layer를 함수에 추가합니다.
5 Lambda Layers의 장점
- 코드 중복 감소: 공통 라이브러리를 여러 함수에서 재사용할 수 있습니다.
- 배포 패키지 크기 감소: 종속성을 Layer로 분리하여 함수 패키지 크기를 줄일 수 있습니다.
- 개발 및 배포 프로세스 개선: 코드 업데이트와 종속성 관리를 분리할 수 있습니다.
- 버전 관리 용이: Layer의 버전을 개별적으로 관리할 수 있어 함수의 안정성을 높일 수 있습니다.
- 공유 및 협업 강화: 팀 또는 조직 간에 Layer를 쉽게 공유할 수 있습니다.
- 안정성 보장: Layer의 불변성으로 인해 예기치 않은 변경을 방지하고 일관된 실행 환경을 제공합니다.