AWS Kinesis
이 문서에서는 AWS Solutions Architect Associate 시험에서 자주 등장하는 Kinesis 서비스군을 정리합니다. 다음 용어와 개념들에 대해 간략히 알아보겠습니다.
- Kinesis Data Streams (KDS)
- Kinesis Data Firehose (KDF)
- Kinesis Data Analytics (KDA)
- Kinesis Video Streams (KVS)
Kinesis Data Streams (KDS)
대규모 데이터 스트림(로그, IoT 텔레메트리, 웹 클릭스트림 등)을 실시간으로 수집하고 처리하기 위한 서비스
- 구조: 샤드(Shard) 단위로 구성되며, 샤드 수에 따라 처리량이 결정됨(수동 확장/축소).
- 데이터 보존: 기본 24시간 ~ 최대 365일까지 저장 가능.
- 특징: 데이터를 즉시 처리하거나(실시간), 저장했다가 나중에 처리할 수 있음(Replay).
- 소비자(Consumer): Lambda, EC2, Kinesis Data Firehose, Kinesis Data Analytics 등.
- 모드:
- Provisioned: 샤드 수를 미리 지정. 예측 가능한 트래픽에 적합.
- On-demand: 트래픽에 맞춰 자동으로 샤드 수를 조정. 예측 불가능한 워크로드에 적합.
Kinesis Data Firehose (KDF)
실시간 스트리밍 데이터를 다른 AWS 저장소(Destination)로 로드(Load)/전송하는 서비스
- 주요 기능: 데이터 변환(Lambda 이용), 압축, 포맷 변경(JSON -> Parquet/ORC) 등을 수행하여 저장소로 전송.
- 대상(Destination):
- S3
- Redshift
- OpenSearch (Elasticsearch)
- Splunk
- HTTP Endpoint (Datadog, New Relic 등)
- 특징: 완전 관리형(Serverless) 서비스로 샤드 관리가 필요 없음. "실시간에 가까운(Near Real-time)" 전송(최소 60초 또는 1MB 버퍼링).
Kinesis Data Analytics (KDA)
스트리밍 데이터에 SQL 쿼리나 Apache Flink 앱을 실행하여 실시간으로 분석하는 서비스
- 기능: KDS나 KDF에서 데이터를 받아 실시간으로 필터링, 집계, 변환 등을 수행.
- 사용 사례: 실시간 이상 탐지, 실시간 리더보드, 시계열 분석.
Kinesis Video Streams (KVS)
커넥티드 디바이스에서 비디오 스트림을 안전하게 스트리밍하고, 머신러닝 분석 등을 위해 저장/처리하는 서비스
- 사용 사례: CCTV 영상 저장, 실시간 영상 분석(Rekognition 연동).
Kinesis 서비스 비교 및 선택 가이드
시험에서는 각 서비스의 역할과 차이점을 묻는 시나리오 문제가 자주 출제됩니다.
| 비교 항목 | Kinesis Data Streams (KDS) | Kinesis Data Firehose (KDF) | Kinesis Data Analytics (KDA) |
|---|---|---|---|
| 핵심 역할 | 수집 및 저장 (Ingest & Store) | 전송 및 적재 (Load & Deliver) | 분석 및 처리 (Analyze) |
| 데이터 처리 | 사용자 지정 코드(Custom App) 필요 | 자동 변환(포맷, 압축 등) 및 전송 | SQL 또는 Flink로 실시간 분석 |
| 실시간성 | Real-time (~200ms) | Near Real-time (60초/1MB 버퍼) | Real-time |
| 관리 편의성 | 샤드(Shard) 관리 필요 (수동/자동) | 완전 관리형 (Serverless) | 완전 관리형 (Serverless) |
| 데이터 저장 | 스트림 내 저장 가능 (1일~1년) | 저장 기능 없음 (대상으로 전송만 함) | 저장 기능 없음 (결과를 출력) |
| 주요 대상 | Lambda, EC2, Spark, KDA, KDF | S3, Redshift, OpenSearch, Splunk | KDF, KDS, Lambda |
시나리오별 정답 키워드
| 시나리오 | 정답 서비스 |
|---|---|
| "실시간 데이터 수집", "사용자 지정 처리 앱", "데이터 순서 보장", "샤드 관리" | Kinesis Data Streams |
| "S3/Redshift/OpenSearch로 데이터 로드", "데이터 포맷 변환(JSON->Parquet)", "관리 오버헤드 최소화" | Kinesis Data Firehose |
| "실시간 SQL 쿼리", "이동 평균 계산", "실시간 이상 탐지", "Flink 사용" | Kinesis Data Analytics |