AWS › Amazon Kinesis & Data Streaming

What is the difference between Kinesis Data Streams, Kinesis Data Firehose, and Kinesis Data Analytics?

Beginner

Answer

Kinesis Data Streams is the core service for capturing and storing streaming data that you process using your own custom consumer applications, Kinesis Data Firehose is a fully managed service that automatically loads streaming data into destinations like S3 or Redshift without you managing any consumer code, and Kinesis Data Analytics lets you run SQL or Apache Flink queries directly against streaming data to perform real time analysis and transformations.
aws firehose create-delivery-stream --delivery-stream-name my-firehose --s3-destination-configuration RoleARN=arn:aws:iam::123456789012:role/firehose-role,BucketARN=arn:aws:s3:::my-bucket
Real-world example A company uses Kinesis Data Firehose to automatically load raw clickstream events into S3 for long term storage, while a separate Kinesis Data Analytics application runs SQL queries on the same stream to detect unusual traffic patterns in real time.

Common follow-ups: When would you choose Firehose instead of writing your own Data Streams consumer?;What data destinations does Firehose support besides S3?