블로그 릴레이 - SQS의 표준 대기열과 FIFO 대기열의 차이에 대해

블로그 릴레이 - SQS의 표준 대기열과 FIFO 대기열의 차이에 대해

Clock Icon2025.03.23

안녕하세요! 클라우드 사업본부의 서은우입니다.

본 블로그는 당사의 한국어 블로그 릴레이의 2025년 여덟 번째 블로그입니다.
이번 블로그의 주제는「SQS의 표준 대기열과 FIFO 대기열의 차이에 대해」입니다.

Amazon SQS란

Amazon SQS란 Simple Queue Service의 이름에서 알 수 있듯이 어플리케이션 간에 메시지를 주고 받을 수 있는 완전관리형 메시지 큐 서비스로 입니다.

SQS는 주로 마이크로 서비스 아키텍처나 디커플링을 위해 사용할 수 있으며, 어플리케이션들 간에 메시지를 비동기적으로 처리할 수 있습니다. 또한 SQS의 성능은 자동으로 확장되며 메시지 양이 늘어나도 유연하게 대처할 수 있는 장점이 있습니다.

SQS에는 표준과 FIFO 라는 대기열을 사용할 수 있는데요, 본 블로그에서는 이 2가지 대기열에 대해 어떤 특징이 있는지 비교해보고자 합니다.

SQS의 대기열

표준 대기열

1

메시지의 순서가 보장되지 않음

SQS는 고가용성과 내구성을 위해 하나의 메시지를 여러 SQS 서버에 중복 분산해 저장합니다. 표준 대기열은 이러한 메시지들을 처리하기 위한 처리량을 극대화하기 위해, SQS는 메시지를 전송된 순서대로 처리하기 위해 노력하지만(Best-Effort-Ordering) 이것을 보장하지는 않습니다. 때문에 메시지의 처리 순서가 중요한 기능의 경우에는 표준 대기열을 사용하지 않는 것이 좋습니다.

메시지의 중복

표준 대기열은 높은 처리량과 내구성을 위해 메시지를 중복 처리하는 것을 허용합니다.
표준 대기열의 메시지는 최소 1회 전송되지만, 메시지의 수신/삭제와 같은 요청이 반영되지 않거나 하는 타이밍의 문제로 동일한 메시지를 중복하여 처리해버릴 가능성이 있습니다.

무제한의 처리량

표준 대기열은 트래픽에 따라 자동으로 확장되고 거의 무제한의 메시지 처리량을 제공하기 때문에 대량의 메시지를 빠리게 처리해야하는 경우에 유용합니다.

FIFO 대기열

2

메시지의 순서를 보장함(선입선출)

FIFO(First-In-First-Out)의 이름에서 알 수 있듯, FIFO 대기열은 메시지가 전송된 순서대로 처리되는 선입선출을 보장합니다.
이 때문에 메시지의 처리 순서가 중요한 경우 FIFO 대기열을 사용하는 것이 좋습니다.

메시지의 중복을 허용하지 않음

FIFO 대기열은 중복 메시지를 제거합니다. 각 메시지는 고유하게 정확히 1회만 처리되며, 동일한 메시지가 중복으로 전달되지 않기 때문에 대기열에 같은 메시지를 중복해서 전송하는 등의 동작을 방지할 수 있습니다.

높은 처리량

FIFO 대기열은 API 작업당 최대 300TPS이라는 처리량을 제공합니다. 높은 처리량을 활성화하여 초당 24,000TPS(서울 리전 기준) 까지 처리량을 늘릴 수 있지만 거의 무제한의 처리량을 제공하는 표준 대기열에 비해서는 상대적으로 낮은 처리량을 제공합니다.

표로 정리

각 대기열의 특징을 표로 정리해보았습니다.

표준 대기열 FIFO 대기열
메시지 처리 순서 가능한 순서 유지 선입선출
메시지 중복 중복 허용 중복 불가
배달 횟수 적어도 1번 엄격하게 1번
처리량 무제한 초당 300TPS
높은 처리량 모드 사용 가능
비용 ・처음 백만개 무료
・1백만~1천억 $0.4
표준 대기열 보다 비쌈
・처음 백만개 무료
・1백만~1천억 $0.5
사용 사례 처리 순서나 중복 실행에 상관없이
대량의 메시지를 빨리 처리해야하는 경우
작업의 처리 순서가 중요한 경우

끝으로

SQS의 사용을 시작하기 앞서, 표준과 FIFO 각 대기열의 특징을 이해한다면 SQS를 더욱 유용하게 사용하는 데에 도움이 될 것이라고 생각합니다.

이상, 한국어 블로그 릴레이의 2025년 여덟 번째 블로그인 「SQS의 표준 대기열과 FIFO 대기열의 차이에 대해」 였습니다. 다음 아홉번째 블로그 릴레이는 3월 넷째 주에 공개됩니다.

끝까지 읽어주셔서 감사합니다!

참고

https://docs.aws.amazon.com/ko_kr/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-types.html

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.