Amazon SQS 이벤트 소스 조정을 통해 Lambda 함수가 최적으로 조정되지 않는 이유는 무엇입니까?

최종 업데이트 날짜: 2020년 1월 30일

Amazon Simple Queue Service(Amazon SQS) 트리거를 사용하는 AWS Lambda 함수가 예상대로 조정되지 않습니다. 함수가 최적의 동시성까지 조정되도록 하려면 어떻게 해야 합니까?

간략한 설명

SQS 대기열을 이벤트 소스로 구성하며 메시지를 처리할 수 있는 경우, Lambda는 최대 동시성 5로 시작합니다. 최적의 경우, Amazon SQS 트리거를 사용하는 Lambda 함수는 분당 최대 60개의 추가 인스턴스를 조정하여 최대 1,000개의 동시 호출까지 조정될 수 있습니다. 함수가 최적으로 조정되려면 다음 조건을 충족해야 합니다.

  • 함수가 오류를 생성하지 않습니다.
  • AWS 리전에 예약되지 않은 동시성이 충분히 있거나, 함수에 대해 예약된 동시성이 1,000 이상입니다.
  • SQS 대기열에 메시지가 있습니다.

​해결 방법

오류 수정

Lambda가 함수 호출을 시도할 때 오류가 발생하는 경우 Lamda는 조정 시 오류를 방지하기 위해 함수가 조정되지 못하도록 합니다. 오류가 중지되면 Lambda는 함수를 계속 조정합니다. 분당 60개의 추가 동시 호출을 조정합니다. 함수는 최대 1,000개의 동시 호출을 조정할 수 있습니다.

참고: 추가 동시 호출을 조정하려면 계정이 해당 리전에서 조정 또는 버스트 동시성을 위한 서비스 할당량에 근접해서는 안 됩니다.

오류에 대한 도움말은 AWS Lambda 문제 해결Lambda 함수 실패 문제를 해결하려면 어떻게 해야 합니까?를 참조하세요.

동시성 관리

함수에 예약된 동시성을 구성하지 않은 경우 예약되지 않은 기본 동시성 할당량은 1,000개입니다. 이 기본 할당량은 동일한 계정 및 리전의 다른 함수와 공유됩니다. 리전에 예약되지 않은 동시성이 1,000개 이상인 경우 함수는 최대 동시성에 도달할 때까지 계속 조정됩니다. 그렇지 않으면, 예약되지 않은 동시성을 모두 사용할 때까지 호출이 조절됩니다.

함수에 대해 예약된 동시성을 구성한 경우 예약된 동시성이 1,000개 이상인지 확인합니다. 이보다 낮을 경우, 예약된 값에 도달하면 함수가 조절됩니다. 자세한 내용은 Lambda 함수에 대한 동시성 관리를 참조하세요.

참고: 리전에 대해 더 높은 동시성이 필요하다고 판단되는 경우 서비스 할당량 콘솔에서 서비스 할당량 증가를 요청할 수 있습니다.

대기열 깊이 확인

Lambda는 SQS 대기열에 메시지가 있는 경우에만 호출을 조정합니다. 함수의 지표에 스로틀링이 없고 오류가 없으면 ApproximateNumberOfMessagesVisible SQS 대기열 지표를 확인하세요. 이 지표는 처리해야 하는 메시지 수를 보여줍니다.

지표가 낮거나 0인 경우 함수를 조정할 수 없습니다. 지표가 높고 증가하고 있으며 오류가 없는 경우 트리거에 대한 배치 크기 구성을 확인하세요. 대기열에서 메시지를 수신하고 함수를 호출하는 사이에 약간의 지연이 있습니다. 배치 크기가 낮게 설정된 경우, 작은 지연이 모든 호출에 걸쳐 쌓여 대기열에 메시지가 백업될 수 있습니다. 기간이 배치 크기보다 빠르게 증가할 때까지 배치 크기(예: 최대 배치 크기인 10)를 늘려 보세요.

참고: SQS 대기열의 메시지가 1,000개 미만인 경우 호출에서 메시지 10개로 구성된 전체 배치를 수신할 가능성이 작습니다.

자세한 내용은 Amazon SQS API 참조의 ReceiveMessage를 참조하세요.


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요합니까?