본문 바로가기
IT정보

AWS SQS 에 대해서 알아보자

by IT백화점 2024. 4. 13.

AWS의 SQS(Simple Queue Service)는 완전 관리형 메시지 큐 서비스이다. 

 

메시지 큐란

메시지 큐(Message Queue)란 프로세스 또는 프로그램 간 데이터를 교환할 때 사용하는 통신 방법 중 하나로서, 비동기 메시를 사용하는 프로그램들 간의 데이터를 송수신하는 용도로 사용된다. 

메시지를 전송할 때는 Producer(메시지 생산자)가 메시지를 큐에 전달하고, 해당 메시지는 Consumer(소비자)에게 전달된된다. 

각 메시지는 Comsumer에 의해 한 번 만 처리되기 때문에, 일반적으로 메시지 큐는 일대일 통신방식에 사용된다. 

 

 

 

SQS의 큐 처리 과정

AWS SQS의 큐 처리과정

 

위 그림과 같이 SQS의 기본적인 큐 처리과정은 다음과 같다. 

  • Producer는 메시지를 생성하여 큐로 메시지를 전송
  • 큐는 메시지를 일정 기간 보관 (최대 14일)
  • Consumer는 주기적으로 큐를 폴링(Polling)하면서 신규 메시지가 있다면 가져가서 처리
  • 처리가 끝나면 큐로 ACK(또는 NACK)를 전송
  • 큐는 Ack를 받으면 메시지를 제거 (NACK를 받으면 메시지를 제거하지 않음)

 

SQS의 특징

AWS SQS는 완전 관리형 서비스로서 내구성, 가용성, 확장성이 매우 우수하다.

 

  • 가용성 : 메시지를 저장하는 큐 서버는 여러 대로 구성되어 있음
  • 내구성 : 메시지의 안전을 위해 하나의 메시지는 여러 서버에 저장됨
  • 확장성 : 별도의 설정 없이도 로드 증가 및 급증에 따라 자동으로 큐 서버가 확장됨

 

SQS의 주요 기능

표준대기열 : 최소 1회 전송, 메시지 순서 보장되지 않음

 

 

FIFO 대기열 : 선입선출, 메시지 순서가 유지됨

 

메시지 중복 처리 방지 : 다른 Consumer에서 메시지를 중복처리 하는 것을 방지하기 위해 차단하는 시간을 최대 12시간으로 설정

 

메시지 암호화 : SQS로 전송 중인 데이터를 KMS를 이용하여 암호화