# Outline
SQS는 AWS에서 만든 MQ중 하나이기 때문에 MQ를 이해하고 있으면 좋다.
다시 MQ를 정리하자면 MQ는 미들웨어다.
미들웨어를 어렵게 생각하지 않아도 된다. DB와 같은 레벨이다.
비슷한 솔루션으로 RabbitMQ, 카프카가 있다.(오픈소스임) ➡️오픈소스라는 말은 커스텀도 잘되지만, 그만큼 운영에 소비해야하는 항목들이 늘어난다는 것이다.
이러한 점을 포함해서 몇가지 Advantage로 SQS를 사용하기도 한다. 학습하면서 한번 비교를 해보자
사담으로, AWS 최초 서비스라고 볼 수있다.
풍문으로는 웹서비스를 관리해야하는데 고객수가 너무 많아져서 이벤트 기록을 날리기 위해 사용했다고 한다.
2024.04.30 - [Infra Architecture] - [Infra] MQ(Message Queue)
# 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 패턴으로 동작한다.
반응형
'Infra Architecture > AWS' 카테고리의 다른 글
[AWS 심화] EKS(Elastic Kubernetes Service) (0) | 2023.10.26 |
---|---|
[AWS 입문] EC2(Elastic Compute Cloud) (0) | 2023.09.22 |
[AWS 입문] IAM(Identify and Acess Management) (0) | 2023.09.21 |