Skip to content

Kinesis S3 Delivery Walkthrough

Stand up an On-Demand stream and an S3 delivery channel, feed it with a cheap always-on producer (optional taxi replay burst), verify objects in S3, then tear it all down.

Before August 2026, landing raw records from Kinesis Data Streams
Amazon Kinesis Data Streams — the source stream that hosts the delivery channel.
into a general purpose S3 bucket meant building a delivery pipeline yourself — chain more serverless services, run a consumer application, or operate something in between. You owned scaling, retries, and the glue.

Managed S3 general purpose delivery removes that middle tier: configure a channel
Delivery channel created with create-channel. The console labels the same resource S3 general purpose delivery.
on an On-Demand stream and Kinesis Data Streams buffers, batches, and writes objects for you. No consumer compute to provision, and delivery does not consume the stream’s read throughput.

Before vs now: self-managed Lambda/KCL glue into S3 versus a managed delivery channel on On-Demand Kinesis Data Streams

BeforeThis lab
Path to S3Stream → consumer or glue → PutObjectStream → channel → S3
Who scales and retriesYouKinesis Data Streams
Stream read impactConsumer uses shard throughput / EFODelivery does not consume read throughput
TransformWhatever you buildSource format only (no transform)

Create the stream and channel

On-Demand Kinesis Data Streams
Amazon Kinesis Data Streams — the source stream that hosts the delivery channel.
plus a channel
Delivery channel created with create-channel. The console labels the same resource S3 general purpose delivery.
that writes to a same-Region S3 bucket.

Produce records

Default: EventBridge → Lambda heartbeat. Optional burst with amazon-kinesis-replay after the channel is ACTIVE.

Verify delivery

Wait out the freshness window
Buffer window before records land in S3. DataFreshnessInSeconds accepts 300–900 seconds (5–15 minutes); default 300.
, list objects, and check DeliveryToS3.* metrics.

Tear down cleanly

Stop the producer, delete the channel first, empty the bucket, then remove the stream and roles.

Lab architecture: EventBridge and Lambda heartbeat plus optional replay into On-Demand Kinesis, delivery channel to S3 with optional DLQ

ExpectationNotes
Lab lengthTarget 15–20 minutes (measured in the evidence pass)
First S3 objectAt least DataFreshnessInSeconds after produce (default 300s)
CostBillable until channel and objects are deleted