상세 컨텐츠

본문 제목

AWS SQS 선택기: Kafka와 RabbitMQ를 제치고 선택한 이유

Developer/Backend

by 웰크 2025. 5. 15. 20:43

본문

728x90

큐 시스템 비교 및 선택: AWS SQS vs RabbitMQ vs Kafka

서비스를 개발하다 보면 어느 순간 ‘메시지 큐’를 도입할 타이밍이 옵니다.
저희 팀도 서비스 간의 비동기 통신과 작업 분산을 위해 메시지 큐 시스템이 필요해졌고, 여러 가지 대안을 검토한 끝에 AWS SQS를 선택하게 되었습니다.

이 글에서는 AWS SQS, RabbitMQ, Apache Kafka를 비교하며, 어떤 과정을 거쳐 SQS를 선택하게 되었는지를 공유드리고자 합니다.
각 시스템은 특성과 목적이 뚜렷하기 때문에 “정답”은 없습니다. 하지만 실무 선택에 참고가 될 만한 기준은 존재합니다.


왜 메시지 큐가 필요했을까?

저희 프로젝트는 다음과 같은 요구사항을 갖고 있었습니다:

  • 비동기 처리로 서비스 응답 속도 개선
  • 비정기적으로 발생하는 대용량 이벤트 처리
  • 서비스 간 통신 안정성 확보

처음에는 간단한 이벤트 버스 형태로 설계했지만, 점점 복잡해지면서 전용 메시지 큐 시스템이 필요해졌습니다.


비교 대상: SQS, RabbitMQ, Kafka

항목 AWS SQS RabbitMQ Apache Kafka
운영 형태 완전 관리형 (서버리스) 설치형 (Self-hosted, 클러스터 가능) 설치형 또는 MSK (관리형 Kafka)
메시징 모델 단순 Queue (Standard/FIFO) AMQP 기반, 복잡한 라우팅 지원 로그 기반 스트리밍, pub-sub
설정 복잡도 매우 간단 비교적 간단하나 운영 지식 필요 복잡한 설정, 클러스터 운영 필요
성능/확장성 적당함 (대부분의 서비스에 충분) 중간 수준 대용량 처리에 매우 적합
비용 구조 사용량 기반 과금 (서버 없음) EC2 + 운영 리소스 서버 비용 + 운영 복잡도
장점 설치 불필요, 자동 스케일링, 안정성 다양한 라우팅, 익숙한 인터페이스 고성능 처리, 메시지 재처리 용이
단점 기능 제한 (예: 메시지 크기 제한) 직접 설치 및 장애 대응 필요 복잡한 운영, 러닝커브 높음

왜 AWS SQS를 선택했을까?

1. 이미 AWS 인프라를 사용 중

저희 팀은 AWS 기반으로 대부분의 인프라가 구성되어 있었습니다. IAM, VPC, Lambda, ECS 등과 자연스럽게 통합할 수 있는 SQS는 매우 유리한 선택지였죠.

2. 사용하기 쉽다

큐 생성 → 권한 설정 → 메시지 발송/수신 코드 작성
이 프로세스만으로 큐 시스템을 바로 운영할 수 있었습니다. 추가 설치나 클러스터링에 대한 고민이 없다는 점은 초반 도입을 크게 단순화시켰습니다.

3. 유지보수가 필요 없다

Kafka나 RabbitMQ는 설치 이후에도 지속적인 모니터링, 장애 대응, 버전 업그레이드 등의 운영 리소스가 필요합니다.
반면, SQS는 완전 관리형 서비스로 AWS에서 모든 운영을 책임지기 때문에 운영 부담이 거의 없습니다.


다른 대안들은 어땠을까?

🔹 RabbitMQ

  • 설정이 쉽고, 다양한 라우팅 기능이 강력함
  • 하지만 직접 설치해야 하고, 고가용성을 구성하려면 HA 클러스터를 구성해야 함
  • 메시지 유실 방지를 위한 디스크 저장 옵션 등도 고려해야 하며, 관리 포인트가 많아짐

🔹 Apache Kafka

  • 대용량 처리에 최적화된 고성능 메시징 시스템
  • 메시지를 재처리하거나 이벤트 로그로 활용할 수 있는 장점
  • 그러나 운영 복잡도가 매우 높음. 특히 클러스터 구성, 파티션 관리, 오프셋 유지 등의 개념이 필요
  • 성능은 좋지만, 저희 프로젝트의 메시지량에는 과한 선택이었음

결국 선택은 “상황에 따라”

모든 기술 선택에는 트레이드오프가 있습니다.
저희는 운영 리소스 최소화, 기존 AWS 환경과의 통합, 개발 생산성을 우선으로 하여 AWS SQS를 선택했습니다.

하지만,

  • 대용량 이벤트 로그 분석이 필요하거나
  • 메시지를 정밀하게 재처리해야 하거나
  • 정교한 라우팅 패턴이 필요하다면 Kafka나 RabbitMQ도 훌륭한 선택이 될 수 있습니다.

마무리하며

큐 시스템 선택은 단순히 기능 비교만으로 결정되기 어렵습니다.
팀의 상황, 인프라, 유지보수 역량, 예산까지 고려해야 하며, 각 기술의 특징을 충분히 이해하고 선택해야 합니다.

궁금한 점이나 선택 경험이 있으시다면 댓글로 공유해주세요!

728x90
반응형

관련글 더보기