Amazon SNS 메시지 전송 재시도 - Amazon Simple Notification Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon SNS 메시지 전송 재시도

Amazon SNS 정의전송 정책에서는 각 전송 프로토콜에 대해 설명합니다. 전송 정책은 Amazon SNS 가 서버측 오류가 발생할 경우 (구독한 엔드포인트를 호스팅하는 시스템을 사용할 수 없게 될 경우) 메시지 전송을 재시도하는 방식을 정의합니다. 전송 정책이 소진되면 Amazon SNS 배달 재시도를 중지하고 메시지를 삭제합니다. 단, 구독에 데드 레터 큐가 연결되어 있지 않은 경우 자세한 내용은 Amazon SNS 배달 못한 편지 대기열 (DLQ) 단원을 참조하세요.

전송 프로토콜 및 정책

참고
  • HTTP/S를 제외하고 Amazon SNS 정의 전송 정책을 변경할 수 없습니다. HTTP/S만 사용자 지정 정책을 지원합니다. HTTP/S 전송 정책 생성 단원을 참조하십시오.

  • Amazon SNS 는 전송 재시도에 지터링을 적용합니다. 자세한 내용은 단원을 참조하십시오.지수 백오프 및 지터게시물에AWS 아키텍처 블로그를 선택합니다.

엔드포인트 유형 전송 프로토콜 즉각 재시도(지연 없음) 단계 프리 백오프 단계 백오프 단계 포스트 백오프 단계 총 시도 횟수
AWS 관리형 엔드포인트 Amazon Kinesis Data Firehose¹ 3회, 지연 없음 2회, 1초 간격 10회, 1초~20초 범위에서 지수 백오프 사용 100,000회, 20초 간격 100,015회, 23일 동안
AWS Lambda
Amazon SQS
고객 관리형 엔드포인트 SMTP 0회, 지연 없음 2회, 10초 간격 10회, 10초~600초(10분) 범위에서 지수 백오프 사용 38회, 600초(10분) 간격 50회 시도, 6시간 동안
SMS
모바일 푸시

¹ Kinesis Data Firehose 프로토콜로 인한 제한 오류의 경우 Amazon SNS 고객 관리형 엔드포인트와 동일한 전송 정책을 사용합니다.

전송 정책 단계

다음 다이어그램은 전송 정책의 단계를 보여줍니다.

각 전송 정책은 4단계로 구성됩니다.

  1. 즉각 재시도 단계 (지연 없음)— 이 단계는 첫 전송 시도 직후에 나타납니다. 이 단계에서는 재시도 간에 지연이 없습니다.

  2. 프리 백오프 단계— 이 단계는 즉시 재시도 단계를 따릅니다. Amazon SNS 백오프 함수를 적용하기 전에 이 단계에서 일련의 재시도를 수행합니다. 이 단계에서는 재시도 횟수와 재시도 간의 지연 시간을 지정합니다.

  3. 백오프 단계— 이 단계에서는 재시도 백오프 함수를 사용하여 재시도 간 지연을 제어합니다. 최소 지연 시간과 최대 지연 시간을 설정한 다음 재시도 백오프 함수를 설정하여 최소 지연 시간부터 최대 지연 시간까지 어느 정도 간격으로 지연을 늘릴 것인지를 정의합니다. 백오프 함수는 Arithmetic, Exponential, Geometric 또는 Linear가 될 수 있습니다.

  4. 포스트 백오프 단계— 백오프 단계 뒤에는 이 단계가 옵니다. 재시도 횟수와 재시도 간의 지연 시간을 지정합니다. 이것이 마지막 단계입니다.

HTTP/S 전송 정책 생성

전송 정책과 그 4단계를 사용하여 Amazon SNS 가 HTTP/S 엔드포인트로의 메시지 전송을 재시도하는 방식을 정의할 수 있습니다. Amazon SNS 에서는 HTTP 엔드포인트에 대한 기본 재시도 정책을 재정의할 수 있습니다. 예를 들어 HTTP 서버의 용량에 따라 정책을 사용자 지정하려는 경우에 재정의가 필요합니다.

구독 또는 주제 수준에서 HTTP/S 전송 정책을 JSON 객체로 설정할 수 있습니다. 주제 수준에서 정책을 정의하면 주제에 연결된 모든 HTTP/S 구독에 정책이 적용됩니다.

HTTP/S 서버의 용량에 따라 전송 정책을 사용자 지정해야 합니다. 정책은 주제 속성 또는 구독 속성으로 설정할 수 있습니다. 주제의 모든 HTTP/S 구독이 동일한 HTTP/S 서버를 대상으로 하는 경우 전송 정책을 주제 속성으로 설정하여 주제의 모든 HTTP/S 구독에 정책이 적용되도록 하는 것이 좋습니다. 이렇게 하지 않으면 정책이 대상으로 하는 HTTP/S 서버의 용량에 따라 주제의 각 HTTP/S 구독에 대한 전송 정책을 작성해야 합니다.

