컴퓨터과학과

AWS 최초 서비스, SQS(Simple Queue Service)

공부하는노년 2025. 5. 13. 12:29
반응형

 

AWS 최초 서비스, SQS(Simple Queue Service)의 이해

1. SQS란 무엇인가?

SQS(Simple Queue Service)는 분산 시스템 간 메시지를 비동기적으로 전달하기 위해 설계된 완전관리형 메시지 큐 서비스입니다. 메시지를 임시로 저장해 두었다가, 수신 애플리케이션이 처리할 수 있을 때 메시지를 꺼내 처리할 수 있도록 해줍니다.

즉, 생산자(producer)소비자(consumer) 사이에서 버퍼 역할을 수행합니다. 애플리케이션 간 직접적인 통신을 하지 않고, 메시지 큐를 통해 데이터를 주고받을 수 있기 때문에 유연성, 확장성, 내결함성이 크게 향상됩니다.

2. SQS의 탄생 배경

2000년대 초반, 아마존닷컴은 자체 인프라 확장을 위한 기술을 고민하면서 기존의 단일 모놀리식 아키텍처에서 **서비스 지향 아키텍처(SOA)**로 전환하고자 했습니다. 이때 서로 다른 모듈이나 마이크로서비스가 느슨하게 연결되기 위해 필요한 것이 비동기 메시징 시스템이었습니다.

이렇게 탄생한 것이 SQS입니다. 그리고 이는 2004년 11월, AWS의 첫 번째 공개 상용 서비스로 출시되며, 클라우드 컴퓨팅의 시대를 여는 신호탄이 되었습니다.

3. SQS의 주요 특징

■ 완전관리형 서비스

사용자는 서버 관리나 인프라 설정 없이 큐만 생성하고 메시지를 송수신할 수 있습니다.

■ 확장성

초당 수천 건의 메시지를 처리할 수 있어, 높은 트래픽 환경에서도 안정적으로 운영됩니다.

■ 내결함성

여러 가용 영역(AZ)에 메시지를 복제 저장하여 데이터 손실 위험을 줄입니다.

■ 유연한 메시지 수명

메시지를 큐에 보관하는 시간(Time-To-Live, TTL)을 조절할 수 있어 시스템 요구에 따라 구성 가능합니다.

■ 메시지 가시성 타임아웃

한 소비자가 메시지를 처리하는 동안 다른 소비자가 중복 처리하지 않도록 일시적으로 가시성을 차단할 수 있습니다.

■ 메시지 순서 보장(옵션)

표준 큐(Standard Queue)는 순서를 보장하지 않지만, FIFO 큐를 선택하면 순서 보장이 가능합니다.

4. SQS의 큐 유형

큐 종류  특징
Standard Queue 높은 처리량, 중복 허용, 순서 보장 없음
FIFO Queue 순서 보장, 중복 없음, 처리량은 제한적

5. 동작 원리 요약

  1. 생산자(Producer)가 메시지를 큐에 보냅니다.
  2. SQS가 메시지를 저장합니다.
  3. 소비자(Consumer)가 큐에서 메시지를 가져와 처리합니다.
  4. 메시지를 성공적으로 처리하면 삭제 요청을 보냅니다.
  5. 만약 처리 중 문제가 발생하면, 메시지는 재시도되거나 DLQ(Dead Letter Queue)로 이동할 수 있습니다.

6. 활용 예시

  • 비동기 작업 처리: 이미지/영상 처리, 이메일 발송 등 시간 소요 작업을 큐에 넣고 백그라운드에서 처리
  • 마이크로서비스 통합: 여러 마이크로서비스 간 느슨한 연결을 유지하며 통신
  • 데이터 집계 시스템: 다양한 소스에서 들어오는 데이터를 일괄 처리
  • 재고 관리 시스템: 주문 정보를 순서대로 처리하여 재고 충돌 방지

7. SQS와 다른 메시지 서비스 비교

항목  SQS  Kafka  RabbitMQ
관리 방식 완전관리형 자체 관리 필요 자체 관리 필요
메시지 순서 FIFO 큐로 보장 기본 제공 설정 필요
메시지 보존 최대 14일 무제한 큐 설정에 따름
AWS 통합성 매우 뛰어남 제한적 제한적

8. SQS의 진화와 현재

2004년 등장 이후 SQS는 다양한 기능을 추가하며 진화해 왔습니다. 특히 FIFO 큐 지원, DLQ, 메시지 그룹 ID 기능 등을 통해 현대적인 분산 시스템의 요구에 부응하고 있습니다. 또한 AWS의 다른 서비스(AWS Lambda, SNS, Step Functions 등)와 연동하여 서버리스 환경에서도 매우 유용하게 활용됩니다.


마무리: 메시지 기반 아키텍처의 출발점

SQS는 AWS의 첫 서비스라는 상징성뿐 아니라, 오늘날의 마이크로서비스 아키텍처, 서버리스 구조, 이벤트 기반 시스템의 핵심이 되는 기술입니다. AWS 클라우드를 사용하는 개발자라면, 이 기본적인 메시지 큐 서비스의 동작 원리를 꼭 이해하고 있어야 합니다.

비동기 처리를 통해 시스템의 복잡성을 낮추고, 유연한 확장을 가능케 하는 SQS는 단순하지만 강력한 서비스입니다. 지금 이 순간에도 수많은 AWS 기반 서비스들이 SQS 위에서 메시지를 주고받으며 유기적으로 연결되고 있습니다.