Amazon SQS의 FIFO 대기열에 대한 높은 처리량 - Amazon Simple Queue Service

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

Amazon SQS의 FIFO 대기열에 대한 높은 처리량

Amazon SQS의 높은 처리량 FIFO 대기열은 엄격한 메시지 순서를 유지하면서 높은 메시지 처리량을 효율적으로 관리하여 수많은 메시지를 처리하는 애플리케이션의 안정성과 확장성을 보장합니다. 이 솔루션은 높은 처리량과 순차적인 메시지 전송을 모두 요구하는 시나리오에 적합합니다.

엄격한 메시지 순서가 중요하지 않고 수신 메시지의 양이 비교적 적거나 산발적인 시나리오에서는 Amazon SQS 처리량이 높은 FIFO 대기열이 필요하지 않습니다. 예를 들어, 메시지를 자주 처리하지 않거나 비순차적인 메시지를 처리하는 소규모 애플리케이션을 사용하는 경우 처리량이 높은 FIFO 대기열과 관련된 복잡성과 비용이 추가되는 것은 정당화되지 않을 수 있습니다. 또한 애플리케이션에 높은 처리량의 FIFO 대기열이 제공하는 향상된 처리량 기능이 필요하지 않은 경우 표준 Amazon SQS 대기열을 선택하는 것이 더 비용 효율적이고 관리가 간단할 수 있습니다.

처리량이 많은 FIFO 대기열의 요청 용량을 향상시키려면 메시지 그룹 수를 늘리는 것이 좋습니다. 처리량이 많은 메시지 할당량에 대한 자세한 내용은 Amazon Web Services 일반 참조Amazon SQS 서비스 할당량을 참조하세요.

대기열별 할당량 및 데이터 배포 전략에 대한 자세한 내용은 및 을 참조하십시오. Amazon SQS 메시지 할당량 SQS FIFO 대기열의 높은 처리량을 위한 파티션 및 데이터 배포

Amazon SQS FIFO 대기열의 높은 처리량을 위한 사용 사례

다음 사용 사례는 처리량이 높은 FIFO 대기열의 다양한 애플리케이션을 강조하여 산업 및 시나리오 전반에 걸친 효율성을 보여줍니다.

  1. 실시간 데이터 처리: 이벤트 처리 또는 원격 측정 데이터 수집과 같은 실시간 데이터 스트림을 처리하는 애플리케이션은 처리량이 높은 FIFO 대기열을 활용하여 정확한 분석을 위해 순서를 유지하면서 지속적으로 유입되는 메시지를 처리할 수 있습니다.

  2. 전자 상거래 주문 처리: 고객 거래의 순서를 유지하는 것이 중요한 전자 상거래 플랫폼에서 처리량이 높은 FIFO 대기열을 사용하면 쇼핑 성수기에도 주문이 지연 없이 순차적으로 처리됩니다.

  3. 금융 서비스: 빈도가 높은 거래 또는 거래 데이터를 처리하는 금융 기관은 메시지 주문에 대한 엄격한 규제 요구 사항을 준수하면서 최소의 지연 시간으로 시장 데이터와 거래를 처리하기 위해 높은 처리량의 FIFO 대기열을 사용합니다.

  4. 미디어 스트리밍: 스트리밍 플랫폼 및 미디어 배포 서비스는 처리량이 높은 FIFO 대기열을 활용하여 미디어 파일 및 스트리밍 콘텐츠의 전송을 관리하여 올바른 콘텐츠 전송 순서를 유지하면서 사용자의 원활한 재생 환경을 보장합니다.

SQS FIFO 대기열의 높은 처리량을 위한 파티션 및 데이터 배포

Amazon SQS는 FIFO 대기열 데이터를 파티션에 저장합니다. 파티션은 대기열에 대한 스토리지 할당으로, 지역 내 여러 가용 영역에 자동으로 복제됩니다. AWS 사용자는 파티션을 관리하지 않습니다. 대신 Amazon SQS가 파티션 관리를 처리합니다.

