AWS에서 제공하는 Kinesis, SQS, SNS는 실시간 데이터 처리와 메시징을 위한 서비스이지만, 각 서비스의 특징과 활용 방식이 다릅니다. 이 글에서는 각 서비스의 차이점과 활용 사례를 다루며, 트럭 GPS 데이터 처리 시나리오를 통해 이해를 돕겠습니다.
다음은 트럭 GPS 데이터를 AWS에서 처리하는 방식에 대한 시나리오입니다.
서비스 | 기본 개념 | 주요 특징 | 장점 | 주요 차이점 |
---|---|---|---|---|
Kinesis | 실시간 데이터 스트리밍 서비스 | - 데이터를 샤드와 파티션키로 분배 - 실시간 데이터 스트리밍, 분석 - 풀 모드(소비자 데이터 가져오기), 팬아웃 모드(동시 데이터 푸시) | - 실시간 분석과 대규모 데이터 처리에 적합 | - 데이터 재생 가능, 샤드 확장성 있음 |
SQS | 메시지 큐 서비스 | - FIFO 큐(순차적 메시지 처리) - 메시지를 대기열에 저장하고, 소비자는 순차적으로 처리 | - 메시지 순서 보장, 독립적 소비자 처리 가능 | - 기본적으로 순서 보장이 안 됨 |
SNS | 푸시 알림 서비스 | - 여러 구독자에게 메시지 푸시 - 메시지 한 번 전송 후 지속되지 않음 | - 다수의 구독자에게 실시간 푸시 | - 메시지가 한 번 전송되면 지속되지 않음 |
트럭 데이터가 각기 다른 샤드에 분배되는 방식입니다. 각 트럭의 ID에 따라 샤드가 분배되고, 여러 소비자가 데이터를 동시에 처리하는 모습입니다.
트럭 1 (ID: 1) -> 파티션 키 1 -> 샤드 1
트럭 2 (ID: 2) -> 파티션 키 2 -> 샤드 2
-------------------------------------
| 샤드 1 | 샤드 2 | 샤드 3 |
-------------------------------------
트럭 1, 트럭 2, 트럭 3의 데이터가 FIFO 대기열을 통해 순차적으로 처리되는 모습을 보여주는 다이어그램입니다.
트럭 1 (ID: 1) -> 그룹 ID 1 -> FIFO 대기열 -> 소비자 1
트럭 2 (ID: 2) -> 그룹 ID 2 -> FIFO 대기열 -> 소비자 2
-----------------------------------------------------
| FIFO 대기열 | 소비자 1 | 소비자 2 |
-----------------------------------------------------
트럭의 위치 정보나 상태 업데이트가 여러 구독자에게 동시에 푸시되는 모습을 보여줍니다.
트럭 1 -> SNS -> 구독자 A, 구독자 B, 구독자 C
트럭 2 -> SNS -> 구독자 A, 구독자 B, 구독자 C
--------------------------------------
| 구독자 A | 구독자 B | 구독자 C |
--------------------------------------
Kinesis, SQS, SNS는 실시간 데이터 처리와 메시징을 위한 강력한 도구들입니다. 각 서비스는 사용 목적과 요구 사항에 맞게 선택할 수 있으며, 트럭 GPS 데이터 처리 시나리오처럼 다양한 분야에서 활용 가능합니다. 이 글에서는 각 서비스의 차이점과 활용 사례를 다루었으며, 시각화를 통해 각 서비스의 흐름을 이해할 수 있도록 돕고자 했습니다.