

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

# Amazon SQS FIFO 대기열에서 메시지 그룹 ID 사용
<a name="using-messagegroupid-property"></a>

First-In-First-Out(FIFO) 대기열에서 [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html)는 메시지를 고유한 그룹으로 구성하는 속성입니다. 동일한 메시지 그룹 내의 메시지는 항상 한 번에 하나씩 엄격한 순서로 처리되므로 동일한 그룹의 두 메시지가 동시에 처리되지 않습니다. 표준 대기열에서 `MessageGroupId`를 사용하면 [공정 대기열](sqs-fair-queues.md)이 활성화됩니다. 엄격한 순서 지정이 필요한 경우 FIFO 대기열을 사용합니다.

**Topics**
+ [Amazon SQS에서 여러 개의 정렬된 메시지 그룹 인터리브](interleaving-multiple-ordered-message-groups.md)
+ [Amazon SQS의 다중 생산자/소비자 시스템에서 중복 처리 방지](avoding-processing-duplicates-in-multiple-producer-consumer-system.md)
+ [Amazon SQS에서 메시지 그룹 ID가 동일한 메시지의 대규모 백로그 방지](avoid-backlog-with-the-same-message-group-id.md)
+ [Amazon SQS의 가상 대기열에서 동일한 메시지 그룹 ID 재사용 방지](avoiding-reusing-message-group-id-with-virtual-queues.md)

# Amazon SQS에서 여러 개의 정렬된 메시지 그룹 인터리브
<a name="interleaving-multiple-ordered-message-groups"></a>

단일 FIFO 대기열 내에서 순서가 지정된 여러 메시지 그룹을 인터리브하려면 각 그룹(예: 서로 다른 사용자의 세션 데이터)에 [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html)를 할당합니다. 이렇게 하면 여러 소비자가 대기열에서 동시에 읽을 때 동일한 그룹 내의 메시지가 순서대로 처리되도록 할 수 있습니다.

특정 `MessageGroupId`가 포함된 메시지가 처리 중이고 보이지 않는 경우 가시성 제한 시간이 만료되거나 메시지가 삭제될 때까지 다른 소비자는 동일한 그룹의 메시지를 처리할 수 없습니다.

# Amazon SQS의 다중 생산자/소비자 시스템에서 중복 처리 방지
<a name="avoding-processing-duplicates-in-multiple-producer-consumer-system"></a>

메시지 순서 지정이 우선순위가 아닌 처리량이 높고 지연 시간이 짧은 시스템에서 생산자는 각 메시지에 고유한 [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html)를 할당할 수 있습니다. 이렇게 하면 다중 생산자/다중 소비자 설정에서도 Amazon SQS FIFO 대기열이 중복을 제거할 수 있습니다. 이 접근 방식은 중복 메시지를 방지하지만 각 메시지가 독립적인 그룹으로 취급되므로 메시지 순서가 보장되지 않습니다.

생산자와 소비자가 여럿인 시스템에서는 항상 중복으로 전달될 위험이 있습니다. 소비자가 가시성 제한 시간이 만료되기 전에 메시지를 처리하지 못하면 Amazon SQS는 메시지를 다시 사용할 수 있도록 하여 잠재적으로 다른 소비자가 메시지를 픽업할 수 있도록 합니다. 이를 완화하려면 처리 시간에 따라 메시지 승인 및 가시성 제한 시간 설정이 적절한지 확인합니다.

# Amazon SQS에서 메시지 그룹 ID가 동일한 메시지의 대규모 백로그 방지
<a name="avoid-backlog-with-the-same-message-group-id"></a>

FIFO 대기열은 최대 12만 개의 진행 중 메시지(소비자가 수신했지만 아직 삭제되지 않은 메시지)를 지원합니다. 이 한도에 도달하면 Amazon SQS는 오류를 반환하지 않지만 처리에 영향을 미칠 수 있습니다. [AWS Support](https://docs.aws.amazon.com/awssupport/latest/user/create-service-quota-increase.html)에 문의하여 한도 증가를 요청할 수 있습니다.

FIFO 대기열은 처음 12만 개의 메시지를 스캔하여 사용 가능한 메시지 그룹을 결정합니다. 대규모 백로그가 단일 메시지 그룹에 쌓이면 나중에 전송된 다른 그룹의 메시지는 백로그가 처리될 때까지 차단된 상태로 유지됩니다.

**참고**  
소비자가 반복적으로 메시지를 처리하지 못하면 메시지 백로그가 발생할 수 있습니다. 이는 메시지 콘텐츠 문제 또는 소비자 측 장애 때문일 수 있습니다. 메시지 처리 지연을 방지하려면 여러 번 실패한 후 처리되지 않은 메시지를 이동하도록 [Dead Letter Queue(DLQ)](sqs-dead-letter-queues.md)를 구성합니다. 이렇게 하면 동일한 메시지 그룹의 다른 메시지를 처리할 수 있으므로 시스템 병목 현상을 방지할 수 있습니다.

# Amazon SQS의 가상 대기열에서 동일한 메시지 그룹 ID 재사용 방지
<a name="avoiding-reusing-message-group-id-with-virtual-queues"></a>

공유 호스트 대기열과 함께 가상 대기열을 사용하는 경우 서로 다른 가상 대기열에서 동일한 [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html)를 재사용하지 마세요. 여러 가상 대기열이 동일한 호스트 대기열을 공유하고 동일한 `MessageGroupId`의 메시지를 포함하는 경우 해당 메시지가 서로를 차단하여 효율적인 처리를 방해할 수 있습니다. 원활한 메시지 처리를 위해 서로 다른 가상 대기열의 메시지에 고유한 `MessageGroupId` 값을 할당합니다.