다음 JSON 객체는 Amazon SNS 실패한 HTTP/S 전송을 다음과 같이 재시도하도록 에 지시하는 전송 정책을 나타냅니다.

  1. 지연 없음 단계에서 즉시 3회

  2. 프리 백오프 단계에서 2회(1초 간격)

  3. 10회(1초~60초 범위에서 지수 백오프 사용)

  4. 포스트 백오프 단계에서 35회 (60초 간격)

Amazon SNS 이 샘플 전송 정책에서는 메시지를 폐기하기 전에 총 50회 시도를 수행합니다. 배달 정책에 지정된 재시도가 모두 사용된 후에도 메시지를 유지하려면 배달할 수 없는 메시지를 DLQ (배달 못 한 편지 큐) 로 이동하도록 구독을 구성합니다. 자세한 내용은 Amazon SNS 배달 못한 편지 대기열 (DLQ) 단원을 참조하세요.

참고

또한 이 전송 정책은 Amazon SNS 가 초당 10개 이하로 전송을 제한하도록 에 지시합니다.maxReceivesPerSecond속성입니다. 이 자체 조절 속도는 전달된 (아웃바운드 트래픽) 보다 더 많은 메시지 게시 (인바운드 트래픽) 를 초래할 수 있습니다. 아웃바운드 트래픽보다 인바운드 트래픽이 많으면 구독에 큰 메시지 백로그가 누적되어 메시지 전송 지연 시간이 길어질 수 있습니다. 배송 정책에서maxReceivesPerSecond워크로드에 부정적인 영향을 미치지 않습니다.

{ "healthyRetryPolicy": { "minDelayTarget": 1, "maxDelayTarget": 60, "numRetries": 50, "numNoDelayRetries": 3, "numMinDelayRetries": 2, "numMaxDelayRetries": 35, "backoffFunction": "exponential" }, "throttlePolicy": { "maxReceivesPerSecond": 10 } }

전송 정책은 재시도 정책과 제한 정책으로 구성됩니다. 전송 정책에는 총 8개의 속성이 있습니다.

Policy 설명 Constraint
minDelayTarget 재시도의 최소 지연 시간입니다.

단위:

1~최대 지연 시간

기본값: 20

maxDelayTarget 재시도의 최대 지연 시간입니다.

단위:

최소 지연 시간~3,600

기본값: 20

numRetries 즉각 재시도, 프리 백오프, 백오프, 포스트 백오프 단계의 재시도를 모두 포함한 총 재시도 횟수입니다. 0~100

기본값: 3

numNoDelayRetries 재시도 간 지연 없이 즉각 수행되는 재시도 횟수입니다. 0 이상

기본값: 0

numMinDelayRetries 재시도 간 지정된 최소 지연 시간으로 프리 백오프 단계에서 수행되는 재시도 횟수입니다. 0 이상

기본값: 0

numMaxDelayRetries 재시도 간 지정된 최대 지연 시간으로 포스트 백오프 단계에서 수행되는 재시도 횟수입니다. 0 이상

기본값: 0

backoffFunction 재시도 간 백오프에 사용되는 모델입니다.

다음 4가지 옵션 중 하나:

  • Arithmetic

  • Exponential

  • Geometric

  • Linear

기본값: Linear

maxReceivesPerSecond 구독별 초당 최대 전송 수입니다. 1 이상

기본값: 조절 없음

Amazon SNS 에서는 다음 수식을 사용하여 백오프 단계의 재시도 횟수를 계산합니다.

numRetries - numNoDelayRetries - numMinDelayRetries - numMaxDelayRetries

3가지 파라미터를 사용하여 백오프 단계의 재시도 빈도를 제어할 수 있습니다.

  • minDelayTarget— 백오프 단계에서 처음 수행하는 재시도에 대한 지연을 정의합니다.

  • maxDelayTarget— 백오프 단계에서 마지막으로 수행하는 재시도에 대한 지연을 정의합니다.

  • backoffFunction— Amazon SNS 백오프 단계에서 처음 수행하는 재시도부터 마지막 재시도까지의 모든 재시도에 대한 지연을 계산하는 데 사용하는 알고리즘을 정의합니다. 4가지 재시도 백오프 함수 중 하나를 사용할 수 있습니다.

다음 다이어그램은 백오프 단계 중 각 재시도 백오프 함수가 재시도에 대한 지연에 어떻게 영향을 주는지를 보여 줍니다. 전송 정책에는 총 재시도 횟수가 10회, 최소 지연 시간은 5초, 최대 지연 시간은 260초로 설정되어 있습니다. 세로 축은 10번의 재시도 각각에 대한 지연(초)을 나타냅니다. 가로 축은 첫 번째 시도에서 열 번째 시도까지의 재시도 횟수를 나타냅니다.