

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

# Amazon SQS 오류 처리 및 문제가 있는 메시지
<a name="best-practices-error-handling"></a>

이 주제에서는 요청 오류 처리, 문제가 있는 메시지 캡처, 메시지 신뢰성을 보장하기 위한 Dead Letter Queue(DLQ) 보존 구성 등의 기술을 포함하여 Amazon SQS에서 오류를 관리하고 완화하는 방법에 대한 자세한 지침을 제공합니다.

****주제****
+ [Amazon SQS에서 요청 오류 처리](handling-request-errors.md)
+ [Amazon SQS에서 문제가 있는 메시지 캡처](capturing-problematic-messages.md)
+ [Amazon SQS에서 Dead Letter Queue(DLQ) 보존 설정](setting-up-dead-letter-queue-retention.md)

# Amazon SQS에서 요청 오류 처리
<a name="handling-request-errors"></a>

요청 오류를 처리하려면 다음 전략 중 하나를 사용하십시오.
+  AWS SDK를 사용하는 경우 이미 자동 *재시도 및 백오프* 로직을 사용할 수 있습니다. 자세한 내용은 *Amazon Web Services 일반 참조*의 [AWS의 오류 재시도 및 지수 백오프](https://docs.aws.amazon.com/general/latest/gr/api-retries.html) 섹션을 참조하세요.
+ 재시도 및 백오프에 AWS SDK 기능을 사용하지 않는 경우 Amazon SQS에서 메시지, 제한 시간 또는 오류 메시지를 수신하지 않은 후 [ReceiveMessage](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html) 작업을 재시도하기 전에 일시 중지(예: 200ms)를 허용하세요. 그 다음에 동일한 결과를 반환하는 `ReceiveMessage`를 사용하려면, 더 긴 일시 중지 시간(예: 400ms)을 둡니다.

# Amazon SQS에서 문제가 있는 메시지 캡처
<a name="capturing-problematic-messages"></a>

처리할 수 없는 모든 메시지를 캡처하고 정확한 CloudWatch 지표를 수집하려면 [배달 못한 편지 대기열](sqs-dead-letter-queues.md)을 구성합니다.
+ 소스 대기열이 지정된 횟수까지 메시지를 처리하지 못하고 나면 리드라이브 정책에 따라 메시지를 배달 못한 편지 대기열로 리디렉션합니다.
+ 배달 못한 편지 대기열을 사용하면 메시지 개수가 감소하고 사용자가 *독약* 메시지(수신하지만 처리 불가능한 메시지)를 받을 가능성이 낮아집니다.
+ 대기열에 독약 메시지가 포함되면 독약 메시지의 잘못된 수명 지정으로 인해 [`ApproximateAgeOfOldestMessage`](sqs-available-cloudwatch-metrics.md) CloudWatch 지표가 왜곡될 수 있습니다. 배달 못한 편지 대기열을 구성하면 이 측정치를 사용할 때 거짓 경보를 방지할 수 있습니다.

# Amazon SQS에서 Dead Letter Queue(DLQ) 보존 설정
<a name="setting-up-dead-letter-queue-retention"></a>

표준 대기열의 경우, 메시지 만료는 항상 메시지가 원래 대기열에 추가된 타임스탬프를 기준으로 합니다. 메시지가 DLQ(Dead Letter Queue)로 이동하면 대기열에 추가 타임스탬프는 변경되지 않습니다. `ApproximateAgeOfOldestMessage` 지표는 메시지가 원래 전송된 시간이 아니라** 메시지가 DLQ(Dead Letter Queue)로 이동한 시간을 나타냅니다. 예를 들어, 메시지가 DLQ(Dead Letter Queue)로 이동하기 전에 원래 대기열에서 1일을 보낸다고 가정합니다. DLQ(Dead Letter Queue)의 보존 기간이 4일인 경우 메시지는 3일 후에 DLQ(Dead Letter Queue)에서 삭제되며 `ApproximateAgeOfOldestMessage`는 3일입니다. 따라서 배달 못한 편지 대기열의 보존 기간을 항상 원래 대기열의 보존 기간보다 더 길게 설정하는 것이 좋습니다.

FIFO 대기열의 경우 메시지가 DLQ(Dead Letter Queue)로 이동하면 대기열에 추가 타임스탬프가 재설정됩니다. `ApproximateAgeOfOldestMessage` 지표는 메시지가 DLQ(Dead Letter Queue)로 이동한 시간을 나타냅니다. 위의 동일한 예에서 메시지는 4일 후에 배달 못한 편지 대기열에서 삭제되며 `ApproximateAgeOfOldestMessage`는 4일입니다.