[CLF-C02] 이론 강의: 대규모 분산 시스템을 위한 AWS 메시징 & 통합 서비스 완벽 이해
작성자: aws | 작성일: 2026년 06월 26일 | 조회: 0 | 좋아요: 0
현대의 클라우드 네이티브 애플리케이션은 대부분 마이크로서비스 아키텍처(Microservices Architecture)로 구축됩니다. 이 아키텍처에서는 수많은 서비스들이 서로 독립적으로 작동하며 데이터를 교환해야 하는데, 이때 메시징 및 통합 서비스들이 핵심적인 역할을 수행합니다. 이들은 서비스 간의 직접적인 의존성을 제거하고, 비동기적인(Asynchronous) 통신을 가능하게 하여 시스템 전체의 유연성과 안정성을 향상시킵니다.
1. Amazon SQS (Simple Queue Service): 메시지 큐의 표준
AWS SQS는 완전 관리형(Fully Managed) 메시지 큐 서비스입니다. 분산 시스템의 구성 요소 간에 메시지를 안정적으로 주고받을 수 있도록 대기열(Queue)을 제공하여 결합도를 낮춥니다. 프로듀서(Producer)는 메시지를 큐에 보내고, 컨슈머(Consumer)는 큐에서 메시지를 가져가 처리합니다. SQS는 메시지 손실 없이 높은 처리량과 확장성을 제공하며, 컨슈머가 메시지를 처리하지 못할 경우를 대비하여 재시도 메커니즘을 지원합니다.
- Standard Queue: 처리량 무제한, 최소 한 번 전달(at-least-once delivery), 메시지 순서 보장 안됨. 대부분의 애플리케이션에 적합합니다.
- FIFO (First-In-First-Out) Queue: 메시지 순서가 정확히 보장되며, 정확히 한 번 처리(exactly-once processing)됩니다. 은행 거래나 주문 처리와 같이 순서가 중요한 경우에 사용됩니다.
2. Amazon SNS (Simple Notification Service): Pub/Sub 알림의 중심
AWS SNS는 완전 관리형 푸시 알림 서비스입니다. 하나의 메시지를 여러 구독자(Subscriber)에게 동시에 전송하는 게시/구독(Publish/Subscribe, Pub/Sub) 패턴을 지원합니다. 이벤트 알림, 모니터링 경고, 메시지 브로드캐스팅 등 다양한 용도로 사용됩니다. 구독자는 SQS 큐, AWS Lambda 함수, HTTP/S 엔드포인트, 이메일, SMS 등 다양한 형태로 설정될 수 있습니다.
- 주요 사용 사례: 분산 시스템 이벤트 알림, 마이크로서비스 간 메시지 팬아웃(fan-out), 사용자 알림 (SMS, 이메일).
SQS vs. SNS: 주요 차이점
이 두 서비스는 모두 메시지를 처리하지만, 작동 방식에 큰 차이가 있습니다.
- SQS: Pull 기반 (Pull-based) - 컨슈머가 큐에서 메시지를 '가져갑니다'. 특정 서비스 간의 1:1 또는 1:N 비동기 처리에 적합합니다.
- SNS: Push 기반 (Push-based) - 퍼블리셔가 토픽에 메시지를 '보내면' SNS가 구독자에게 자동으로 메시지를 '푸시'합니다. 1:N 브로드캐스팅, 즉 하나의 이벤트를 여러 독립적인 서비스나 사용자에게 전달하는 데 적합합니다.
3. Amazon EventBridge: 이벤트 기반 아키텍처의 허브
Amazon EventBridge는 서버리스 이벤트 버스 서비스로, 다양한 소스(AWS 서비스, 자체 애플리케이션, SaaS 앱)에서 발생하는 이벤트를 수신하여 필터링하고 원하는 대상으로 라우팅합니다. 이벤트 기반 아키텍처(Event-Driven Architecture)를 구축하는 데 핵심적인 역할을 합니다. 복잡한 이벤트 패턴 매칭과 필터링을 통해 특정 이벤트만 원하는 대상으로 보낼 수 있습니다.
- 주요 사용 사례: AWS 리소스 변경 감지 및 대응, SaaS 애플리케이션 통합, 마이크로서비스 간 이벤트 라우팅.
4. AWS Step Functions: 분산 애플리케이션 오케스트레이션
AWS Step Functions는 분산 애플리케이션 및 마이크로서비스를 시각적 워크플로(Visual Workflow)로 손쉽게 조율할 수 있는 서버리스 서비스입니다. 여러 AWS 서비스(Lambda, EC2, ECS 등)들을 연결하여 복잡하고 장기 실행되는 프로세스를 구축하고 관리할 수 있습니다. 각 단계의 상태를 추적하고, 오류 발생 시 재시도 로직을 내장하여 견고한 워크플로를 만들 수 있습니다.
- 주요 사용 사례: 데이터 처리 파이프라인, 비디오 인코딩 워크플로, 사용자 온보딩 프로세스, 챗봇 백엔드.
5. Amazon MQ: 레거시 애플리케이션을 위한 메시지 브로커
Amazon MQ는 Apache ActiveMQ 및 RabbitMQ와 같은 오픈 소스 메시지 브로커를 AWS에서 완전 관리형으로 제공하는 서비스입니다. 기존에 온프레미스에서 메시지 브로커를 사용하던 애플리케이션을 AWS로 리프트 앤 시프트(Lift-and-Shift)할 때 코드 변경 없이 쉽게 마이그레이션할 수 있도록 설계되었습니다. 클라우드 네이티브 애플리케이션에는 보통 SQS나 SNS가 더 적합하지만, 특정 표준 API가 필요한 경우에 유용합니다.
- 주요 사용 사례: 기존 메시지 브로커 기반 애플리케이션의 클라우드 마이그레이션.
6. Amazon Kinesis: 실시간 스트리밍 데이터 처리
Amazon Kinesis는 대량의 스트리밍 데이터를 실시간으로 수집, 처리 및 분석할 수 있는 서비스 모음입니다. 로그 데이터, 이벤트 스트림, IoT 데이터 등 실시간으로 발생하는 데이터를 처리하는 데 특화되어 있습니다.
- Kinesis Data Streams: 대용량 스트리밍 데이터를 실시간으로 수집하고 여러 컨슈머가 처리할 수 있도록 저장합니다.
- Kinesis Data Firehose: 스트리밍 데이터를 S3, Redshift, Elasticsearch Service 등 다양한 목적지로 쉽게 로드합니다.
- Kinesis Data Analytics: SQL 또는 Apache Flink를 사용하여 스트리밍 데이터를 실시간으로 분석합니다.