

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

# Amazon SQS의 중단 복구 시나리오
<a name="designing-for-outage-recovery-scenarios"></a>

FIFO 대기열의 중복 제거 프로세스는 시간에 민감합니다. 애플리케이션을 설계할 때 생산자와 소비자 둘 다 중복이나 처리 실패 없이 클라이언트 또는 네트워크 중단으로부터 복구할 수 있도록 합니다.

생산자 고려 사항
+ Amazon SQS는 5분의 중복 제거 기간을 적용합니다.
+ 생산자가 5분 후에 [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html) 요청을 재시도하면 Amazon SQS는 요청을 새 메시지로 취급하여 잠재적으로 중복을 생성할 수 있습니다.

소비자 고려 사항
+ 소비자가 가시성 제한 시간이 만료되기 전에 메시지를 처리하지 못하면 다른 소비자가 메시지를 수신하고 처리하여 중복 처리로 이어질 수 있습니다.
+ 애플리케이션의 처리 시간에 따라 가시성 제한 시간을 조정합니다.
+ [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ChangeMessageVisibility.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ChangeMessageVisibility.html) API를 사용하여 메시지가 처리되는 동안 제한 시간을 연장합니다.
+ 메시지가 반복적으로 처리에 실패하는 경우 무기한 재처리되도록 허용하는 대신 [Dead Letter Queue(DLQ)](sqs-dead-letter-queues.md)로 라우팅합니다.
+ 생산자는 대기열의 중복 제거 간격을 알고 있어야 합니다. Amazon SQS의 중복 제거 간격은 5분입니다. 중복 제거 간격이 만료된 이후에 `SendMessage` 요청을 재시도하면 대기열에 중복 메시지가 생성될 수 있습니다. 예를 들어, 자동차 안의 모바일 디바이스에서 순서가 중요한 메시지를 전송할 수 있습니다. 승인을 받기 전에 일정 기간 동안 자동차의 셀룰러 연결이 끊길 경우, 셀룰러가 다시 연결되고 나서 요청을 다시 시도하면 중복이 생성될 수 있습니다.
+ 제한 시간 초과가 만료되기 전에 메시지를 처리하지 못할 위험을 최소화해 주는 제한 시간 초과를 소비자에게 적용해야 합니다. 메시지를 처리하는 동안 제한 시간 초과를 연장하려면 `ChangeMessageVisibility` 작업을 호출합니다. 그렇지만, 제한 시간 초과가 만료된 경우 다른 소비자가 메시지를 바로 처리할 수 있고, 이렇게 되면 한 메시지를 여러 번 처리하게 됩니다. 이 시나리오를 방지하려면 [배달 못한 편지 대기열](sqs-dead-letter-queues.md)을 구성합니다.