Amazon Kinesis Data Streams uses simple pay as you go pricing. There is neither upfront cost nor minimum fees, and you only pay for the resources you use. Pricing is based on two core dimensions - Shard Hour and PUT Payload Unit, and optional dimensions for enhanced fan-out, extended data retention, and long-term data retention.
Estimate your monthly bill using the AWS Pricing Calculator.
Shard is the base throughput unit of an Amazon Kinesis data stream. You specify the number of shards needed within your stream based on your throughput requirements. You are charged for each shard at an hourly rate.
- One shard provides ingest capacity of 1MB/sec or 1000 records/sec.
- When data consumers opt-in to use enhanced fan-out, each shard provides up to 2MB/sec of data output for each consumer using enhanced fan-out.
- When data consumers do not use enhanced fan-out, each shard provides up to 2MB/sec of data output, regardless of the number of consumers processing data in parallel from a shard.
PUT Payload Unit (25KB)
A record is the data that your data producer adds to your Amazon Kinesis data stream. A PUT Payload Unit is counted in 25KB payload “chunks” that comprise a record. For example, a 5KB record contains one PUT Payload Unit, a 45KB record contains two PUT Payload Units, and a 1MB record contains 40 PUT Payload Units. PUT Payload Unit is charged with a per million PUT Payload Units rate.
Enhanced fan-out improves read parallelism by providing each data consumer their own read throughput per shard, up to 2 MB/sec. When consumers use enhanced fan-out, they incur hourly charges per consumer-shard hour and per GB of data retrieved.
Extended data retention
Amazon Kinesis Data Streams stores your data for 24 hours by default. Extended data retention gives you the option to extend the storage of your data stream beyond 24 hours up to 7 days. You are charged for an additional rate on each shard hour incurred by your data stream once you enable extended data retention.
Long-term data retention
Long-term data retention gives you the option to store your data stream up to 365 days. You are charged extended data retention rates for first 7-days and then charged a GB-month rate of data stored beyond 7 days up to your specified retention period.
Retrieval of long-term retention data
You are charged a per-GB rate for retrieval of data stored beyond 7 days if you are retrieving data using GetRecords API. You are not charged for retrieval of data stored for the 24-hour default or for extended data retention up to 7 days. You are not charged for long-term data retrieval if enhanced fanout consumer (SubscribeToShard API) is used.
Manage your AWS resources
* Getting records from an Amazon Kinesis data stream is free when the data is stored for the 24-hour default or up to 7 days for extended data retention. You are charged a per-GB rate for retrieval of data stored for long-term retention beyond 7 days up to the limit of 365 days.
* If you choose to use enhanced fan-out, you incur hourly charges per consumer-shard hour and per GB of data retrieved.
* AWS does not charge for data transfer from your data producers to Amazon Kinesis Data Streams, or from Amazon Kinesis Data Streams to your Amazon Kinesis applications.
* Please note that Amazon Kinesis Data Streams is NOT currently available in AWS Free Tier. AWS Free Tier is a program that offers a free trial for a group of AWS services. For more details about AWS Free Tier, see AWS Free Tier.
* Getting records from Amazon Kinesis data stream is free.
* Data transfer is free. AWS does not charge for data transfer from your data producers to Amazon Kinesis Data Streams, or from Amazon Kinesis Data Streams to your Amazon Kinesis Applications.
* Please note that Amazon Kinesis Data Streams is NOT currently available in AWS Free Tier. AWS Free Tier is a program that offers free trial for a group of AWS services. For more details about AWS Free Tier, see AWS Free Tier.
Pricing by Region
Let’s assume that your data producers put 100 records per second in aggregate, and each record is 35KB. In this case, the total data input rate is 3.4MB/sec (100 records/sec*35KB/record divided by 1024 = 3.4 MB/sec). For simplicity, we assume that the throughput and data size of each record are stable and constant throughout the day. Please note that we can dynamically adjust the throughput of our Amazon Kinesis stream at any time.
We first calculate the number of shards needed for your stream to achieve the required throughput. As one shard provides a capacity of 1MB/sec data input and supports 1000 records/sec, four shards provide a capacity of 4MB/sec data input and support 4000 records/sec. So a stream with four shards satisfies our required throughput of 3.4MB/sec at 100 records/sec.
We then calculate our monthly Kinesis Data Streams costs using Kinesis Data Streams pricing in the US-East Region:
- Shard Hour: One shard costs $0.015 per hour, or $0.36 per day ($0.015*24). Our stream has four shards so that it costs $1.44 per day ($0.36*4). For a month with 31 days, our monthly Shard Hour cost is $44.64 ($1.44*31).
- PUT Payload Unit (25KB): As our record is 35KB, each record contains two PUT Payload Units. Our data producers put 100 records or 200 PUT Payload Units per second in aggregate. That is 267,840,000 records or 535,680,000 PUT Payload Units per month. As one million PUT Payload Units cost $0.014, our monthly PUT Payload Units cost is $7.499 ($0.014*535.68).
Optionally, we can choose to increase the data retention period of our stream from 24 hours to up to 7 days. In this example, we assume that our data stream has extended data retention enabled throughout the whole month. Alternatively, we can choose to enable extended data retention only during occasions when extended data retention is critical for preventing data loss, which saves our cost on extended data retention.
- Extended Data Retention (up to 7 days): Extended data retention costs an extra $0.020 per shard hour. As our stream incurs 2,976 shard hours per month (4 shards*24 hours/day*31 days/month), our monthly Extended Data Retention cost is $59.52 ($0.020*2,976)
Adding the Shard Hour and PUT Payload Unit costs together, our total Amazon Kinesis Data Streams costs are $1.68 per day, or $52.14 per month. For $1.68 per day, we have a fully-managed streaming data infrastructure that enables us to continuously ingest 4MB of data per second, or 337GB of data per day in a reliable and elastic manner. Additionally, we can increase our Amazon Kinesis data stream retention period from 24 hours to up to 7 days for an extra $59.52 per month.
You can also optional retain data longer than 7 days and use Enhanced-Fan-Out consumers.
- Long-term data retention (data older than 7 days): Let’s assume that you want to retain your data stream for 30 days. You will incur extended data retention shard-hour pricing from 24 hours up to 7 days (see above for calculations) and long-term data retention pricing beyond 7 days to 30 days (a 23 day period). For long-term retention pricing of 23 days, it costs an additional $0.023/GB-Month for storage and $0.021 per GB for data retrievals if you are using the default consumer (GetRecords API). Based on data input rate of 3.4MB/s you will accumulate 3.4 (input rate)*1024 *1024*3600 = 12,902,400,000 bytes in an hour. At the end of month, you will have the following usage in Byte-Hours: Total Byte-Hour usage= 3,565,158*23 days * 24 hours/day = 7,122,124,800,000 Byte-Hours. Let us convert this to GB-Month: 1,967,967,436.80 Byte-Hours/1,073,741,824 bytes per GB = 6633 GB per month. So the total storage costs for 23 day retention is = 6633*$0.023 = $152.56 per month.
- Long-term data retrieval (data older than 7 days): If you retrieve all long-term data using a single consumer that uses GetRecords API to fetch records, you will incur retrieval charges only for the data stored beyond the first 7 days. Since you are retrieving 6623GBs of data, you will be charged 6623*0.021= $139.08 at the end of the month. Long-term data retrieved using enhanced fan-out consumers incur enhanced fan-out data retrieval rate as described below.
- Enhanced fan-out consumer-shard hours: Enhanced fan-out costs an extra $0.015 per shard, and this cost is additive per data consumer. As our stream incurs 2,976 shard hours per month (4 shards*24 hours/day*31 days/month), each consumer using enhanced fan-out throughout this period will incur a cost of $44.64 (2,976 x $0.015). Two consumers over the same period would incur a cost of $89.28.
- Enhanced fan-out data retrievals: Data retrieved from a stream by a consumer using enhanced fan-out incurs a charge of $0.013 per GB. If over a month, a two shard stream ingested 50,000 MB of data and 2 data consumers used enhanced fan-out and retrieved all of this data during the month, 100,000 MB (50,000 MB x 2 data
Service Level Agreement
Learn about the Amazon Kinesis Data Streams Service Level Agreement by visiting our FAQs.