AWS Lambda란 무엇인가요?
AWS Lambda란 무엇인가요?
서버를 직접 관리하지 않고도 코드를 실행하고 싶다면 AWS Lambda가 정답이에요. Lambda는 서버리스 컴퓨팅(serverless compute) 서비스로, 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행할 수 있게 해줘요. 서버 유지보수, 용량 프로비저닝, 스케일링, 패치 적용까지 Lambda가 인프라를 자동으로 관리하니까 여러분은 애플리케이션 로직에만 집중하면 돼요.
두 가지 컴퓨팅 프리미티브
Lambda는 서로 다른 워크로드 패턴을 위해 설계된 두 가지 컴퓨팅 프리미티브를 제공해요.
- Lambda Functions — 이벤트나 API 호출에 응답해 서버 관리 없이 코드를 실행하는 방식이에요. 핸들러 함수를 작성하고 API Gateway, Amazon S3, Amazon SQS, EventBridge를 포함한 200개 이상의 AWS 서비스 중 트리거에 연결하면 Lambda가 실행해요. 각 호출(invocation)은 독립적으로 실행되어 공유 상태가 없고, 수요에 맞춰 수평 확장돼요. Lambda가 실행 환경·스케일링·라우팅·내결함성을 관리해요.
- Lambda MicroVMs — 거의 즉시 시작되고 최대 8시간까지 상태를 유지하는 격리된 컴퓨팅 환경이에요. 사용자나 작업 하나마다 전용 컴퓨팅 환경이 필요한 워크로드를 위해 설계됐어요. Lambda가 격리·용량·네트워킹을 관리하고, 애플리케이션은 Lambda MicroVMs API와 HTTPS 엔드포인트로 각 사용자/작업을 컴퓨팅 환경에 연결해요.
Lambda Functions와 Lambda MicroVMs 비교
둘은 서버리스 기반을 공유해요.
- 서버 관리 불필요 — AWS가 인프라·인스턴스 패칭·용량을 관리해요.
- 사용량 기반 과금 — 선결제 없이 사용한 리소스에 대해서만 지불해요.
- 관리형 네트워킹 — 둘 다 서비스 관리형 인바운드·아웃바운드 네트워크 접근을 제공해요.
- Firecracker 가상화 — 워크로드 간 VM 수준의 격리를 제공해요.
같은 기반을 공유하지만 용도는 다릅니다. 핵심 차이를 정리하면 이렇게 돼요.
| 구분 | Lambda Functions | Lambda MicroVMs |
|---|---|---|
| 적합한 용도 | 요청-응답 또는 이벤트 기반 워크로드 (API, 데이터 처리, 자동화) | 사용자·AI 생성 비신뢰 코드를 실행하는 영속 환경 |
| 프로그래밍 모델 | 지원 런타임에서 호출되는 함수 핸들러 | 바이너리 실행·포트 수신·Linux OS 기능 사용 가능한 모든 애플리케이션 |
| 지속 시간 | 호출당 최대 15분, Lambda Durable Functions로 최대 1년 멀티스텝 워크플로 | 세션당 최대 8시간, 세션 간 일시정지·재개 가능 |
| 런타임 환경 | 서비스 제공 언어 런타임, 고객 제공 런타임 지원 | 고객 제공 MicroVM 이미지 |
| 인바운드 네트워킹 | 직접 호출 또는 AWS 서비스 이벤트 소스 통합, 응답 스트리밍 지원 | OSI Layer 7 프로토콜로 모든 포트 인바운드 접근 |
| 동시성 | 실행 환경당 한 번에 하나의 요청 | MicroVM당 다중 동시 연결 |
| 환경 상태 | 실행 환경 재사용(웜 스타트) 가능하지만 호출 간 상태 비영속 | 일시정지 시 메모리·디스크 상태 보존, 재개 시 복원 |
| 스케일링 | 자동 — Lambda가 트래픽에 맞춰 실행 환경 생성·소멸 | 개발자 제어 — API로 MicroVM 생성·일시정지·재개·종료 |
| 라이프사이클 | Lambda가 완전 관리 | 개발자 제어, 선택적 idle 정책으로 자동 일시정지·재개 |
| 요금 | 요청당 + GB-초 실행 시간 | 실행 중 초당 컴퓨팅 + 일시정지 중 스냅샷 스토리지 |