AWS Lambda 함수를 호출하도록 Amazon Simple Queue Service(Amazon SQS) 대기열을 구성했습니다. 현재 Lambda 함수가 예상대로 크기가 조정되지 않습니다. Amazon SQS 대기열을 이벤트 소스로 사용하는 경우 함수가 최적의 동시성 수준으로 크기가 조정되게 하려면 어떻게 해야 합니까?
해결 방법
참고: 최적의 실행 시 이벤트 소스로 구성된 Amazon SQS 대기열을 사용하는 Lambda 함수는 분당 최대 60개의 인스턴스로 확장할 수 있습니다. 최대 동시 호출 수는 1,000개입니다. FIFO 이벤트 소스 매핑을 사용하는 경우 함수는 활성 메시지 그룹 수에 따라 동시성을 조정할 수 있습니다. 보다 자세한 내용은 크기 조정 및 처리를 참조하십시오.
Lambda 함수 호출 오류 식별 및 해결
대규모 오류가 발생하지 않도록 Lambda는 호출 오류가 발생할 때 함수 크기 조정을 제한합니다. 오류가 해결되면 Lambda는 계속해서 함수의 크기를 조정합니다.
Lambda 함수 호출 오류를 식별하고 해결하는 방법에 대한 모범 사례는 다음을 참조하십시오.
Lambda 함수가 사용 사례에 대해 최적의 동시성을 사용하여 구성되었는지 확인
예약된 동시성
함수에 예약 동시성을 구성한 경우 함수가 예약 값에 도달하면 제한됩니다. 함수에 예약된 동시성 양은 최소한 다음과 같아야 합니다.
- 표준 Amazon SQS 대기열의 경우: 1,000
- FIFO 대기열의 경우: 적어도 활성 메시지 그룹의 수 이상
프로비저닝된 동시성
함수에 예약된 동시성을 구성하지 않은 경우 함수의 기본 예약되지 않은 동시성(프로비전된 동시성) 할당량은 1,000입니다. 이 기본 할당량은 동일한 AWS 계정 및 리전의 다른 함수와 공유됩니다. 함수의 리전에서 사용할 수 있는 프로비저닝된 동시성이 1,000 이상인 경우 함수는 최대 동시성에 도달할 때까지 계속 조정됩니다. 프로비저닝된 모든 동시성이 사용 중이면 호출이 제한됩니다.
자세한 내용은 Lambda 함수에 대한 동시성 관리를 참조하세요.
중요: 추가 동시 호출을 확장하려면 계정이 해당 리전의 조정 또는 버스트 동시성을 위한 서비스 할당량에 근접해서는 안 됩니다. 리전에 대해 더 높은 동시성이 필요한 경우 Service Quotas 콘솔에서 서비스 할당량 증가를 요청합니다.
Amazon SQS 대기열에 Lambda 함수의 크기를 조정할 수 있는 충분한 메시지가 있는지 확인
Amazon SQS 대기열이 Lambda 함수를 호출하도록 구성된 경우 Lambda는 대기열에 메시지가 있는 경우에만 호출 크기를 조정합니다.
Amazon SQS 대기열의 메시지 수를 계속 처리해야 하는지 확인하려면 ApproximateNumberOfMessagesVisible 지표를 검토합니다.
지표가 낮거나 0인 경우 함수를 조정할 수 없습니다.
지표가 높고 호출 오류가 없는 경우 이벤트 알림에서 배치 크기를 늘려 보십시오. 기간 지표가 배치 크기 지표보다 빠르게 증가할 때까지 배치 크기를 늘립니다. 자세한 내용은 Lambda 콘솔에서 함수 모니터링을 참조하세요.
참고: 표준 Amazon SQS 대기열의 최대 배치 크기는 10,000개의 레코드입니다. FIFO 대기열의 경우 최대 배치 크기는 10개의 레코드입니다. 자세한 내용은 Amazon SQS API 참조의 ReceiveMessage를 참조하십시오.
관련 정보
Amazon SQS에서 Lambda 사용
AWS Lambda 함수 크기 조정
AWS Lambda 함수 동시성 관리