Amazon Kinesis (Data Streams & Firehose)
Amazon Kinesis là dịch vụ Real-time Data Streaming trên AWS, cho phép thu thập, xử lý, và phân tích dữ liệu được tạo ra liên tục từ nhiều nguồn khác nhau như Website Clickstream, IoT sensors, ứng dụng mobile, hoặc hệ thống log.
Trong kiến trúc Decoupling Application, Kinesis giúp các ứng dụng xử lý Data Streams theo thời gian thực mà không cần lo lắng về hạ tầng backend.
Thành phần chính của Kinesis
Amazon Kinesis gồm nhiều dịch vụ, trong đó quan trọng nhất là:
1. Kinesis Data Streams (KDS) là gì
- Là dịch vụ cốt lõi để thu thập và xử lý dữ liệu streaming.
- Cấu trúc:
- Dữ liệu được ghi vào Shards. mỗi shard có throughput nhất định (ví dụ: 1 MB/s hoặc 1000 record/s).
- Mỗi bản ghi (record) gồm:
partition key,sequence number, vàdata blob.
- Producer ghi dữ liệu vào stream → Consumer đọc và xử lý dữ liệu.
- Producer có thể ghi dữ liệu bằng: AWS SDK, Kinesis Producer Library (KPL), Kinesis Agent
- Consumer có thể là EC2, Lambda, Kinesis Data Firehose, Kinesis Data Analytics.
2. Kinesis Data Firehose là gì
- Dịch vụ fully managed để tự động load dữ liệu streaming đến các dịch vụ AWS khác như:
- Amazon S3 (data lake).
- Amazon Redshift (data warehouse).
- Amazon OpenSearch (search & analytics).
- Dịch vụ bên thứ ba (Splunk, Datadog).
- Không cần quản lý shard hoặc consumer.
- Hỗ trợ data transformation (Lambda) và data compression/encryption trước khi lưu.
So sánh Kinesis Data Streams vs Firehose
| Đặc điểm | Kinesis Data Streams (KDS) | Kinesis Data Firehose |
|---|---|---|
| Quản lý hạ tầng | Cần quản lý shard và consumer | Fully managed, không cần quản lý shard |
| Xử lý dữ liệu | Cho phép custom processing | Chủ yếu để load dữ liệu đến storage/analytics |
| Độ trễ | Sub-second | 1 phút đến vài phút |
| Retention | 24h (tối đa 365 ngày) | Không lưu trữ, chỉ vận chuyển (delivery) |
| Use case | Real-time analytics, anomaly detection | Data lake ingestion, log/metric streaming |
Use Cases phổ biến
-
Kinesis Data Streams
- Real-time clickstream analytics (website, mobile app).
- Fraud detection trong hệ thống tài chính.
- IoT sensor data processing.
- Monitoring log & metric streaming.
-
Kinesis Data Firehose
- Thu thập log từ ứng dụng, hệ điều hành, network device.
- Ghi dữ liệu streaming vào S3 để làm data lake.
- Kết hợp với Redshift để phân tích BI.
- Gửi dữ liệu metrics đến OpenSearch để visualize bằng Kibana.
Pricing (tổng quan)
-
Kinesis Data Streams:
- Tính phí theo số lượng shard, lưu trữ, và số lượng API calls.
- Cần thiết kế shard hợp lý để tối ưu chi phí.
-
Kinesis Data Firehose:
- Trả phí theo dung lượng dữ liệu gửi qua (per GB).
- Có thể phát sinh thêm chi phí khi transform dữ liệu bằng Lambda hoặc lưu trữ ở dịch vụ đích (S3, Redshift, OpenSearch).