Amazon SNS (Simple Notification Service)와 Amazon SQS (Simple Queue Service)는 모두 AWS에서 제공되는 메시지 송수신 서비스이지만 목적과 기능에서 차이가 있습니다.
Amazon SNS (Simple Notification Service)
- Publisher-Subscriber 모델
- SNS는 Publisher-Subscriber 모델을 따릅니다.
- 메시지를 발행하는 애플리케이션(출판자)이 있고, 이를 구독하는 다수의 애플리케이션(구독자)이 있습니다.
- Push 방식
- SNS는 Push 방식을 사용하여 메시지를 전송합니다. 메시지가 발행되면 해당 메시지는 즉시 구독자에게 전달됩니다.
- 다양한 종류의 엔드포인트
- SNS는 다양한 엔드포인트로 메시지를 전송할 수 있습니다.
- 이메일, SMS, HTTP/HTTPS 엔드포인트, AWS Lambda 함수 등을 지원합니다.
- 토픽 (Topic)
- 메시지의 주제를 나타내는 토픽을 정의하고, 여러 구독자가 해당 토픽을 구독하여 메시지를 받을 수 있습니다.
Amazon SQS (Simple Queue Service)
- 큐 기반 모델
- SQS는 큐 기반 모델을 사용합니다.
- 메시지를 발행하는 애플리케이션이 있고, 이를 처리하는 다수의 애플리케이션이 큐에 등록됩니다.
- Pull 방식
- SQS는 Pull 방식을 사용하여 메시지를 가져옵니다.
- 메시지를 수신하려면 애플리케이션이 명시적으로 SQS에서 메시지를 가져와야 합니다.
- 지연 큐 (Delay Queue)
- SQS는 메시지 전달을 지연시킬 수 있는 지연 큐를 제공합니다.
- 이를 통해 메시지를 특정 시간 동안 큐에 보관할 수 있습니다.
- Point-to-Point 통신:
- 메시지의 발행과 수신이 1:1로 진행되며, 여러 컨슈머가 동일한 메시지를 처리할 수 있습니다.
차이점 요약
-
목적
- SNS는 다양한 엔드포인트로 메시지를 푸시하는 데 중점을 둡니다.
- SQS는 메시지 큐를 통해 메시지를 풀 방식으로 처리하는 데 중점을 둡니다.
-
전달 방식
- SNS는 Push 방식으로 동작하며 메시지를 바로 전달합니다.
- SQS는 Pull 방식으로 동작하며 애플리케이션이 메시지를 명시적으로 가져와야 합니다.
-
메시지 유지
- SNS는 메시지 전송 후에는 해당 메시지를 보관하지 않습니다.
- SQS는 메시지 전송 후에도 메시지를 보관하고, 지연 큐를 통해 메시지 전송을 지연시킬 수 있습니다.
이러한 차이로 인해 두 서비스는 각각 다른 시나리오 및 요구사항에 적합하게 사용됩니다.