각기 분리된 기능을 수행하는 개별 구성 요소에서 애플리케이션을 구축하는 것이 확장성과 안정성을 개선하는 최선의 방법입니다. 메시지 대기열을 사용하면 메시지를 손실하거나 다른 서비스를 상시 가동할 필요 없이 소프트웨어 구성 요소 간에 어떤 볼륨의 메시지든 전송, 저장 및 수신할 수 있습니다.

메시지 대기열은 메시지가 전달되고 보호되는 방법을 지정할 수 있는 여기에 설명된 몇 가지 옵션을 제공합니다. 대기열은 팬아웃 디자인 패턴의 게시/구독 메시징과 결합할 수 있습니다.

메시지 대기열이란 무엇입니까?

세 가지 간단한 명령으로 Amazon Simple Queue Service(SQS)를 시작할 수 있습니다.

무료로 Amazon SQS 사용해 보기

AWS 프리 티어는 Amazon Simple Queue Service(SQS) 요청 1백만 건을 포함합니다.

AWS 프리 티어 세부 정보 보기 »


대부분의 메시지 대기열은 메시지를 검색할 때 푸시와 풀 옵션을 모두 제공합니다. 풀이란 새로운 메시지가 있는지 계속해서 대기열을 쿼리한다는 뜻이고, 푸시란 메시지가 제공되면 소비자에게 알림이 전송된다는 뜻입니다(이를 게시/구독 메시징이라고도 함). 긴 폴링을 사용하여 지정된 시간 동안 새 메시지가 도착하기를 기다린 후에 풀이 완료되도록 할 수도 있습니다.

많은 메시지 대기열에서 메시지에 대해 특정 전달 시간을 설정하는 기능을 지원합니다. 모든 메시지에 공통 지연이 필요한 경우 지연 대기열을 설정할 수 있습니다.

메시지 대기열은 중복성과 고가용성을 위해 여러 개의 메시지 사본을 저장하고 통신 장애 또는 오류 발생 시 메시지를 재전송하여 적어도 한 번은 메시지가 전달되도록 할 수 있습니다.

복제본을 허용할 수 없는 경우 FIFO(선입선출) 메시지 대기열이 복제본을 자동으로 필터링하여 각 메시지가 정확히 한 번(단 한 번만) 전달되도록 합니다.

이러한 대기열에서는 대기열의 "헤드"라고도 하는 가장 오래된(또는 첫 번째) 항목이 먼저 처리됩니다. Amazon SQS FIFO 대기열에 대한 자세한 내용은 개발자 안내서를 참조하십시오.

또한 블로그에서 Using Python and Amazon SQS FIFO Queues to Preserve Message Sequencing, How the Amazon SQS FIFO API Works, FIFO Queues with Exactly-Once Processing & Deduplication 게시물을 읽어 보십시오.

데드-레터 큐는 다른 대기열이 성공적으로 처리되지 못한 메시지를 전송할 수 있는 대기열입니다. 이를 통해 대기열 처리를 방해하거나 성공적으로 사용하지 못할 수도 있는 메시지에 CPU 주기를 사용하지 않고, 이러한 메시지를 추가 조사를 위해 한쪽으로 치워 놓을 수 있습니다.

데드-레터 큐에 대해 자세히 알아 보려면 블로그에서 Using Amazon SQS Dead-Letter Queues to Control Message Failure 게시물을 읽어 보십시오. Amazon SQS에서 전달 오류 대기열을 사용하는 방법은 개발자 안내서를 참조하십시오.

대부분의 메시지 대기열은 최선 노력 순서를 제공합니다. 즉, 일반적으로 메시지가 전송된 것과 같은 순서로 전달되고 메시지가 최소한 한 번은 전달되도록 합니다.

포이즌 필 메시지는 수신할 수는 있지만 처리할 수 없는 특수 메시지입니다. 이 메시지는 소비자에게 새로운 입력값을 기다리지 말고 작업을 끝내라는 신호를 보내는 데 사용되는 메커니즘으로, 클라이언트/서버 모델에서 소켓을 종료하는 것과 비슷합니다.

메시지 대기열 은 대기열에 액세스하려고 시도하는 애플리케이션을 인증하고 사용자가 암호화를 사용하여 네트워크를 통해 전송되는 메시지와 대기열 자체에 있는 메시지를 암호화하도록 허용합니다. AWS의 대기열 보안에 대한 자세한 내용은 블로그에서 Server-Side Encryption for Amazon Simple Queue Service (SQS) 게시물을 읽어보십시오. 또한 개발자 안내서에서도 Amazon SQS의 보안 기능에 대해 자세히 알아볼 수 있습니다.

세 가지 간단한 명령으로 무료로 시작해 보십시오.