
Lambda란?

Serverless(서버리스 컴퓨팅) : (관리할) 서버가 없는 컴퓨팅
서버 관리 부담 없음
이벤트 기반 실행(HTTP 요청, 데이터베이스 변경, 파일 업로드 등)
비용 효율적(필요할 때만 실행), 순간적 확장성
작은 단위의 코드로 분할
다양한 클라우드 서비스와 통합
Lambda : 서버리스 컴퓨팅 서비스
서버를 관리하지 않고 코드 실행 환경을 자동으로 관리하는 서버리스 아키텍처 제공
다양한 이벤트 소스에서 트리거됨
다양한 프로그래밍 언어 지원
자동으로 스케일링됨 (트래픽 증가에 따라 함수 인스턴스 생성)
다른 AWS 서비스와 쉽게 통합 가능
실행 역할을 통해 액세스 권한 관리
Lambda 사용
특정한 시기 혹은 주기에만 코드를 실행하는 경우
서버를 띄우지 않고 간단한 코드를 실행하는 경우
트리거가 실행될 때만 코드를 실행하는 경우
Lambda 단점
리소스 제한 : 메모리 제한(최대 10GB), 처리 시간 제한(최대 900초)
Stateless : 별도로 상태를 저장하지 않음 (트리거될 때마다 완전히 새로운 환경)
ColdStart : 실행 환경 구성을 위한 약간의 딜레이 시간
동시성 제한 : 리전별로 동시에 실행할 수 있는 람다 함수 개수는 최대 1000개
Lambda 트리거란?
Lambda 트리거 : 람다 함수를 실행할 수 있는 이벤트
DB 데이터 변화
API Endpoint 호출
리소스 상태 변화 (CloudWatch 사용)
Cron 주기별로 실행 (정기적인 작업)
Lambda 모델 종류
동기식(Synchronous) : 람다 함수 앞단에 API Gateway Endpoint 결합, URL 호출 시 람다 함수 실행
비동기식(Asynchronous) : S3, CloudWatch, SNS를 트리거로 사용하여 이벤트 발생 시에 비동기로 람다 함수 자동 실행
스트림 베이스(Stream-based) : Kinesis(실시간 데이터 스트림 수집, 처리, 분석), DynamoDB와 함께 사용 가능

Lambda 함수 실행하기


event 객체 : Lambda를 트리한 이벤트에 대한 모든 정보
context 객체 : Lambda 함수가 실행되는 런타임에 대한 정보






Lambda 트리거 구축하기 ① - S3

console.log('Loading function');
export const handler = async (event, context) => {
//console.log(JSON.stringify(event));
return console.log(decodeURIComponent(event.Records[0].s3.object.key));
};





Lambda 트리거 구축하기 ② - API Gateway

console.log('Loading function');
export const handler = async (event, context) => {
const response = {
statusCode : 200,
body: "hello, Lambda!"
};
return response;
};








console.log('Loading function');
export const handler = async (event, context, callback) => {
// console.log(event);
callback(null, {
"statusCode": 200,
"headers": {
"Content-Type": "application/json", // json 형식으로 지정
},
"body": JSON.stringify({
method : event.requestContext?.http?.method, // http 메소드
id : event.pathParameters?.id, // 경로 파라미터
query: event.queryStringParameters?.filter, // 쿼리트스링 값
})
});
};


📢 세 줄로 정리해보기!
1️⃣ Lambda는 서버리스 컴퓨팅 서비스로, 특정한 주기 혹은 트리거에 의해 간단한 코드를 실행할 때 사용한다.
2️⃣ Lambda는 자동으로 스케일링되며 다른 AWS 서비스와 쉽게 통합하여 사용할 수 있지만, 리소스 제한, Stateless와 ColdStart, 그리고 동시성 제한이라는 단점을 갖고 있다.
3️⃣ Lambda 트리거란 람다 함수를 실행할 수 있는 이벤트로, S3, API Gateway, DynamoDB 등을 통해 동기식·비동기식·스트림 베이스로 함수를 실행할 수 있다.
참고 자료
└ 소플의 처음 만난 AWS
└ 람다(Lambda) 개념 & 사용법 총정리
└ 람다(Lambda) 트리거 기본 사용법 (S3 / API Gateway)