Amazon Kinesis has simple pay as you go pricing, which is easy to estimate. There are no up-front costs, no minimum fees and you’ll only pay for the resources you consume.
Amazon Kinesis lets you specify the throughput requirements of your data stream using shards of throughput capacity. Behind the scenes, the service handles the provisioning of storage resources to achieve the requested throughput rate.
A single shard of throughput will allow you to capture 1MB per second of data, at up to 1,000 PUT transactions per second (the ingest rate) at up to 50k per PUT, and enable your processing applications to read data at up to 2 MB per second (the egress rate).
|Hourly Shard Rate
||(1MB/second ingest rate, 2MB/second egress rate):||$0.015|
|Per 1,000,000 PUT transactions:||$0.028|
|Amazon Kinesis is available in the US East (Northern Virginia) region.|
Inbound data transfer is free, and you don’t pay for transfer from the Amazon Kinesis Stream to your Amazon EC2-based Kinesis applications. EC2 instance charges for your Amazon Kinesis processing applications apply.
Let’s assume that the front end servers - i.e. the data producers - perform 1,000 PUTs per second in aggregate, each of 5KB size. For simplicity, we assume that the workload is relatively constant throughout the day and that data records are more or less uniform in size (i.e. 5 KB). Please note that customers can easily scale up, and down to manage variable workloads and adjust for larger items, at any time. In this example, the processing applications run in the same region, i.e. US East.
First, we calculate the number of shards needed in the stream to ingest all of the incoming data. The Amazon Kinesis console helps customers estimate with the help of the stream creation wizard. The calculation proceeds as follows: 1,000 (PUTs per second) * 5 KB (per PUT) = 4.9 megabytes per second (MB/sec). Each shard in Amazon Kinesis can capture up to 1 MB/sec of data at up to 1000 PUTs/sec in terms of ingest, and can support 2 MB/sec for egress to drive applications. Also, every shard in the stream is stored durably for a maximum of 24 hours. In order to accommodate the workload described, you need 5 shards for a total stream ingress capacity of 5 MB/sec that supports up to 5,000 PUTs/sec in aggregate.
Using Kinesis pricing in the US-East Region,
- Price for shards: A shard costs $0.015 per hour. On a daily basis a single shard costs $ 0.36. So the total cost of provisioning 5 shards in your stream for an entire day is = $1.80. For the month of October with 31 days, the total cost incurred for shards is US $55.80. Please note that this includes the storage cost associated with the 24 hour retention period for each shard.
- Price for Requests: The cost for 1 million PUT operations is $0.028. In the example, the infrastructure servers PUT data at the rate of 1,000 puts per second in aggregate into the Amazon Kinesis stream. On a daily basis that is 86,400,000 PUTs, and on a monthly basis that amounts to 2,678,400,000 PUTs. The total cost for PUTs for the entire month of October is therefore $74.99.
- Network Data Transfer
Network Data Transfer In: Data Transfer is $0.00 per GB for streams in the US Standard regions.
Network Data Transfer Out: In this example data is processed by EC2 instances running within the same region as the Amazon Kinesis stream.
Adding the two pricing dimensions above; for $4.22 per day ($130.80 per month), customers have a managed, real-time infrastructure with an ingest throughput of 10MB/sec, continuously ingesting over 400 gigabytes of data per day, in a durable, elastic manner while simultaneously feeding 2 real-time streaming data processing applications.
* Amazon Kinesis applications run on your own EC2 instances and are billed as part of your EC2 charges