본문으로 건너뛰기

Deduplication

1 SQS FIFO – 중복 제거(Deduplication)

  • SQS FIFO(First-In-First-Out) 큐는 메시지의 중복 제거 기능을 제공합니다.
  • 이 기능을 통해 동일한 메시지가 여러 번 처리되는 것을 방지할 수 있습니다.
  • 중복 제거 인터벌은 5분입니다.

2 중복 제거 방법

2.1 콘텐츠 기반 중복 제거

  • 콘텐츠 기반 중복 제거는 메시지 본문의 SHA-256 해시 값을 계산하여 중복을 검사합니다.
  • 메시지 본문의 내용이 동일한 경우, 동일한 해시 값이 생성됩니다.
  • 해시 값이 동일한 메시지는 중복으로 간주되어 큐에 추가되지 않습니다.

2.2 명시적 중복 제거 ID 제공

  • 메시지 중복 제거 ID를 명시적으로 제공하여 중복 제거를 수행할 수 있습니다.
  • 메시지를 보낼 때 중복 제거 ID를 함께 제공하면, 해당 ID를 기준으로 중복을 검사합니다.
  • 메시지 본문과 함께 고유한 중복 제거 ID를 제공하여 중복 메시지를 방지할 수 있습니다.

3 중복 제거 방법의 선택

  • 콘텐츠 기반 중복 제거와 명시적 중복 제거 ID 제공 중 하나를 선택할 수 있습니다.
  • 콘텐츠 기반 중복 제거는 메시지 본문이 자주 동일한 경우 유용합니다.
  • 명시적 중복 제거 ID는 메시지 본문이 다르지만 논리적으로 중복되는 메시지를 처리할 때 유용합니다.

4 중복 제거 인터벌

  • 중복 제거 인터벌은 5분으로 설정되어 있습니다.
  • 즉, 동일한 메시지가 5분 내에 다시 전송되면 중복으로 처리됩니다.
  • 중복 제거 인터벌 이후에는 동일한 메시지도 새로운 메시지로 처리됩니다.

5 FIFO 큐 생성 시 중복 제거 설정

AWS CloudFormation 템플릿

Resources:
MyFIFOQueue:
Type: "AWS::SQS::Queue"
Properties:
QueueName: "MyFIFOQueue.fifo"
FifoQueue: true
ContentBasedDeduplication: true
  • FIFO 큐를 생성할 때 중복 제거 설정을 구성할 수 있습니다.
  • AWS CloudFormation을 사용하여 FIFO 큐를 생성하고 중복 제거 설정을 적용할 수 있습니다.
  • 위 예시에서 ContentBasedDeduplication 속성을 true로 설정하여 콘텐츠 기반 중복 제거를 활성화합니다.

6 결론

  • SQS FIFO 큐는 중복 메시지를 방지하는 두 가지 방법을 제공합니다.
  • 콘텐츠 기반 중복 제거와 명시적 중복 제거 ID 제공을 통해 메시지 중복을 효과적으로 관리할 수 있습니다.
  • 중복 제거 인터벌은 5분으로 설정되어 있으며, 이를 통해 동일한 메시지가 여러 번 처리되는 것을 방지할 수 있습니다.