
대기열은 메시지를 일시적으로 저장하는 버퍼 역할을 한다. 여기서 프로듀서(Producer)는 대기열로 메시지를 전송하고, 컨슈머(Consumer)는 대기열에서 메시지를 읽어 처리한다.
Amazon SQS는 서버를 관리할 필요가 없는 완전 관리형 서비스다. 이는 애플리케이션 구성 요소 간의 통신을 관리하고 확장할 때 유용하다.
SQS는 초당 1개의 메시지부터 수만 개의 메시지까지 한도 없이 규모를 조정할 수 있다. 메시지의 기본 보유 기간은 4일이며, 최대 14일까지 설정할 수 있다.
발행 구독 시 지연 시간은 0.01초 미만이다. 컨슈머가 메시지를 읽는 작업을 공유하여 수평적으로 확장할 수 있다.
SQS는 애플리케이션 티어를 분리할 때 유용하다. 예를 들어, 웹 서버가 요청을 받아 EC2 인스턴스의 Auto Scaling Group을 통해 처리하는 전통적인 솔루션 아키텍처를 생각해보자.
이렇게 하면 웹 서버와 영상 처리 계층이 SQS 대기열을 통해 완전히 분리되어 독립적으로 확장될 수 있다.
SQS는 FIFO(First In First Out) 대기열을 제공한다. 이는 메시지를 전송한 순서대로 처리하는 방식이다. 일반 대기열에서는 각 컨슈머가 메시지를 순서와 상관없이 처리할 수 있지만, FIFO 대기열에서는 메시지가 전송된 순서대로 처리된다. 이는 특정 순서로 메시지를 처리해야 하는 애플리케이션에 유용하다.