-
[AWS] SQS DLQ 설정하기AWS 2023. 6. 13. 00:01
DLQ란 무엇인가?
DLQ(Dead Letter Queue)는 소프트웨어 시스템에서 오류로 인해 처리할 수 없는 메시지를 임시로 저장하는 특수한 유형의 메시지 대기열입니다.
DLQ는 왜 사용할까요?
전송된 메시지가 잘못된 경우 메시지는 DLQ로 이동합니다. 하드웨어, 소프트웨어 및 네트워크 상태로 인해 전송된 데이터가 손상될 수 있습니다. 예를 들어, 하드웨어 간섭으로 인해 전송 중에 일부 정보가 약간 변경됩니다. 예상치 못하게 데이터가 손상되면 수신자가 메시지를 거부하거나 무시할 수 있습니다.
수신 소프트웨어에서 발신자가 인식하지 못하는 변경 사항이 발생한 경우에도 메시지가 DLQ로 이동될 수 있습니다.
예를 들어 수신 소프트웨어에서 message_name이라는 필드가 message_names로 변경되는 경우 수신자와 발신자의 interface가 달라지게 되고 메시지가 DLQ로 이동될 수 있습니다.
DLQ 어떻게 활용할까?
DLQ에 쌓인 메시지들을 보면 왜 이 메시지들이 컨슈머에 의해 처리되지 못했는지를 알 수 있다. 만약 컨슈머 애플리케이션의 버그를 찾아서 수정했다면 AWS 콘솔 화면에서 redrive를 수행함으로써 해당 메시지들을 다시 소스 큐에 집어넣을 수 있다.
DLQ에 메시지가 쌓인다면, 컨슈머 어플리케이션을 디버깅해서 왜 컨슘이 실패했는지를 분석하고 패치한 다음, DLQ redrive를 하면 다시 메시지들을 소스 큐로 편하게 클릭 한 방으로 전송할 수 있다.
주의사항
- 메시지 최대 보간기간은 원래 Queue의 보관기간보다 길어야 한다.
- FIFO 큐의 DLQ는 그것도 FIFO 큐여야 한다. 마찬가지로 Standard 큐의 DLQ는 Standard 큐여야 한다.
DQL를 위한 대기열 생성
배달되지 못한 편지 대기열 설정
위에서 만들어둔 my-dead-letter-queue로 대기열을 선택합니다.
최대 수신 수란 실패 시 재시도하는 수를 말합니다.
즉, 5회 재시도했지만 계속 실패하는 경우 메시지는 DLQ로 이동합니다.
참고자료
https://aws.amazon.com/ko/what-is/dead-letter-queue/
'AWS' 카테고리의 다른 글
[AWS] Lambda란? (0) 2023.07.03 [AWS] Amazon API Gateway란? (0) 2023.06.17 Spring Cloud AWS 3.0 사용하기 - SNS, SQS (0) 2023.06.08 [AWS] sns, sqs aws와 연동해보기 (0) 2023.06.05 [AWS] SQS 사용시 주의사항 (0) 2023.06.04