Kinesis와 SQS FIFO

은채의 성장통·2025년 2월 19일
0

AWS

목록 보기
67/79

Kinesis, SQS, SNS: 실시간 데이터 처리 아키텍처 비교

AWS에서 제공하는 Kinesis, SQS, SNS는 실시간 데이터 처리와 메시징을 위한 서비스이지만, 각 서비스의 특징과 활용 방식이 다릅니다. 이 글에서는 각 서비스의 차이점과 활용 사례를 다루며, 트럭 GPS 데이터 처리 시나리오를 통해 이해를 돕겠습니다.


1. Kinesis, SQS, SNS: 기본 개념과 특징

  • Kinesis
    • 실시간 데이터 스트리밍 서비스로, 데이터를 샤드파티션 키를 기준으로 분배합니다. 데이터를 지속적으로 스트리밍하며 풀 모드팬아웃 모드를 지원합니다.
    • 장점: 대규모 데이터 처리와 분석에 적합하며, 데이터 재생이 가능합니다.
  • SQS (Simple Queue Service)
    • 메시지 큐 서비스로, 메시지를 대기열에 저장하고, 소비자가 순차적으로 데이터를 처리합니다. FIFO(First In, First Out) 큐를 사용하여 순서를 보장할 수 있습니다.
    • 장점: 메시지를 순차적으로 처리하며, 그룹 ID를 사용해 독립적인 소비자 처리가 가능합니다.
  • SNS (Simple Notification Service)
    • 다수의 구독자에게 데이터를 푸시하는 서비스입니다. SNS는 메시지가 한 번만 전송되고 지속되지 않으며 구독자에게 즉시 전달됩니다.
    • 장점: 여러 구독자에게 실시간으로 메시지를 전달할 수 있습니다.

2. 트럭 GPS 데이터 처리 시나리오

다음은 트럭 GPS 데이터를 AWS에서 처리하는 방식에 대한 시나리오입니다.

Kinesis 사용 예시

  • 각 트럭은 ID가 있으며, GPS 데이터를 실시간으로 AWS로 전송합니다.
  • Kinesis는 각 트럭의 ID파티션 키로 사용하여 데이터를 특정 샤드에 전송합니다. 예를 들어, 트럭 1의 데이터는 항상 샤드 1에, 트럭 2의 데이터는 샤드 2에 저장됩니다.
  • 이 데이터를 실시간 스트리밍하여 이동 경로를 추적하고 분석할 수 있습니다.

SQS 사용 예시

  • 트럭 데이터는 FIFO 대기열을 사용하여 순차적으로 처리됩니다.
  • 각 트럭의 ID그룹 ID로 사용하면, 각 트럭은 독립적으로 선입선출 방식으로 데이터를 소비합니다.

SNS 사용 예시

  • 트럭의 위치 정보상태 업데이트를 여러 구독자에게 푸시하는 방식입니다.
  • SNS를 사용하면 각 시스템이나 팀이 트럭의 실시간 상태를 받아볼 수 있습니다.

3. Kinesis, SQS, SNS의 차이점

서비스기본 개념주요 특징장점주요 차이점
Kinesis실시간 데이터 스트리밍 서비스- 데이터를 샤드파티션키로 분배 - 실시간 데이터 스트리밍, 분석 - 풀 모드(소비자 데이터 가져오기), 팬아웃 모드(동시 데이터 푸시)- 실시간 분석과 대규모 데이터 처리에 적합- 데이터 재생 가능, 샤드 확장성 있음
SQS메시지 큐 서비스- FIFO 큐(순차적 메시지 처리) - 메시지를 대기열에 저장하고, 소비자는 순차적으로 처리- 메시지 순서 보장, 독립적 소비자 처리 가능- 기본적으로 순서 보장이 안 됨
SNS푸시 알림 서비스- 여러 구독자에게 메시지 푸시 - 메시지 한 번 전송 후 지속되지 않음- 다수의 구독자에게 실시간 푸시- 메시지가 한 번 전송되면 지속되지 않음

4. 시각화 예시

1) Kinesis 데이터 흐름

트럭 데이터가 각기 다른 샤드에 분배되는 방식입니다. 각 트럭의 ID에 따라 샤드가 분배되고, 여러 소비자가 데이터를 동시에 처리하는 모습입니다.

트럭 1 (ID: 1) -> 파티션 키 1 -> 샤드 1
트럭 2 (ID: 2) -> 파티션 키 2 -> 샤드 2
-------------------------------------
| 샤드 1       | 샤드 2       | 샤드 3       |
-------------------------------------

2) SQS FIFO 대기열

트럭 1, 트럭 2, 트럭 3의 데이터가 FIFO 대기열을 통해 순차적으로 처리되는 모습을 보여주는 다이어그램입니다.

트럭 1 (ID: 1) -> 그룹 ID 1 -> FIFO 대기열 -> 소비자 1
트럭 2 (ID: 2) -> 그룹 ID 2 -> FIFO 대기열 -> 소비자 2
-----------------------------------------------------
| FIFO 대기열      |  소비자 1        | 소비자 2        |
-----------------------------------------------------

3) SNS 푸시 알림

트럭의 위치 정보상태 업데이트여러 구독자에게 동시에 푸시되는 모습을 보여줍니다.

트럭 1 -> SNS -> 구독자 A, 구독자 B, 구독자 C
트럭 2 -> SNS -> 구독자 A, 구독자 B, 구독자 C
--------------------------------------
| 구독자 A   | 구독자 B  | 구독자 C  |
--------------------------------------

5. 결론

Kinesis, SQS, SNS는 실시간 데이터 처리와 메시징을 위한 강력한 도구들입니다. 각 서비스는 사용 목적과 요구 사항에 맞게 선택할 수 있으며, 트럭 GPS 데이터 처리 시나리오처럼 다양한 분야에서 활용 가능합니다. 이 글에서는 각 서비스의 차이점활용 사례를 다루었으며, 시각화를 통해 각 서비스의 흐름을 이해할 수 있도록 돕고자 했습니다.

profile
인생 별거 없어

0개의 댓글