Skip to content

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.
Kinesis Data Streams là gì

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.
Kinesis Data Firehose là gì

So sánh Kinesis Data Streams vs Firehose

Đặc điểmKinesis Data Streams (KDS)Kinesis Data Firehose
Quản lý hạ tầngCần quản lý shard và consumerFully managed, không cần quản lý shard
Xử lý dữ liệuCho phép custom processingChủ yếu để load dữ liệu đến storage/analytics
Độ trễSub-second1 phút đến vài phút
Retention24h (tối đa 365 ngày)Không lưu trữ, chỉ vận chuyển (delivery)
Use caseReal-time analytics, anomaly detectionData 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).