AWS Lambda 함수 구성하기
AWS Lambda 함수 구성하기
Lambda API나 콘솔을 사용해 Lambda 함수의 핵심 기능과 옵션을 구성하는 방법을 알아봅니다. 이 문서는 배포 패키지, 컨테이너 이미지, 메모리·스토리지·타임아웃 조정, 환경 변수, VPC 연동, 별칭·버전, 태그, 응답 스트리밍, 메타데이터 엔드포인트 등 Lambda 함수를 운영하며 필요한 다양한 구성 항목을 안내하는 개요 페이지입니다.
본문
함수 코드와 별도로 패키징해야 하는 항목(의존성, 커스텀 런타임 레이어, 함수 코드 외의 추가 파일)이 있다면 Lambda 함수 배포 패키지를 만듭니다. 배포 패키지는 함수 코드와 의존성을 담은 .zip 파일 아카이브입니다.
빌드 과정을 더 세밀하게 제어해야 하거나 함수가 커스텀 런타임 구성을 요구할 때는 컨테이너 이미지를 사용해 함수 코드와 의존성을 패키징합니다. Docker CLI 같은 도구로 Lambda 함수를 컨테이너 이미지로 빌드·테스트·배포할 수 있습니다.
함수와 레이어가 코드 저장에 자체 S3 버킷을 사용하도록 구성할 수 있습니다. Lambda가 코드를 S3 버킷에서 직접 참조하므로 Lambda 관리형 스토리지 한도가 사라지고 최초 호출(첫 invoke)까지의 시간이 줄어듭니다.
- 함수 메모리를 언제, 어떻게 늘리는지 알아봅니다.
- 함수의 임시 스토리지 용량을 언제, 어떻게 늘리는지 알아봅니다.
- 함수의 타임아웃 값을 언제, 어떻게 늘리는지 알아봅니다.
- 환경 변수를 사용해 함수 코드를 이식 가능하게 만들고, 비밀값을 코드에 두지 않고 함수 구성에 저장해 안전하게 보관할 수 있습니다.
- Amazon VPC 안의 AWS 리소스와 함수를 연동할 수 있습니다. 함수를 VPC에 연결하면 프라이빗 서브넷 안의 관계형 데이터베이스나 캐시 같은 리소스에 접근할 수 있습니다.
- 인터페이스 VPC 엔드포인트를 사용하면 공용 인터넷을 거치지 않고 Lambda 함수를 호출할 수 있습니다.
- Lambda 함수가 Amazon EFS를 로컬 디렉터리에 마운트하도록 구성할 수 있습니다. 파일 시스템을 쓰면 함수 코드가 공유 리소스를 안전하게, 높은 동시성으로 접근·수정할 수 있습니다.
- 클라이언트를 갱신하지 않고도 **별칭(alias)**을 사용해 특정 Lambda 함수 버전을 호출하도록 구성할 수 있습니다.
- 함수의 버전을 게시하면 코드와 구성을 변경할 수 없는 별도의 리소스로 저장할 수 있습니다.
- 태그를 사용해 속성 기반 접근 제어(ABAC, attribute-based access control)를 활성화하고, Lambda 함수를 정리하며, AWS Cost Explorer나 AWS Billing and Cost Management 서비스로 함수를 필터링하고 보고서를 생성할 수 있습니다.
- Lambda 함수 URL이 응답 페이로드를 클라이언트로 스트리밍하도록 구성할 수 있습니다. 응답 스트리밍은 부분 응답을 준비되는 대로 클라이언트에 보낼 수 있어, 첫 바이트까지의 시간(TTFB, time to first byte) 성능을 개선해 대기 시간에 민감한 애플리케이션에 유리합니다. 또한 응답 스트리밍으로 더 큰 페이로드를 반환하는 함수를 만들 수도 있습니다.
- Lambda 메타데이터 엔드포인트를 사용해 함수가 실행 중인 가용 영역(Availability Zone)을 알아낼 수 있습니다. 같은 AZ의 리소스로 라우팅해 대기 시간을 최적화하고, AZ 인식 복원력(resilience) 패턴을 구현할 수 있습니다.