Node.js Lambda 함수를 컨테이너 이미지로 배포하기

Node.js Lambda 함수를 컨테이너 이미지로 배포하기

Node.js Lambda 함수를 위한 컨테이너 이미지를 만드는 방법은 세 가지가 있어요. 이 페이지에서는 Lambda용 컨테이너 이미지를 빌드하고, 테스트하고, 배포하는 방법을 설명합니다.

출처: AWS Lambda 개발자 안내서

본문

Node.js용 AWS 베이스 이미지

AWS는 Node.js용으로 다음과 같은 베이스 이미지를 제공합니다:

Amazon ECR 저장소: gallery.ecr.aws/lambda/nodejs

Node.js 20 이상 베이스 이미지는 Amazon Linux 2023 최소 컨테이너 이미지를 기반으로 해요. 그 이전 베이스 이미지는 Amazon Linux 2를 사용합니다. AL2023은 Amazon Linux 2보다 더 작은 배포 공간과 glibc 같은 라이브러리의 최신 버전 등 여러 이점을 제공합니다.

AL2023 기반 이미지는 Amazon Linux 2의 기본 패키지 관리자인 yum 대신 microdnf(심볼릭 링크로 dnf)를 패키지 관리자로 사용합니다. microdnf는 dnf의 독립 실행형 구현입니다. AL2023 기반 이미지에 포함된 패키지 목록은 Amazon Linux 2023 컨테이너 이미지에 설치된 패키지 비교에서 Minimal Container 열을 참고하세요. AL2023과 Amazon Linux 2의 차이에 대한 자세한 내용은 AWS Compute Blog의 Introducing the Amazon Linux 2023 runtime for AWS Lambda를 참고하세요.

Node.js용 AWS 베이스 이미지 사용하기

Node.js용 AWS 베이스 이미지를 사용해 컨테이너 이미지를 만들고 배포하는 방법을 살펴봅니다.

런타임 인터페이스 클라이언트가 있는 대체 베이스 이미지 사용하기

OS-only 베이스 이미지나 대체 베이스 이미지를 사용한다면, 이미지에 런타임 인터페이스 클라이언트를 반드시 포함해야 해요. 런타임 인터페이스 클라이언트는 Lambda와 함수 코드 사이의 상호 작용을 관리하는 Runtime API를 확장합니다.

npm 패키지 관리자를 사용해 Node.js 런타임 인터페이스 클라이언트를 설치하세요:

npm install aws-lambda-ric

Node.js 런타임 인터페이스 클라이언트는 GitHub에서도 다운로드할 수 있어요.

다음 예시는 비-AWS 베이스 이미지를 사용해 Node.js용 컨테이너 이미지를 빌드하는 방법을 보여줘요. 예시 Dockerfile은 bookworm 베이스 이미지를 사용하며 런타임 인터페이스 클라이언트를 포함합니다.

더 알아보기 (Learn more)