[AWS SAA] SQS 기능 정리

시훈·2025년 4월 14일

AWS SAA

목록 보기
32/43

🧾 SQS란?

Amazon SQS는 완전 관리형 메시지 큐 서비스이다. 마이크로서비스, 분산 시스템, 서버리스 환경에서 비동기적으로 메시지를 안전하게 주고받기 위한 서비스이다. 시스템 간의 decoupling(결합도 낮추기)과 메시지 유실 방지에 효과적이다.


💡 왜 SQS를 사용하는가?

  • ✔️ 비동기 메시징: 시스템 간 실시간 처리 대신, 안정적인 지연 처리 가능

  • 📦 내구성 보장: 메시지를 여러 서버에 복제 저장 → 유실 없이 처리 가능

  • 🔁 확장성 자동 지원: 대량 요청에도 자동으로 확장

  • 🔒 보안: AWS KMS와 통합하여 메시지 암호화 지원

  • 💬 서버 간 결합도 감소: 하나의 컴포넌트가 다운되어도 전체 서비스 영향 최소화


🏗️ 기본 작동 구조

Producer → SQS Queue → Consumer
구성 요소설명
Producer메시지를 보내는 쪽 (예: 주문 시스템)
Consumer메시지를 처리하는 쪽 (예: 포장 시스템)
Queue메시지를 안전하게 저장하고 중계하는 중간 박스

⏱️ Polling (폴링)

폴링은 Consumer가 새로운 메시지를 가져오기 위해 Queue를 주기적으로 확인하는 방식이다.

🔹 Short Polling

  • 기본 방식
  • 메시지가 없으면 즉시 응답
  • 호출 횟수 많아져서 비용 ↑

🔹 Long Polling

  • 메시지가 없을 경우 최대 20초까지 기다림
  • 응답 대기 시간 설정 가능 → 비용 절감 효과

🧺 Queue 유형 비교

구분표준 대기열FIFO 대기열
전송 횟수1회 이상 (중복 가능)1회만 전송
순서 보장Best-Effort OrderingFirst-In-First-Out 완전 보장
처리량거의 무제한초당 300건 or 배치 기준 3,000건
  • 표준대기열
  • FIFO 대기열
    업로드중..

🧯 Dead Letter Queue (DLQ)

  • 오류로 인해 정상 처리되지 못한 메시지를 저장하는 큐
  • MaximumReceiveCount 이상 수신 실패 시 DLQ로 이동
  • DLQ에 저장된 메시지는 수동 재처리, 오류 분석 등에 사용

🕐 Delay Queue & Message Timer

  • Delay Queue: 전체 큐의 모든 메시지 처리 지연 (최대 15분)
  • Message Timer: 특정 메시지에만 지연 시간 설정

⏱ 예시: "주문 접수 메시지 → 10분 후 배송 메시지 전송"


🕶️ Visibility Timeout

  • 메시지를 가져온 Consumer가 처리 중일 때, 다른 Consumer가 같은 메시지를 처리하지 못하게 숨기는 시간
  • 기본값: 30초 / 최대값: 12시간
  • 처리 실패 시 시간이 지나면 다시 큐에 노출되어 재처리 가능

🧠 메시지 큐 vs 동기 처리

방식설명장점단점
동기 처리실시간 요청/응답빠름, 간단결합도 높음, 장애 전파 큼
메시지 큐중간 큐에 메시지 저장결합도 낮음, 유연한 확장지연 발생 가능

🔼 메시지 우선순위 (Prioritization)

SQS는 기본적으로 우선순위를 지원하지 않음. 직접 구현해야 함:

  1. 여러 개의 큐(high, mid, low)를 만들어 우선순위에 따라 Polling
  2. 중요도 높은 큐 먼저 확인하고 낮은 큐는 나중에 처리

🚫 제한 사항 및 고려사항

항목제한
메시지 크기최대 256KB
보존 기간1분 ~ 14일 설정 가능 (기본 4일)
메시지 중복Standard 큐는 중복 가능성 있음
지역성큐는 리전 단위, 리전 간 공유 불가

📚 실무 사용 예시 (주문 처리 시스템)

  1. 사용자가 주문하면 주문 정보 메시지를 SQS 큐로 전송
  2. 백엔드 서버는 큐를 폴링하여 주문을 확인하고 처리
  3. 처리 결과를 다시 큐에 전송하여 배송 시스템이 알림 전송

✨ 마무리 정리

  • Amazon SQS는 비동기 통신과 내결함성을 위한 필수 컴포넌트
  • 시험에서는 폴링 방식, DLQ, Visibility Timeout, 큐 타입, 메시지 제한 등이 자주 출제됨
  • 실무에서는 Microservices, Lambda, Serverless Architecture에 적합한 메시지 솔루션
profile
Backend Developer / Cloud Engineer

0개의 댓글