

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

# Amazon SQS 대기열 유형
<a name="sqs-queue-types"></a>

Amazon SQS는 [**표준 대기열**](standard-queues.md)과 [**FIFO 대기열**](sqs-fifo-queues.md)이라는 두 가지 유형의 대기열을 지원합니다. 다음 표를 사용하여 필요에 가장 적합한 대기열을 결정합니다.


| 표준 대기열 | FIFO 대기열 | 
| --- | --- | 
|  **무제한 처리량** - 표준 대기열은 작업([https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html), [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html) 또는 [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessage.html))별 초당 거의 무제한의 매우 높은 API 직접 호출 수를 지원합니다. 이렇게 처리량이 높기 때문에 실시간 데이터 스트리밍 또는 대규모 애플리케이션과 같이 대량의 메시지를 빠르게 처리해야 하는 사용 사례에 적합합니다. 표준 대기열은 수요에 따라 자동으로 규모가 조정되지만, 특히 워크로드가 많은 리전에서는 최적의 성능을 보장하기 위해 사용 패턴을 모니터링하는 것이 중요합니다. **최소 1회 전송** - 최소 1회 전송을 보장합니다. 즉, 모든 메시지가 최소 1회 전송되지만 경우에 따라 재시도 또는 네트워크 지연으로 인해 메시지가 두 번 이상 전송될 수 있습니다. 동일한 메시지를 여러 번 처리해도 시스템 상태에 영향을 주지 않도록 멱등성 작업을 사용하여 잠재적인 중복 메시지를 처리하도록 애플리케이션을 설계해야 합니다. **최선의 순서 지정** - 최선의 순서 지정을 제공합니다. 즉, Amazon SQS는 전송된 순서대로 메시지를 전송하려고 시도하지만 이를 보장하지는 않습니다. 경우에 따라 특히 처리량이 많거나 장애 복구가 필요한 조건에서 메시지가 잘못 도착할 수 있습니다. 메시지 처리 순서가 중요한 애플리케이션의 경우, 애플리케이션 내에서 재주문 로직을 처리하거나 엄격한 순서 보장을 위해서 FIFO 대기열을 사용해야 합니다. **내구성 및 중복**성 - 표준 대기열은 여러 AWS 가용 영역에 걸쳐 각 메시지의 여러 복사본을 저장하여 높은 내구성을 보장합니다. 이렇게 하면 인프라 장애가 발생하더라도 메시지가 손실되지 않습니다. **표시 제한 시간** - Amazon SQS를 사용하면 메시지 수신 후 숨겨진 상태로 유지되는 기간을 제어하도록 표시 제한 시간을 구성할 수 있으므로, 메시지가 완전히 처리되거나 제한 시간이 만료될 때까지 다른 소비자가 메시지를 처리하지 않도록 할 수 있습니다.  | **높은 처리량** - [배치 처리](sqs-batch-api-actions.md)를 사용하는 경우 FIFO 대기열은 API 메서드([https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessageBatch.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessageBatch.html), [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html) 또는 [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessageBatch.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessageBatch.html))별 초당 최대 3,000개의 메시지를 처리합니다. 이 처리량은 초당 300개의 API 직접 호출에 의존하며, 각 API 직접 호출은 10개의 메시지를 배치 처리합니다. 높은 처리량 모드를 활성화하면 메시지 그룹 내에서 순서를 완화하여 30,000건의 초당 트랜잭션(TPS)까지 확장할 수 있습니다. 배치 처리가 없으면 FIFO 대기열은 API 메서드(`SendMessage`, `ReceiveMessage` 또는 `DeleteMessage`)별 초당 최대 300개의 API 직접 호출을 지원합니다. 처리량이 더 필요한 경우 [AWS Support Center](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&limitType=service-code-sqs)를 통해 할당량 증가를 요청할 수 있습니다. 높은 처리량 모드를 활성화하려면 [Amazon SQS에서 FIFO 대기열의 높은 처리량 활성화](enable-high-throughput-fifo.md) 섹션을 참조하세요. **정확히 1회 처리** - FIFO 대기열은 각 메시지를 한 번 전송하고 처리 및 삭제할 때까지 사용 가능한 상태로 유지합니다. [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html) 또는 콘텐츠 기반 중복 제거와 같은 기능을 사용하면 네트워크 문제 또는 제한 시간으로 인해 재시도할 때에도 중복 메시지를 방지할 수 있습니다. **선입선출 전송** - FIFO 대기열은 각 메시지 그룹 내에서 전송되는 순서대로 메시지를 수신하도록 합니다. 여러 그룹에 메시지를 배포하여 각 그룹 내에서 순서를 유지하면서 병렬로 처리할 수 있습니다.  | 
|  ![\[표준 대기열 메시지 전송.\]](http://docs.aws.amazon.com/ko_kr/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/sqs-what-is-sqs-standard-queue-diagram.png)  |  ![\[FIFO 대기열 메시지 전송.\]](http://docs.aws.amazon.com/ko_kr/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/sqs-what-is-sqs-fifo-queue-diagram.png)  | 
| 처리량이 중요한 경우 표준 대기열을 사용하여 애플리케이션 간에 데이터를 전송합니다. 다음 예를 참조하세요.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-types.html) |  다음 예와 같이 FIFO 대기열을 사용하여 이벤트 순서가 중요할 때 애플리케이션 간에 데이터를 전송합니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-types.html)  | 

# Amazon SQS에서 요청-응답 시스템 구현
<a name="implementing-request-response-systems"></a>

요청 응답 또는 RPC(원격 프로시저 호출) 시스템을 구현할 경우에는 다음 모범 사례에 유의하십시오.
+ **시작 시 응답 대기열 생성** - 메시지당 응답 대기열을 생성하는 대신 시작할 때 생산자별로 응답 대기열을 생성합니다. 상관관계 ID 메시지 속성을 사용하여 요청에 대한 응답을 효율적으로 매핑합니다.
+ **생산자 간의 응답 대기열 공유 방지** - 각 생산자에게 자체 응답 대기열이 있도록 보장합니다. 응답 대기열을 공유하면 한 생산자가 다른 생산자를 위한 응답 메시지를 수신할 수도 있습니다.

임시 대기열 클라이언트를 사용하여 요청-응답 패턴을 구현하는 방법에 대한 자세한 내용은 [요청-응답 메시징 패턴(가상 대기열)](sqs-temporary-queues.md#request-reply-messaging-pattern) 단원을 참조하십시오.