AWS SNS란?

2022. 2. 7. 15:24ETC

SNS란?

AWS Simple Notification Service 로서, Topic 기반의 메시지 브로커입니다.

SQS가 큐 기반의 메시지 브로커였다면, SNS는 게시자가 메시지를 토픽에 발행하고 구독자는 관심있는 토픽에 구독합니다.

구독한 토픽에 구독한 모든 구독자들은 메시지를 전달받아 처리할 수 있습니다.

 

상당 부분이 SQS와 비슷한 개념이기 때문에, 전에 작성했던 SQS 관련글을 먼저 보고 해당 글을 보시는 것을 추천합니다.

https://yoonbing9.tistory.com/126

 

AWS SQS 아키텍처 및 특징

SQS란? AWS의 Simple Queue Service 로, 말 그대로 큐 서비스입니다. 데이터를 큐에 넣는 어플리케이션과 큐에서 데이터를 빼서 사용하는 어플리케이션을 느슨하게 연결해주는 역할을 합니다. 이와 같은

yoonbing9.tistory.com

SNS 특징

SNS

  • 하나의 토픽을 여러 주체가 구독합니다. (하나의 메시지를 여러 서비스에서 처리)
  • 메시지는 SQS처럼 컨슈머가 Pull하는 방식이 아닌 SNS가 Push하는 방식입니다.
  • 다양한 프로토콜로 메시지를 전달 할 수 있습니다. (예: 이메일, HTTP, SQS, SMS, Lambda)
  • SQS는 메시지를 최대 14일 보관할 수 있지만 SNS는 메시지를 보관할 수 없습니다.

SNS와 SQS를 함께 사용하는 경우

  • 메시지를 보내는 동시에 메시지를 삭제하기 때문에 구독자가 없거나 문제가 있는 경우 메시지가 손실될 수 있습니다.(따라서 SQS와 같이 사용하는 방식으로 메시지 손실을 방어할 수 있습니다.)
  • SNS도 SQS와 같이 표준 또는 FIFO 토픽을 선택할 수 있고, DLQ 지원, 메시지를 여러 서버에 저장하는 것 등 많은 부분이 공통으로 지원됩니다. 가장 큰 차이라고 하면 SQS는 큐 기반, SNS 토픽 기반의 메시지 브로커라고 생각하면 될 것 같습니다.

우아한 형제들도 MSA를 구축하면서 SNS, SQS를 사용하고 있네요!

'ETC' 카테고리의 다른 글

메시지 플랫폼 장애 에러 처리 비교 - SQS, RabbitMQ, Kafka  (0) 2022.02.15
메시징 플랫폼 비교 - SQS, SNS, Kafka, RabbitMQ  (2) 2022.02.11
RabbitMQ란?  (0) 2022.02.09
Kafka(카프카)란?  (0) 2022.02.07
AWS SQS란?  (0) 2022.02.07