[AWS] SES vs SNS vs SQS

김아름·2022년 3월 15일
0

AWS

목록 보기
19/25

SES(Simple Email Service)

  • 개발자가 모든 애플리케이션 안에서 이메일을 보낼 수 있는 경제저기고, 유연하며, 확장가능한 이메일 서비스

  • Amazon SES를 빠르게 구성하여, 트랜잭션, 마케팅 또는 대량 이메일 커뮤니케이션을 포함한 다수의 이메일 사용 사례를 구성할 수O

  • Email을 보내거나 받을 수 있는 서비스

  • Email을 받을 때 여러방법으로 처리 가능
    (1) Lambda 호출
    (2) SNS 호출
    (3) S3에 Email 저장

  • 대량의 Email을 보내기 위해서는 샌드박스 모드 해제 필요(AWS Support 센터)
    : 대량의 스팸메일 보내면 안되니까 WS Support 센터에 문의를 해서 어떤 목적으로 이메일을 보내고 싶다고 말하면 해제 해줌


SNS(Simple Notification Service)

  • 애플리케이션 간(A2A) 및 애플리케이션과 사용자 간(A2P) 통신을 모두를 위한 완전관리형 메시징 서비스
  • Sub / Pub (구독과 발행) 기반의 메세징 서비스
    (1) 하나의 토픽을 여러 주체가 구독
    (2) 토픽에 전달된 내용을 구독한 모든 주체가 전달받아 처리

  • 다양한 프로토콜로 메시지 전달 가능
    (1) 이메일
    (2) HTTP(S)
    (3) SQS
    (4) SMS
    (5) Lambda

  • 하나의 메시지를 여러 서비스에서 처리

전달대상

Fan Out Architecture

  • 원본 동영상을 업로드 하면 S3에서 SNS로 보낸다.
  • SNS에서 각각의 인코딩 할수있는 EC2로 메시지를 보낸다.
  • 하나의 메시지가 전달 되었는데 SNS에서 증폭을 시킴
  • S3에서 하나의 메시지를 보냈는데 SNS이 여러 주체들에게 보냄
  • 이것을 Fan Out Architecture라고 함

SQS(Simple Queue Service)

  • 마이크로서비스, 분산 시스템 및 서버리스 애플리케이션을 쉽게 분리하고 확장할 수 있도록 지원하는 완전관리형 메시지 대기열 서비스

  • AWS에서 제공하는 큐 서비스
    (1) 다른 서비스에서 사용할 수 있도록 메시지를 잠시 저장하는 용도
    (2) 최대사이즈: 256KB, 최대 14일까지 저장 가능

  • 주로 AWS 서비스들의 느슨한 연결을 수립하려 사용

  • 하나의 메시지를 한번만 처리

  • AWS에서 가장 오래된 서비스


SQS의 필요성

  • 원본 영상을 업로드 하면 이것을 인코딩 해주는 서비스가 있다고 해보자
  • S3로 업로드가 되어서 Lambda를 통해서 EC2로 전달이 된다.

  • 근데 갑자기 EC2에 장애가 발생해서 오류가 났다.
  • 그럼 그냥 끝난다. Fail에 대한 매커니즘이 없다.
  • 근데 중간에 SQS를 두면?

  • Lambda에서 SQS에 넣어두면 EC2 인스턴스 클러스터들이 SQS에서 꺼내서 사용한다.

  • 만약 EC2가 전부 Fail이 되더라도 메시지는 그대로 SQS에 저장되어있다.

  • 메시지가 유실되지 않기 때문에 EC2가 복구되면 SQS에서 꺼내서 사용하면 된다.

  • 안전하게 하나의 서비스에서 다른 서비스로 메시지를 전달 할 수O

  • EC2를 Lambda,ECS...등 다른 서비스로 바꾼다고 하면,
    SQS에 메시지를 넣어준다는 Lambda의 역할은 변하지 않아서 완전히 독립적인 아키텍쳐를 구성할 수 있다.




참고

profile
쿄쿄쿄

0개의 댓글