SNS(Simple Notification Service)란?
- 게시자가 SNS로 메시지를 보낼 때 구독자에게 Push된다.
- 주제(Topic)와 구독자(Subscription)으로 나뉜다.
- 하나의 주제에 여러 구독자로 이루어질 수 있으며
여러 구독자에게 메시지를 전송할 수 있다.
- 토픽에 전달된 내용을 구독한 모든 구독자가 전달 받아 처리한다.
- 메시지를 가져오는 동시에 메시지 삭제한다. 사용 가능한 수신자가 없을 경우 메시지가 손실된다.
- 이메일, SMS, HTTP 엔드포인트 및 SQS와 같은 엔드포인트를 지원한다.
SQS(Simple Queue Service)란?
- 메시지가 수신자에게 푸시되지 않고, 수신자가 메세지를 수신하기 위해 SQS를 Polling 해야한다.
- 기본값 4일에서 최대 14일 까지 메세지 보관이 가능하다.
- 모든 수신자가 동일한 방식으로 메시지를 처리해야 한다.
- 처리되지 않은 서비스는 다시 큐에 보존되고 다른 요청자가 열람 가능하다.
- Standard 대기열 방식과 FIFO 대기열 방식이 있다.
Standard - 표준 서비스로 초당 무제한에 가까운 호출을 처리한다. 각 메시지 최소 1회 전달 보장하나 정확한 순서는 보장되지 않는다.
FIFO - 선입선출을 지키는 대기열이다. 초당 300개까지 처리가 가능하다. 모든 메시지를 정확히 1회 처리 보장하고 정확한 순서를 보장한다.
SNS와 SQS 차이
SNS
- Push 기반 서비스로 메세지를 직접 서비스에 와서 전달한다.
SQS
- Pull 기반 서비스로 다른 서비스에서 요청을 보내 메세지를 가서 찾아온다.