sqs가 메시지를 수신하고 있지 않더라도, NumberOfEmptyReceives 는 증가할 수 있을까?

jinwook han·2021년 11월 9일
1

aws sqs 모니터링

목록 보기
1/4
post-thumbnail

sqs가 메시지를 수신하고 있지 않더라도, NumberOfEmptyReceives 는 증가할 수 있을까?
-> 증가할 수 있다.

NumberOfEmptyReceives는 sqs로 메시지가 수신되고 있는지 여부와는 상관없다.
sqs를 구독하고 있는 워커 측에서 sqs를 폴링하고, sqs에 메시지가 없다고 하더라도 폴링은 계속해서 발생하기 때문이다.

NumberOfEmptyReceives에서 Receives의 주체는 sqs가 아닌, sqs를 구독하는 워커라고 보는 게 맞다.

실험

1. 이미 만들어진 sqs hello-queue 와, sqs를 구독하는 lambda event-listen-from-sqs가 있다.

2. sqs hello-queue 구독자에 lambda event-listener-2를 추가한다.

3. 모니터링 수치를 확인한다.

NumberOfEmptyReceives 수치가 1분당 15개에서 30개로 늘어났다.
기존 lambda가 1분당 15번 polling하고 있었고, lambda가 추가되어 2개가 되면서 전체 polling 횟수가 2배로 늘었다고 봐도 좋을 것 같다.

참고자료

https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-available-cloudwatch-metrics.html

9개의 댓글

comment-user-thumbnail
2022년 6월 22일

감사합니다.
SQS 1개에 폴링 주기를 20초 (최대값)으로 설정하고 람다 하나만 구독시켜놔도
1일 약 13k 의 NumberOfEmptyReceives 가 발생하네요.
사용하지 않는 SQS 큐 3개만 생성해놔도 프리티어 무료 제공 요청수인 100만개는 도달하도록 되게 설계되어있군요.

이상한 점은 폴링주기가 20초면 1분당 3회가 되야하는데
1일 13K, 1시간에 540회 => 1분당 9회 NumberOfEmptyReceives 가 발생하더군요.
문서만 철썩같이 믿고 썼다가 요금 과금될 수 있겠습니다..

1개의 답글