서버를 24시간 유지하지 않아도 됩니다.
AWS Lambda는 요청이 있을 때만 코드를 실행하고, 비용은 실행 시간(밀리초 단위)에 따라 청구됩니다.
서버리스가 유리한 경우
- 트래픽이 불규칙한 서비스 (이벤트성 캠페인, 배치 작업)
- 사용량이 적은 내부 API
- 이미지 리사이징, 파일 변환 등 단발성 처리 작업
- 오토스케일링이 필요하지만 운영 인력이 부족한 스타트업
Lambda + API Gateway 기본 구조
클라이언트 → API Gateway → Lambda 함수 → DynamoDB / RDS
API Gateway가 HTTP 엔드포인트를 제공하고, Lambda가 비즈니스 로직을 처리합니다.
Python으로 Lambda 함수 작성하기
import json
def lambda_handler(event, context):
name = event.get("queryStringParameters", {}).get("name", "World")
return {
"statusCode": 200,
"headers": {"Content-Type": "application/json"},
"body": json.dumps({"message": f"Hello, {name}!"})
}
이 코드를 zip으로 묶어 Lambda에 업로드하면 즉시 API가 됩니다.
비용 계산 (무료 티어 포함)
AWS Lambda 프리 티어는 매월 100만 건 요청, 40만 GB-초 무료입니다.
소규모 API라면 사실상 무료로 운영 가능합니다.
트래픽이 있더라도 1초짜리 함수 100만 번 실행 = 약 $1.67에 불과합니다.
실전 활용 팁
- Cold Start 최소화: Python/Node.js 사용 권장, 메모리 512MB 이상 설정
- 레이어(Layer) 활용: requests 같은 외부 패키지는 Lambda Layer로 분리
- 환경변수: API 키, DB URL은 반드시 환경변수 또는 SSM Parameter Store로 관리
- CloudWatch: 모든 Lambda 실행 로그가 자동으로 CloudWatch에 저장됨
SAM / Serverless Framework로 배포 자동화
AWS SAM이나 Serverless Framework를 쓰면 serverless deploy 한 줄로 Lambda 배포와 API Gateway 설정을 자동화할 수 있습니다.
서버 관리 없이, 필요할 때만 실행되고, 실행한 만큼만 비용을 내는 서버리스는 현대 백엔드 아키텍처의 중요한 선택지입니다.
작성한 정보가 조금이나마 유익하고 도움이 되셨다면, 가시기 전에 아래 광고 한번 살짝 눌러주시면 정말 큰 힘이 됩니다. 감사합니다!