Search

SQS vs SNS

핵심

SQS
메시지를 쌓아두고 처리 (Queue)
SNS
메시지를 동시에 뿌림 (Pub/Sub)

구조 차이

SQS
Queue 구조
Producer -> [ SQS Queue ] -> Consumer
Plain Text
복사
메시지가 큐에 쌓임
소비자가 꺼내서 처리 (Pull)
처리 안 하면 계속 남아 있음
핵심: 안정성 / 버퍼 역할
SNS
Pub/Sub 구조
Producer -> SNS -> 여러 Subscriber (Lambda, SQS, Email 등)
Plain Text
복사
메시지를 즉시 여러 곳에 전달
저장 안 함 (기본적으로)
Push 방식
핵심: 동시 전달 / 이벤트 전파

언제 사용하는지

SQS
비동기 처리
트래픽 폭증
시스템 분리
메시지 유실 방지
예시
주문 처리
이미지 처리 대기열
Lambda 트리거
메시지 급증 / 분리 필요
SNS
여러 서비스에 동시에 전달
이벤트 알림
팬아웃
예시
이메일 + SMS + Lambda 동시에 호출
주문 이벤트 알림

차이점

기준
SQS
SNS
메시지 저장
O
X
전달 방식
Pull
Push
소비자 수
1개 (기본)
여러 개
목적
안정적 처리
이벤트 전파

문제 예시

여러 서비스가 메시지를 처리해야 함
SQS → X (하나만 소비)
SNS → O
메시지를 반드시 처리해야 함
SNS → X (유실 가능)
SQS → O
버퍼링 필요 / 트래핑 급증
SNS → X
SQS → O

고급 패턴

SNS + SQS 같이 사용하는 구조
Producer -> SNS -> SQS1 -> 서비스 1 -> SQS2 -> 서비스 2 -> SQS3 -> 서비스 3
Plain Text
복사
SNS → 여러 서비스로 뿌림
SQS → 각 서비스가 안정적으로 처리