AWS

AWS SQS 톺아보기

검정비니 2023. 10. 25. 21:16
728x90
반응형

Queue는 일반적으로 각 어플리케이션들이 가지는 Coupling을 끊어주는 역할을 한다.

프로듀서가 메시지를 보내서 Queue에 메시지를 저장하고, 이를 컨슈머가 가져가서 프로세싱 하는 방식이다.

 

  • 위 그림은 일반적인 Queue 의 처리 과정이다.
    1. Producer 는 메시지를 생성하여 Queue로 메시지를 전송한다.
    2. Queue는 메시지를 일정 기간 가지고 있게 된다.
    3. Consumer 는 주기적으로 Queue를 Polling 하면서 신규 메시지가 있다면 가져가서 처리한다.
    4. 처리가 끝나면 Queue로 Ack 를 전송한다. (메시지 아이디에 해당하는 Ack를 받으면 Queue에서 메시지를 제거한다. )

이렇게 프로듀서와 컨슈머를 Queue 라는 미들웨어로 분리하면, 각 시스템에 영향을 받지 않고 원하는 작업을 수행할 수 있다.

이번 아티클에서는 SQS에 대해서 정리해보고, Queue 에 대한 내용, 지원하는 Queue feature에 대해서 알아볼 것이다.

 

SQS란

SQS는 AWS에서 제공하는 관리형 메시지 큐로, 비동기적 통신을 위한 메시지 큐로서 많이 사용된다.

Amazon Simple Queue Service (Amazon SQS) 는 분산 소프트웨어 시스템 및 구성 요소를 통합하고 분리 할 때 Amazon Simple Queue Service (Amazon SQS) 를 사용하면 좋다. Amazon SQS는 다음과 같은 일반적인 구조를 제공한다.

 

기본적으로 SQS에는 표준 SQS와 FIFO SQS 이렇게 두가지 종류가 있다.

 

1. 표준 SQS

  • 표준 SQS는 FIFO 큐에 비해 약간이지만 가격이 더 저렴하다.
  • FIFO와는 다르게 메시지 중복(at-least-once 전달)이나 순서 없는 전달 등의 현상이 발생할 수 있다.
  • 가성비 뿐 아니라 또다른 장점으로는, 뛰어난 TPS와 높은 가용성이 있다.
  • LAMBDA, S3 등 다양한 AWS 클라우드 서비스와 자유로운 연동이 가능하다.

2. FIFO SQS

  • First-In First-Out의 순서 기반 전달을 보장한다.
  • 표준 큐와는 다르게 TPS에 제한이 있다.
  • 표준 큐와는 다르게 메시지 중복 없이 단 한번만 전달 (only-once)
  • 표준 큐와는 달리, 연동 가능한 클라우드 서비스에 제한이 있기 때문에, 미리 사용하고자 하는 서비스와의 호환성을 알아봐야 한다.

 

위에서 볼 수 있듯이, 각 큐는 서로 장단점이 명확하기 때문에 구축하고자 하는 시스템의 구조 및 특징을 명확히 파악하고 이에 맞는 큐를 선택할 수 있어야만 한다.

 

반응형