함수에 레이어 추가하기
함수에 레이어 추가하기 (Adding layers to functions)
Lambda 레이어(layer)는 보조 코드나 데이터를 포함하는 .zip 파일 아카이브예요. 레이어는 보통 라이브러리 의존성, 커스텀 런타임(custom runtime), 또는 구성 파일을 담아요.
이 섹션에서는 Lambda 함수에 레이어를 추가하는 방법을 설명해요. 레이어에 대한 더 개념적인 정보와 레이어를 쓸 이유는 레이어로 Lambda 의존성 관리하기를 참고하세요.
Lambda 함수가 레이어를 사용하도록 구성하려면 먼저 다음이 필요해요.
- 레이어 콘텐츠 패키징하기
- Lambda에서 레이어 만들기
- 레이어 버전에서 GetLayerVersion API를 호출할 권한이 있어야 해요. 여러분 AWS 계정의 함수라면 사용자 정책(user policy)에 이 권한이 있어야 해요. 다른 계정의 레이어를 쓰려면 그 계정의 소유자가 리소스 기반 정책(resource-based policy)에서 여러분 계정에 권한을 부여해야 해요. 예시는 다른 계정에 Lambda 레이어 접근 부여하기를 참고하세요.
Lambda 함수에는 레이어를 최대 5개까지 추가할 수 있어요. 함수와 모든 레이어의 총 압축 해제 크기는 압축 해제 배포 패키지 크기 할당량인 250MB를 초과할 수 없어요. 자세한 내용은 Lambda 할당량(quotas)을 참고하세요.
이미 추가한 레이어 버전은 그 버전이 삭제되거나 레이어 접근 권한이 철회된 뒤에도 함수가 계속 사용할 수 있어요. 다만 삭제된 레이어 버전을 사용하는 새 함수는 만들 수 없어요.
함수에 레이어를 추가하려면
- Lambda 콘솔의 Functions 페이지를 열어요.
- 함수를 선택해요.
- Layers 섹션까지 아래로 스크롤하고 Add a layer를 선택해요.
- Choose a layer 아래에서 레이어 원본을 선택해요.
- AWS layers: AWS 관리형 확장 목록에서 선택해요.
- Custom layers: 여러분 AWS 계정에서 만든 레이어를 선택해요.
- Specify an ARN: 다른 AWS 계정의 레이어(예: 서드파티 확장)를 사용하려면 Amazon Resource Name(ARN)을 입력해요.
- Add를 선택해요.
레이어를 추가하는 순서가 Lambda가 레이어 콘텐츠를 실행 환경에 병합하는 순서예요. 콘솔에서 레이어 병합 순서를 바꿀 수 있어요.
함수의 레이어 병합 순서 업데이트하기 (콘솔)
- Lambda 콘솔의 Functions 페이지를 열어요.
- 구성할 함수를 선택해요.
- Layers 아래에서 Edit을 선택해요.
- 레이어 중 하나를 선택해요.
- Merge earlier 또는 Merge later를 선택해 레이어 순서를 조정해요.
- Save를 선택해요.
레이어는 버전 관리돼요. 각 레이어 버전의 콘텐츠는 불변이에요. 레이어 소유자는 새 레이어 버전을 출시해 업데이트된 콘텐츠를 제공할 수 있어요. 콘솔로 함수에 연결된 레이어 버전을 업데이트할 수 있어요.
함수의 레이어 버전 업데이트하기 (콘솔)
- Lambda 콘솔의 Layers 페이지를 열어요.
- 버전을 업데이트하려는 레이어를 선택해요.
- Functions using this version 탭을 선택해요.
- 수정하려는 함수를 선택한 다음 Edit을 선택해요.
- Layer version에서 바꿀 레이어 버전을 선택해요.
- Update functions를 선택해요.
AWS 계정 간에 함수 레이어 버전은 업데이트할 수 없어요.
본문
레이어 정보 찾기
함수의 런타임과 호환되는 계정의 레이어를 찾으려면 ListLayers API를 사용해요. 예를 들어 다음 list-layers AWS Command Line Interface(CLI) 명령을 사용할 수 있어요.
aws lambda list-layers --compatible-runtime python3.14
다음과 비슷한 출력이 보여요.
{
"Layers": [
{
"LayerName": "my-layer",
"LayerArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer",
"LatestMatchingVersion": {
"LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:2",
"Version": 2,
"Description": "My layer",
"CreatedDate": "2025-04-15T00:37:46.592+0000",
"CompatibleRuntimes": [
"python3.14"
]
}
}
]
}
계정의 모든 레이어를 나열하려면 --compatible-runtime 옵션을 생략해요. 응답 세부 정보는 각 레이어의 최신 버전을 보여줘요.
ListLayerVersions API로 레이어의 최신 버전을 가져올 수도 있어요. 예를 들어 다음 list-layer-versions CLI 명령을 사용할 수 있어요.
aws lambda list-layer-versions --layer-name my-layer
다음과 비슷한 출력이 보여요.
{
"LayerVersions": [
{
"LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:2",
"Version": 2,
"Description": "My layer",
"CreatedDate": "2023-11-15T00:37:46.592+0000",
"CompatibleRuntimes": [
"java11"
]
},
{
"LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:1",
"Version": 1,
"Description": "My layer",
"CreatedDate": "2023-11-15T00:27:46.592+0000",
"CompatibleRuntimes": [
"java11"
]
}
]
}