AWS

AWS 클라우드 따라잡기 16장

메시징과 이벤트 아키텍처 — SQS·SNS·EventBridge·Kinesis

이번 장은 메시징과 이벤트 아키텍처를 다룬다.

AWS 16장 개념도

서비스들이 서로 직접 호출하면, 하나가 느려지거나 죽으면 전체가 영향을 받는다.

메시징은 서비스 사이에 완충재를 두어 느슨하게(decoupled) 연결한다.

이 장의 목표는 다음과 같다.

  • 큐와 발행/구독의 차이를 안다.
  • SQS, SNS, EventBridge, Kinesis의 용도를 구분한다.

1. SQS — 큐

SQS(Simple Queue Service)는 메시지를 줄 세우는 큐다.

  • 생산자가 메시지를 큐에 넣고, 소비자가 하나씩 꺼내 처리한다.
  • 소비자가 바빠도 메시지는 큐에 안전하게 대기한다.
  • 트래픽이 몰려도 큐가 완충 역할을 해 뒷단이 무너지지 않는다.

주문 처리, 이미지 변환 같은 비동기 작업에 잘 맞는다.

2. SNS — 발행/구독

SNS(Simple Notification Service)는 발행/구독(pub/sub) 방식이다.

  • 발행자가 주제(topic)에 메시지를 한 번 보내면,
  • 구독한 모든 대상에게 동시에 전달된다.

하나의 이벤트를 여러 곳(이메일, Lambda, SQS)에 팬아웃할 때 쓴다.

흔한 패턴은 SNS → 여러 SQS로, 발행 하나가 여러 큐로 퍼진다.

3. EventBridge — 이벤트 버스

EventBridge는 이벤트 버스이자 스케줄러다.

  • AWS 서비스, SaaS, 내 앱의 이벤트를 받아 규칙에 따라 라우팅한다.
  • "이런 이벤트가 오면 저 Lambda를 실행하라" 같은 규칙을 만든다.
  • cron 스케줄로 주기 작업도 돌린다. (예: 매일 새벽 정산)

서비스 간 이벤트 연결을 규칙 기반으로 관리할 때 강력하다.

4. Kinesis — 실시간 스트리밍

Kinesis는 대량의 실시간 데이터 스트림을 다룬다.

  • 로그, 클릭스트림, IoT 센서 데이터처럼 끊임없이 쏟아지는 데이터를 수집·처리한다.
  • 여러 소비자가 같은 스트림을 순서대로 읽을 수 있다.

SQS가 "작업 큐"라면 Kinesis는 "데이터 강물"에 가깝다.

5. 무엇을 언제 쓰나

서비스 모델 적합
SQS 큐(1:1 소비) 비동기 작업 처리
SNS 발행/구독(팬아웃) 알림·다중 전달
EventBridge 이벤트 버스 이벤트 라우팅·스케줄
Kinesis 스트리밍 실시간 대량 데이터

정리

  • 메시징은 서비스를 느슨하게 연결해 장애 전파와 부하 폭주를 막는다.
  • SQS=큐, SNS=팬아웃, EventBridge=이벤트 라우팅, Kinesis=실시간 스트림.
  • 이들을 조합해 확장성 있는 이벤트 기반 아키텍처를 만든다.

다음 장에서는 이렇게 모인 데이터를 분석하는 서비스를 다룬다.

댓글 0