AWS SAA 시험에서 자주 나오는 조합, 바로 SNS + SQS에 대해 정리해보고자 한다.확실하게 메시징 서비스의 모든 흐름을 이해할 필요가 있다.

Simple Notification Service
게시/구독(Pub/Sub) 방식의 알림 시스템
- 이벤트를 감지한 시스템이 SNS 주제(Topic)에 메시지를 게시(Publish)
- 해당 주제를 구독(Subscribe)한 서비스(SQS, Lambda, 이메일, SMS 등)에 메시지를 전송
- 한 번 게시하면 여러 곳에 전달 = 팬아웃(Fanout) 구조
- 매우 빠르고 실시간성이 높음

Simple Queue Service
메시지를 저장하고 처리하는 비동기 큐 시스템
- 하나 또는 여러 Producer → SQS Queue → 하나 또는 여러 Consumer
- 메시지를 큐에 저장해두고 Consumer가 원하는 시점에 Poll해서 가져감
- 처리량 높고 지연시간 낮음, 메시지 보존 최대 14일
- 분산 시스템, 마이크로서비스 아키텍처에서 매우 유용!

SNS에서 하나의 메시지를 발행하면, 여러 SQS Queue가 이를 동시에 수신할 수 있는 구조
주문 발생
→ SNS에 메시지 게시
→ 여러 SQS 대기열에 전달
→ 각 대기열에서 다른 용도로 처리 (주문 처리, 분석 등)
SNS FIFO 주제는 다음 조건을 만족하면
SQS FIFO 큐와 연결해서 순서대로 메시지 처리 가능하다:
📌 SAA 시험에 나오는 예시:
“SNS FIFO 주제를 생성하고, 이를 SQS FIFO 대기열에 연결” → 순서 보장되는 분산 처리 시스템 구축!
| 기능 | 설명 |
|---|---|
| 주제(Topic) | 게시 대상 (이벤트가 발생했을 때 메시지를 보내는 곳) |
| 구독(Subscription) | 주제를 구독하여 메시지를 받는 대상 (SQS, Email 등) |
| 팬아웃 구조 | 하나의 메시지를 여러 구독자에게 브로드캐스트 |
| FIFO 지원 | 순서를 보장하는 SNS + SQS 조합 가능 |
| 메시지 필터링 | 구독자가 받을 메시지를 속성 기반으로 필터링 가능 |
| 보안 | IAM 정책, 암호화(AES), 접근 제어 정책 등 지원 |
| 항목 | 설명 |
|---|---|
| 큐 타입 | Standard / FIFO |
| 보존 기간 | 1분 ~ 14일 |
| 가시성 타임아웃 | 메시지 처리 중 다른 Consumer에게 안 보이게 설정 |
| Long Polling | 큐에 메시지가 없을 경우 최대 20초 대기 |
| 중복 허용 여부 | Standard 큐는 허용, FIFO는 중복 제거 가능 |
| 보안 | IAM 정책, HTTPS 암호화, 큐 정책 |
| 유형 | 출제 포인트 |
|---|---|
| SNS + SQS 팬아웃 | SNS 주제에 게시 → 여러 SQS 큐에 동시에 전달 가능 |
| FIFO 조합 | FIFO SNS + FIFO SQS 조합은 MessageGroupId 필수 |
| 보안 | SNS는 보안 그룹 ❌, IAM + 정책 기반 접근 제어 |
| 메시지 필터링 | SNS 구독 필터링 정책(JSON)으로 수신 메시지 제어 가능 |
| 문제 예시 | "SNS에서 메시지를 보내고, FIFO 대기열에 순서대로 저장하려고 한다. 어떤 구성을 해야 하는가?" → FIFO SNS 주제 + FIFO SQS 대기열 설정 |