1 AWS Lambda의 동시성과 스로틀링
- AWS Lambda는 서버리스 컴퓨팅 서비스로, 동시성 관리와 스로틀링을 통해 효율적인 리소스 사용과 안정적인 성능을 제공합니다.
- 이 글에서는 Lambda의 동시성 개념, 스로틀링 메커니즘, 그리고 관련된 주요 기능들을 살펴보겠습니다.
2 Reserved Concurrency
2.1 Reserved Concurrency란?
- 동시성(Concurrency)은 Lambda 함수가 동시에 처리할 수 있는 인스턴스의 수를 의미합니다.
- 즉, 여러 요청이 동시에 들어올 때 Lambda가 병렬로 실행할 수 있는 함수의 복사본 수를 나타냅니다.
2.2 Lambda의 동시성 특징
- 동시성 한계: Lambda는 기본적으로 계정당 최대 1000개의 동시 실행을 지원합니다. 이는 모든 함수의 총 동시 실행 수를 의미합니다.
- 함수 레벨 제어: 각 함수에 대해 "예약된 동시성"을 설정하여 특정 함수의 리소스 사용을 제한하거나 보장할 수 있습니다. 이를 통해 중요한 함수가 항상 실행될 수 있도록 보장할 수 있습니다.
- 스로틀링: 동시성 한계를 초과하는 호출은 스로틀됩니다. 이는 시스템이 처리할 수 있는 양을 초과하는 요청을 제한하는 메커니즘입니다.
2.3 동시성의 중요성
- 성능 최적화: 적절한 동시성 설정은 애플리케이션의 응답 시간을 개선하고 처리량을 증가시킵니다.
- 비용 관리: 동시성을 제어함으로써 불필요한 함수 실행을 방지하고 비용을 최적화할 수 있습니다.
- 리소스 관리: 특정 함수가 모든 가용 동시성을 소비하는 것을 방지하여 다른 중요한 함수의 실행을 보장할 수 있습니다.
3 스로틀링 동작
- 스로틀링은 Lambda가 동시성 한계를 초과할 때 발생하며, 호출 유형에 따라 다르게 동작합니다:
- 동기식 호출: ThrottleError (HTTP 429 상태 코드)를 반환합니다.
- 비동기식 호출: 자동으로 재시도하며, 최종적으로 Dead Letter Queue (DLQ)로 이동합니다.