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 대기열에 메시지가 있는 경우에만 호출을 조정합니다. 함수의 지표에 조절이 없고 오류가 없으면 ApproximateNumberOfMessagesNotVisible SQS 대기열 지표를 확인하십시오. 이 지표는 처리해야 하는 메시지 수를 보여줍니다.

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

참고: 배치 크기를 10으로 설정했지만 SQS 대기열의 메시지가 1,000개 미만인 경우 호출에서 메시지 10개로 구성된 전체 배치를 수신할 가능성이 작습니다. 자세한 내용은 Amazon SQS API 참조의 ReceiveMessage를 참조하십시오.


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?