AWS 통합&메시징: SNS란 무엇이고 언제 사용해야하는가

2025. 5. 2. 17:15·AWS
SNS란

 

Pub/Sub 메시징 서비스로 하나의 메시지를 여러 수신자에게 동시에 전송하는 서비스

Publisher: 메시지를 주제로 게시

Subscriber: 많은 구독자들은 SNS 토픽에 따라 메시지를 수신하고 보관한다.

 

  • SNS에서 이벤트 생산자는 한 SNS 토픽에만 메시지를 보낸다
  • 수신자 또는 구독자는 해당 토픽와 관련된 메시지를 받는 역할이고 생성에 제한이 없다
  • 하나의 SNS 토픽 구독자는 해당 토픽으로 전송된 모든 메시지를 받으며 메시지 필터링도 있다

 

SNS - Publish 하는 방법

 

1. SDK Topic Publish:

Topic을 만들고 여러개의 구독을 만든 뒤 토픽을 공개. 해당하는 모든 구독자들이 토픽 메시지를 받게됨

 

2. Direct Publish:

플랫폼 애플리케이션과 Endpoint를 만들고 플랫폼 Endpoint에 게시

 

SNS + SQS: Fan Out 패턴

 

SNS와 SQS를 연결함으로써 Fan Out이라는 패턴이 구현 가능하다. 그리고 이는 가장 대표적인 시나리오이다.

 

FanOut이란?

하나의 메시지를 여러 SQS 대기열로 보낸다면 많은 문제가 발생할 수 있기에 Fan Out Pattern을 사용해서 원하는 만큼의 SQS 대기열이 SNS Topic을 구독하도록 설정

장점:

a. 완전히 분리된 모델로 만들며 애플리케이션 문제로 인한 데이터 손실이 없다
2. SQS로 작업을 다시 시도할 수 있고 데이터 지속성, 지연성 처리도 수행 가능하다
3. 많은 SQS 대기열 추가 가능
4. SQS 엑세스 정책에서 SNS 주제가 SQS 큐에 메시지를 작성할 수 있도록 허용해야한다
5. 리전간 전달 또한 가능

 

SNS - FIFO Topic

 

Topic의 메시지 순서를 지정하는 FIFO 기능 존재하고 SQS FIFO와 비슷하게 그룹ID에 따라 순서를 매겨 전송

장점:

1. 중복 제거가 가능하다.
2. 그룹 ID에 따라 순서대로 전송 가능

 

SNS FIFO + SQS FIFO의 Fan Out 수행 가능

SNS - Messaging Filtering

 

SNS Topic을 구독하면서 Topic에 전송되는 메시지는 Json 정책으로 필터링 된다.

즉, Json 필터링으로 SNS를 구독한 사람들에게 필요에 맞는 메시지만 전송 가능하다.

 

SNS 대표 사용 사례

 

  • 장애/이벤트 발생 시 실시간 알림 (예: CloudWatch Alarm → SNS → Slack/Email)
  • 모바일 푸시 알림 (FCM, APNs 연동)
  • 주문 완료 후 사용자 및 내부 시스템에 동시에 알림
  • 마이크로서비스 간 브로드캐스트 통신

 

'AWS' 카테고리의 다른 글

AWS Monitoring: CloudWatch란 무엇인가  (0) 2025.05.13
AWS Container: ECS, Fargate 이해하기  (0) 2025.05.03
AWS 통합&메시징: SQS란 무엇이고 언제 사용해야하는가  (0) 2025.05.02
AWS Cloudfront와 CDN 이해하기  (0) 2025.04.14
Classic Solution Architecture 비교하며 이해하기(AWS)  (1) 2025.04.09
'AWS' 카테고리의 다른 글
  • AWS Monitoring: CloudWatch란 무엇인가
  • AWS Container: ECS, Fargate 이해하기
  • AWS 통합&메시징: SQS란 무엇이고 언제 사용해야하는가
  • AWS Cloudfront와 CDN 이해하기
무엇을해야하는지
무엇을해야하는지
어차피 잘될거지만, 그래도 꾸준히 열심히 최선을 다해서
  • 무엇을해야하는지
    What2Do
    무엇을해야하는지
  • 전체
    오늘
    어제
    • 분류 전체보기 (92)
      • MLOps (5)
        • DeepLearning(연구-논문) (0)
        • MS Azure AI (1)
        • MLOps projects (4)
      • DevOps&Cloud (23)
      • AWS (21)
      • Algorithm(Python) (25)
      • Springboot (8)
      • IT 시사 (2)
      • 운영체제 (4)
      • 네트워크 (2)
      • JAVA (1)
      • 면접&코테 후기 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    aws #iam #group #role
    dp #동적계획법 #백준 #파이썬
    cors #클라이언트 #서버 #서버사이드 렌더링
    clpud
    3차원
    SpringBoot
    testcode #spring #단위테스트 #통합테스트
    카엔프
    tdd #테스트코드 #spring #springboot
    leetcode #codesignal #코테 #그리디 #알고리즘
    스프링부트
    프로세스
    dp #dfs
    knapsack #가방 #백준 #dp #topdown
    ec2 #instace
    EC2
    BFS
    백준
    rockstat
    AWS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
무엇을해야하는지
AWS 통합&메시징: SNS란 무엇이고 언제 사용해야하는가
상단으로

티스토리툴바