Service comparisons / Kinesis Data Streams vs Amazon Data Firehose

Kinesis Data Streams vs Amazon Data Firehose

Kinesis Data Streams stores ordered records for your own real-time consumers to replay; Amazon Data Firehose loads streaming data into S3, Redshift and other destinations with no code. How to choose, and the exam traps.

Last checked against AWS documentation · How we write our content

QuestionKinesis Data StreamsAmazon Data Firehose
Use it whenYour own applications must process records in real time, often several consumers at onceYou just need streaming data delivered into a store, with little or no code
ConsumersYou build them (Lambda, the KCL, Managed Service for Apache Flink)None to build; it delivers to S3, Redshift, OpenSearch, Splunk, Iceberg tables and HTTP endpoints
SpeedReal time, typically well under a secondNear real time; buffers by size or time before delivering
Keeps data24 hours by default, up to 365 days, and consumers can replay itNo retention or replay; failed deliveries go to an S3 backup
OrderingOrdered within a shard, by partition keyNot something you control
Capacity and costOn-demand mode, or provisioned shards you size; pay per shard-hour or for throughputFully managed scaling; pay per GB ingested plus any format conversion

Both ingest streaming data such as clickstreams, logs and IoT readings. The question is whether you need to process the stream yourself or just land it somewhere.

How to choose

Exam traps