FIFO 대기열의 경우 Amazon SQS는 다음과 같은 상황에서 대기열의 파티션 수를 수정합니다.

  • 현재 요청 속도가 기존 파티션이 지원할 수 있는 속도에 근접하거나 초과하면 대기열이 리전별 할당량에 도달할 때까지 추가 파티션이 할당됩니다. 할당량에 대한 자세한 내용은 Amazon SQS 메시지 할당량 섹션을 참조하세요.

  • 현재 파티션의 사용률이 낮으면 파티션 수가 줄어들 수 있습니다.

파티션 관리는 백그라운드에서 자동으로 이루어지므로 애플리케이션에는 표시되지 않습니다. 대기열과 메시지를 항상 사용할 수 있습니다.

메시지 그룹 ID별로 데이터 배포

FIFO 대기열에 메시지를 추가하기 위해 Amazon SQS는 각 메시지의 메시지 그룹 ID 값을 내부 해시 함수의 입력으로 사용합니다. 해시 함수 출력 값은 메시지를 저장할 파티션을 결정합니다.

다음 다이어그램은 여러 파티션에 걸쳐 있는 대기열을 보여줍니다. 대기열의 메시지 그룹 ID는 항목 번호를 기반으로 합니다. Amazon SQS는 해시 함수를 사용하여 새 항목을 저장할 위치를 결정합니다. 이 경우 문자열 item0의 해시 값이 기준으로 사용됩니다. 항목은 대기열에 추가되는 것과 동일한 순서로 저장된다는 점에 유의하세요. 각 항목의 위치는 메시지 그룹 ID의 해시 값으로 결정됩니다.

대기열은 여러 파티션에 걸쳐 있습니다.
참고

Amazon SQS는 파티션 수에 관계없이 FIFO 대기열의 파티션 전체에 항목을 균일하게 배포하도록 최적화되었습니다. AWS 고유 값이 많을 수 있는 메시지 그룹 ID를 사용할 것을 권장합니다.

파티션 사용률 최적화

각 파티션은 배치 처리 시 초당 최대 3,000개의 메시지를 지원하거나 지원되는 리전에서 전송, 수신 및 삭제 작업의 경우 초당 최대 300개의 메시지를 지원합니다. 처리량이 많은 메시지 할당량에 대한 자세한 내용은 Amazon Web Services 일반 참조Amazon SQS 서비스 할당량을 참조하세요.

배치 API를 사용하는 경우 각 메시지는 메시지 그룹 ID별로 데이터 배포에 설명된 프로세스에 따라 라우팅됩니다. 동일한 파티션으로 라우팅되는 메시지는 그룹화되어 단일 트랜잭션으로 처리됩니다.

SendMessageBatchAPI의 파티션 사용률을 최적화하려면 가능하면 메시지 그룹 ID가 동일한 메시지를 일괄 처리하는 것이 좋습니다. AWS

DeleteMessageBatchChangeMessageVisibilityBatch API의 파티션 사용률을 최적화하려면 MaxNumberOfMessages 파라미터가 10으로 설정된 ReceiveMessage 요청을 사용하고 단일 요청에서 반환된 수신 핸들을 일괄 처리하는 것이 좋습니다. AWS ReceiveMessage

다음 예에서는 다양한 메시지 그룹 ID를 가진 메시지 배치 처리가 전송됩니다. 배치 처리는 세 그룹으로 나뉘며, 각 그룹은 파티션의 할당량에 포함됩니다.

메시지 그룹 ID가 서로 다른 메시지 배치 처리는 파티션에 저장됩니다.
참고

Amazon SQS는 동일한 메시지 그룹 ID의 내부 해시 함수를 가진 메시지가 배치 요청 내에서만 그룹화되도록 보장합니다. 내부 해시 함수의 출력과 파티션 수에 따라 메시지 그룹 ID가 다른 메시지가 그룹화될 수 있습니다. 해시 함수 또는 파티션 수는 언제든지 변경될 수 있으므로 한 지점에서 그룹화된 메시지가 나중에 그룹화되지 않을 수 있습니다.