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.
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.
Expectation
Notes
Lab length
Target 15–20 minutes (measured in the evidence pass)
First S3 object
At least DataFreshnessInSeconds after produce (default 300s)