.NET Lambda 함수용 레이어 작업하기

.NET Lambda 함수용 레이어 작업하기 (Working with layers for .NET Lambda functions)

.NET으로 작성된 Lambda 함수에서 레이어(layer)로 의존성을 관리하는 건 권장하지 않아요. .NET은 컴파일 언어라서, 함수가 Init 단계에서 공유 어셈블리를 메모리에 수동으로 로드해야 하기 때문이에요. 이 과정은 콜드 스타트 시간을 늘릴 수 있죠. 레이어를 쓰면 배포 과정이 복잡해질 뿐만 아니라, 컴파일러 내장 최적화를 활용하지 못하게 돼요.

.NET 핸들러에서 외부 의존성을 쓰려면 컴파일 시점에 배포 패키지에 직접 포함하세요. 그러면 배포 과정이 단순해지고 .NET 컴파일러 내장 최적화를 활용할 수 있어요. NuGet 패키지 같은 의존성을 함수에 가져오고 사용하는 예시는 C#에서 Lambda 함수 핸들러 정의하기를 참고하세요.

출처: AWS Lambda 개발자 안내서

본문

.NET 함수의 의존성은 레이어가 아니라 배포 패키지에 직접 묶는 것이 기본 권장 사항이에요. 컴파일 언어의 특성상 공유 코드를 런타임에 레이어에서 로드하는 방식이 오히려 콜드 스타트 지연을 키울 수 있어요. 의존성을 배포 패키지에 직접 포함하면 배포 흐름이 단순해지고, .NET 컴파일러가 적용하는 크기·성능 최적화를 그대로 받아볼 수 있어요.

더 알아보기 (Learn more)