Infra Architecture/AWS

[AWS 입문] SQS(Simple Queue Service)

검은 까마귀 2024. 5. 2. 17:32

# Outline

SQS는 AWS에서 만든 MQ중 하나이기 때문에 MQ를 이해하고 있으면 좋다.

다시 MQ를 정리하자면 MQ는 미들웨어다.

미들웨어를 어렵게 생각하지 않아도 된다. DB와 같은 레벨이다.

 

비슷한 솔루션으로 RabbitMQ, 카프카가 있다.(오픈소스임) ➡️오픈소스라는 말은 커스텀도 잘되지만, 그만큼 운영에 소비해야하는 항목들이 늘어난다는 것이다.

 

이러한 점을 포함해서 몇가지 Advantage로 SQS를 사용하기도 한다. 학습하면서 한번 비교를 해보자

 

사담으로, AWS 최초 서비스라고 볼 수있다.

풍문으로는 웹서비스를 관리해야하는데 고객수가 너무 많아져서 이벤트 기록을 날리기 위해 사용했다고 한다.

 

2024.04.30 - [Infra Architecture] - [Infra] MQ(Message Queue)

 

[Infra] MQ(Message Queue)

# Outline- Message 란?시스템에서 시스템으로 Processing되는 정보의 단위이다. 패킷, 프레임 등등 우리가 일종의 정보를 부르는 것과 같다.- Queue(큐) 란?2023.11.15 - [Computer Science/Data Structure] - [Data Structure

blaj2938.tistory.com

 

# Detail

위에서 개요를 설명 했든이 SQS는 Message Queue를 활용한 통신이며 비동기로 동작을 한다. MQ에서 포스팅할때 알아본 Topic형식의 패턴이 아니라 point to point(one way) pattern으로 동작한다.

 

 자세히 살펴보면

  • SQS는 Polling 기반으로 동작
  • Message의 최대 크기는 256KB
  • SQS에 보존되어있는 메시지는 기본 4DAYS
  • Queue에 있는 Message는 1분에서 14일까지 보관
  • SQS는 메시지를 최소한 한번만 처리되도록 보장
  • AWS의 좋은점인 알아서 자동으로 확장하여 동작한다는 것!!
  • AWS의 다양한 서비스와 연동이 되고 모니터링도 쉽다

표면적인 컨슈머와 프로듀서의 관계는 기존 MQ와 동일하게 동작한다. 

 

SQS만 두고 보는 것보다 다양한 오픈소스와 비교하면서 학습해야 내가 어떤 상황일때 어떻게 아키텍쳐를 구성할지 이해가 된다.

  SQS RabbitMQ
프로토콜 http, https AMQP, MQTT, STOMP
확장성 aws가 알아서 해줌 상대적으로 어려움
영속성 1분 ~ 14일 뭐 내리지 않을때까지 Queue 저장하고 있음
전달 보장 FIFO 구조: At least Once
Standard 구조: Exactly
At least Once
순서 보장 FIFO 구조: 보장
Standard 구조: 최대한 노력
하나의 큐에 하나의 컨슈머가 연결될때만 보장가능
Latency 빠름 상대적으로 느림
TPS 300TPS 20000TPS

 

이외에 SNS가 있는데 이는 Topic을 사용하여 우리가 MQ에서 살펴본 마지막 Pattern인 Pub-Sub 패턴으로 동작한다.

반응형