SQS 이벤트 소스 매핑에 대한 규모 조정 동작 구성
표준 대개열의 경우 Lambda는 긴 폴링을 사용하여 대기열이 활성화될 때까지 대기열을 폴링합니다. 메시지를 사용할 수 있는 경우 Lambda는 함수를 동시에 5번 호출하여 한 번에 5개의 배치를 처리하기 시작합니다. 메시지를 계속 사용할 수 있는 경우 Lambda는 배치를 읽는 프로세스의 수를 분당 최대 300개의 추가 인스턴스까지 증가시킵니다. 이벤트 소스 매핑으로 동시에 처리할 수 있는 최대 배치 수는 1,000개입니다.
FIFO 대기열의 경우, Lambda는 메시지를 수신하는 순서대로 함수에 메시지를 보냅니다. FIFO 대기열에 메시지를 전송할 때 메시지 그룹 ID를 지정합니다. Amazon SQS는 동일한 그룹의 메시지가 순서대로 Lambda에 전송되도록 합니다. Lambda가 메시지를 배치로 읽을 때 각 배치에는 둘 이상의 메시지 그룹의 메시지가 포함될 수 있지만 메시지 순서는 그대로 유지됩니다. 함수가 오류를 반환하면 함수는 Lambda가 동일한 그룹에서 추가 메시지를 수신하기 전에 영향을 받는 메시지에 대해 모든 재시도를 시도합니다.
Amazon SQS 이벤트 소스의 최대 동시성 구성
최대 동시성 설정을 사용하여 SQS 이벤트 소스의 규모 조정 동작을 제어할 수 있습니다. 최대 동시성 설정은 Amazon SQS 이벤트 소스가 호출할 수 있는 함수의 동시 인스턴스 수를 제한합니다. 최대 동시성은 이벤트 소스 수준 설정입니다. 여러 Amazon SQS 이벤트 소스가 하나의 함수에 매핑되어 있는 경우, 각 이벤트 소스마다 별도의 최대 동시성 설정이 있을 수 있습니다. 최대 동시성을 사용하여 단일 대기열이 함수의 예약된 동시성 전체를 사용하거나 계정의 나머지 동시성 할당량을 사용하지 못하도록 할 수 있습니다. Amazon SQS 이벤트 소스에 대해 최대 동시성을 구성하는 데는 요금이 부과되지 않습니다.
중요한 것은 최대 동시성과 예약된 동시성은 독립된 두 설정이라는 것입니다. 함수의 예약된 동시성보다 큰 최대 동시성을 설정하지 마세요. 최대 동시성을 구성한 경우, 함수의 예약된 동시성이 함수의 모든 Amazon SQS 이벤트 소스에 대한 총 최대 동시성보다 크거나 같은지 확인합니다. 그렇지 않으면 Lambda가 메시지를 제한할 수도 있습니다.
계정의 동시 실행 할당량이 기본값인 1,000으로 설정된 경우, 최대 동시성을 지정하지 않는 한 Amazon SQS 이벤트 소스 매핑은 함수 인스턴스를 이 값까지 호출하도록 확장할 수 있습니다.
계정의 기본 동시성 할당량이 증가하면 Lambda가 새 할당량까지 동시 함수 인스턴스를 호출하지 못할 수 있습니다. 기본적으로 Lambda는 Amazon SQS 이벤트 소스 매핑을 위해 최대 1,250개의 동시 함수 인스턴스를 호출하도록 확장할 수 있습니다. 사용 사례에 충분하지 않은 경우 AWS Support에 문의하여 계정의 Amazon SQS 이벤트 소스 매핑 동시성 증가에 대해 논의하세요.
참고
FIFO 대기열의 경우 동시 호출은 메시지 그룹 ID(messageGroupId
) 또는 최대 동시성 설정 중 더 낮은 값으로 제한됩니다. 예를 들어, 메시지 그룹 ID가 6개이고 최대 동시성이 10으로 설정된 경우 함수는 최대 6개의 동시 호출을 가질 수 있습니다.
신규 및 기존 Amazon SQS 이벤트 소스 매핑에 대해 최대 동시성을 구성할 수 있습니다.
Lambda 콘솔을 사용하여 최대 동시성 구성
Lambda 콘솔의 함수 페이지
를 엽니다. -
함수의 이름을 선택합니다.
-
Function overview(함수 개요)에서 SQS를 선택합니다. 그러면 Configuration(구성) 탭이 열립니다.
-
Amazon SQS 트리거를 선택하고 Edit(편집)를 선택합니다.
-
Maximum concurrency(최대 동시성)에 2에서 1,000 사이의 숫자를 입력합니다. 최대 동시성을 해제하려면 상자를 비워 둡니다.
-
Save(저장)를 선택합니다.
AWS Command Line Interface(AWS CLI)를 사용하여 최대 동시성 구성
--scaling-config
옵션과 함께 update-event-source-mapping
aws lambda update-event-source-mapping \ --uuid
"a1b2c3d4-5678-90ab-cdef-11111EXAMPLE"
\ --scaling-config'{"MaximumConcurrency":5}'
최대 동시성을 해제하려면 --scaling-config
에 빈 값을 입력합니다.
aws lambda update-event-source-mapping \ --uuid
"a1b2c3d4-5678-90ab-cdef-11111EXAMPLE"
\ --scaling-config"{}"
Lambda API를 사용하여 최대 동시성 구성
ScalingConfig 객체와 함께 CreateEventSourceMapping 또는 UpdateEventSourceMapping 작업을 사용합니다.