AWS Lambda이란 무엇인가요?
AWS Lambda는 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있는 서버리스 컴퓨팅 서비스입니다. Lambda가 서버 유지 보수, 용량 프로비저닝, 스케일링 및 패칭을 포함한 기본 인프라를 자동으로 관리하므로 사용자는 애플리케이션 로직에 집중할 수 있습니다.
Lambda는 서로 다른 워크로드 패턴에 맞게 설계된 두 가지 컴퓨팅 프리미티브를 제공합니다.
-
Lambda 함수 - 서버를 관리하지 않고 이벤트 또는 API 직접 호출에 대한 응답으로 코드를 실행합니다. 핸들러 함수를 작성하고 트리거(API Gateway, Amazon S3, Amazon SQS, EventBridge 및 200여 개의 기타 AWS 서비스)에 연결하면 Lambda가 이를 실행합니다. 각 간접 호출은 공유된 상태 없이 독립적으로 실행되며 수요에 맞게 수평적으로 스케일링됩니다. Lambda는 실행 환경, 스케일링, 라우팅 및 내결함성을 관리합니다.
-
Lambda MicroVM - 거의 즉시 시작되며 최대 8시간 동안 상태를 유지하는 격리된 컴퓨팅 환경입니다. 각 개별 사용자 또는 작업에 대한 전용 컴퓨팅 환경이 필요한 워크로드용으로 설계되었습니다. Lambda는 격리, 용량 및 네트워킹을 관리합니다. 애플리케이션은 Lambda MicroVM API와 HTTPS 엔드포인트를 사용하여 각 사용자/작업을 컴퓨팅 환경에 연결합니다.
요금 정보는 AWS Lambda 요금
Lambda 함수와 Lambda MicroVM 비교
Lambda 함수와 Lambda MicroVM은 공통된 서버리스 기반을 공유합니다.
-
서버 관리 없음 - AWS는 기본 인프라, 인스턴스 패칭 및 용량을 관리합니다.
-
종량제 - 선결제 약정이 없습니다. 사용하는 리소스에 대해서만 비용을 지불합니다.
-
관리형 네트워킹 - 둘 다 서비스 관리형 인바운드 및 아웃바운드 네트워크 액세스를 제공합니다.
-
Firecracker 가상화 - 워크로드 간의 VM 수준 격리입니다.
이 기반을 공유하는 동안 다양한 사용 사례를 제공합니다.
| Lambda 함수 | Lambda MicroVM | |
|---|---|---|
| 최적의 용도 | 요청-응답 또는 이벤트 기반 워크로드(API, 데이터 처리, 자동화) | 사용자 또는 AI가 생성한 신뢰할 수 없는 코드를 실행하는 영구 환경 |
| 프로그래밍 모델 | 지원되는 런타임에 간접적으로 호출되는 함수 핸들러 | 모든 애플리케이션 - 자체 바이너리 실행, 포트에서 수신, Linux OS 기능 사용 |
| 지속 시간 | 간접 호출당 최대 15분, Lambda 내구성 함수를 사용하여 최대 1년 동안 지속되는 다단계 워크플로 | 세션당 최대 8시간, 세션 간 일시 중지 및 재개 |
| 런타임 환경 | 서비스 제공 언어 런타임, 고객 제공 런타임 지원 | 고객 제공 MicroVM 이미지 |
| 인바운드 네트워킹 | AWS 서비스에 대한 직접적인 간접 호출 또는 이벤트 소스 통합, 응답 스트리밍 지원 | OSI 계층 7 프로토콜을 사용하여 모든 포트에 대한 인바운드 액세스 |
| 동시성 | 실행 환경당 한 번에 하나의 요청 | MicroVM당 여러 동시 연결 |
| 환경 상태 | 실행 환경 재사용 가능(웜 스타트), 간접 호출 간에 상태가 지속되지 않을 수 있음 | 일시 중지 시 메모리 및 디스크 상태 유지 및 재개 시 복원 |
| 스케일링 | 자동 - Lambda가 트래픽에 따라 실행 환경 생성 및 폐기 | 개발자 제어 - API를 통해 MicroVM 생성, 일시 중지, 재개 및 종료 |
| 수명 주기 | Lambda에서 완전 관리 | 개발자 제어, 자동 일시 중지 및 재개를 위한 선택적 유휴 정책 |
| 요금 | 요청당 + GB-초 단위 실행 시간 | 실행 중 초당 컴퓨팅 + 일시 중지 중 스냅샷 스토리지 |