FIFO 주제에 대한 Amazon SNS 메시지 내구성
Amazon SNS FIFO 주제 및 Amazon SQS 대기열은 내구성이 뛰어납니다. 두 리소스 유형 모두 여러 가용 영역 전반에서 중복 메시지를 저장하고 예외적인 경우를 처리할 수 있는 배달 못한 편지 대기열을 제공합니다.
Amazon SNS에서 클라이언트 측 또는 서버 측 오류로 인해 Amazon SNS 주제가 구독된 Amazon SQS 대기열에 액세스할 수 없으면 메시지 전송이 실패합니다.
-
클라이언트 측 오류는 Amazon SNS FIFO 주제에 오래된 구독 메타데이터가 있는 경우에 발생합니다. 클라이언트 측 오류가 발생하는 일반적인 원인 두가지는 Amazon SQS 대기열 소유자가 다음 중 하나를 수행하는 경우입니다.
-
대기열을 삭제합니다.
-
Amazon SNS 서비스 주체가 메시지를 전달하지 못하도록 대기열 정책을 변경합니다.
Amazon SNS 클라이언트 측 오류로 인해 실패한 메시지 전송을 다시 시도하지 않습니다.
-
-
서버 측 오류는 다음과 같은 상황에서 발생할 수 있습니다.
-
Amazon SQS 서비스를 사용할 수 없습니다.
-
Amazon SQS가 Amazon SNS 서비스의 유효한 요청을 처리하지 못합니다.
서버 측 오류가 발생하면 Amazon SNS FIFO 주제는 23일 동안 최대 100,015회까지 실패한 전송을 다시 시도합니다. 자세한 내용은 Amazon SNS 메시지 전송 재시도 단원을 참조하세요.
-
모든 유형의 오류에 대해 Amazon SNS는 데이터가 손실되지 않도록 Amazon SQS 배달 못한 편지 대기열에 대한 메시지를 제외할 수 있습니다.
Amazon SQS에서 소비자 애플리케이션이 메시지 수신, 처리 및 대기열에서 삭제에 실패하면 메시지 처리가 실패합니다. 최대 수신 요청 수가 실패하면 Amazon SQS는 메시지를 배달 못한 편지 대기열로 제외하여 데이터가 손실되지 않도록 할 수 있습니다.
자동차 부품 가격 관리 예 사용 사례에서 회사는 각 Amazon SNS FIFO 주제 구독과 구독된 각 Amazon SQS 대기열에 Amazon SQS DLQ(Dead Letter Queue)를 할당할 수 있습니다. 이러한 작업은 가격 업데이트 손실로부터 회사를 보호합니다.
![Dead Letter Queue(DLQ)를 Amazon SNS FIFO 주제 및 Amazon SQS 대기열과 통합하여 자동차 부품 가격 관리 시스템에서 메시지 신뢰성을 보장하는 방법을 보여주는 예제입니다. 도매, 소매, 분석 목적으로 각 Amazon SNS FIFO 구독을 해당 Amazon SQS FIFO 또는 표준 대기열과 연동하는 설정을 보여줍니다. 각 대기열에는 처리 실패로 인한 메시지 손실로부터 보호하기 위해 유형과 일치하는 자체 DLQ가 장착되어 있습니다.](images/sns-fifo-dlq.png)
Amazon SNS 구독에 연결된 DLQ(Dead Letter Queue)는 구독 대기열과 동일한 유형의 Amazon SQS 대기열이어야 합니다. 예를 들어 Amazon SQS FIFO 대기열의 Amazon SNS FIFO 구독에는 DLQ(Dead Letter Queue)로 Amazon SQS FIFO 대기열이 있어야 합니다. 마찬가지로, Amazon SQS 표준 대기열의 Amazon SNS FIFO 구독에는 DLQ(Dead Letter Queue)로 Amazon SQS 표준 대기열이 있어야 합니다. 자세한 정보는 AWS 컴퓨팅 블로그에 게시된 Amazon SNS Dead Letter Queue(DLQ) 및 Amazon SNS, Amazon SQS 및 AWS Lambda용 DLQ를 사용하여 내구성 있는 서버리스 앱 설계
다운스트림 오류 복구를 지원하는 확장된 내구성을 위해 주제 소유자는 FIFO 주제를 사용하여 메시지를 최대 365일까지 아카이브할 수도 있습니다. 주제 구독자는 이러한 메시지를 구독된 엔드포인트에 재생하여 다운스트림 애플리케이션의 오류로 인해 손실된 메시지를 복구하거나 기존 애플리케이션의 상태를 복제할 수 있습니다. 자세한 내용은 FIFO 주제의 Amazon SNS 메시지 아카이브 및 재생 섹션을 참조하세요.