With Amazon Kinesis Data Analytics, you pay only for what you use. There are no resources to provision or upfront costs associated with Amazon Kinesis Data Analytics.
You are charged an hourly rate based on the average number of Kinesis Processing Units (or KPUs) used to run your stream processing application. A single KPU is a unit of stream processing capacity comprised of 1 vCPU compute and 4 GB memory. Amazon Kinesis Data Analytics automatically scales the number of KPUs required by your stream processing application as the demands of memory and compute vary in response to processing complexity and the throughput of streaming data processed.
For Apache Flink and Apache Beam applications, you are charged a single additional KPU per application for application orchestration. Apache Flink and Apache Beam applications are also charged for running application storage and durable application backups. Running application storage is used for stateful processing capabilities in Amazon Kinesis Data Analytics and is charged per GB-month. Durable application backups are optional, charged per GB-month, and provide a point-in-time recovery point for applications.
General guidance on KPU usage
We recommend that you test your application with production loads to get an accurate estimate of the number of KPUs required for your application. KPUs usage can vary considerably based on your data volume and velocity, code complexity, integrations, and more. This is especially true when using the Apache Flink runtime in Amazon Kinesis Data Analytics. For example, through internal testing we have observed throughput of hundreds of MB per second per KPU for simple applications with no state, and throughput less than 1 MB per second per KPU for complex applications that utilize intensive machine learning algorithms. With these caveats in mind, the general guidance we provide prior to testing your application is 1 MB per second per KPU.
Pricing example 1: Apache Flink application with a simple streaming filter
A customer uses an Apache Flink application in Amazon Kinesis Data Analytics to read streaming data captured by their Apache Kafka topic in their Amazon MSK cluster. The customer is applying a continuous filter to only retain records of interest. A customer creates one durable application backup per day and retains those backups for seven days. The monthly Amazon Kinesis Data Analytics charges will be computed as follows:
The price in US-East is $0.11 per KPU-Hour used for the stream processing application. This simple application uses 1 KPU to process the incoming data stream. Each Apache Flink application is charged an additional KPU per application.
Apache Flink applications use 50GB running application storage per KPU and are charged $0.10 per GB-month in US-East.
Monthly Running Application Storage Charges = 720 Hours/Month * 1 KPU * 50GB/KPU * $0.10/GB-month = $5.00
Apache Flink applications charge $0.023 per GB-month in US-East for durable application backups. Each backup for this application is 1 MB and the customer maintains the 7 most recent backups, creating a new and deleting an old backup every day.
Monthly Durable Application Storage Charges = 7 backups * (1 MB/backup * 1 GB/1000 MB) * $0.023/GB-month = $0.01 (rounded up to the nearest penny)
Total Charges = $158.40 + $5.00 + $0.01 = $163.41
Pricing example 2: SQL application with a sliding window and workload spikes
A customer uses a SQL application in Amazon Kinesis Data Analytics to compute a 1-minute, sliding-window sum of items sold in online shopping transactions captured in their Kinesis stream. This stream normally ingests data at 1,000 records/second, but the data spikes once a day during promotional campaigns to 6,000 records/second inside an hour. The monthly Amazon Kinesis Data Analytics charges will be computed as follows:
The price in US-East is $0.11 per KPU-Hour used for their stream processing application. The incoming Kinesis data stream transmits data at 1,000 records/second. However once a day, inside an hour, the Stream spikes to 6,000 records/second.
For ‘steady state’ which occurs 23 of 24 hours in the day, the sliding-window query uses 1 KPU to process the workload during these hours.
For ‘spiked state’ which occurs for 1 of 24 hours in the day, the sliding-window query uses between 1 and 2 KPUs. The customer will be billed for 2 KPUs for that 1 hour out of the 24 hours in the day.
Total Charges = $75.90 + $6.60 = $82.50
Pricing example 3: Apache Flink application performing streaming ETL with workload changes
A customer uses an Apache Flink application in Amazon Kinesis Data Analytics to continuously transform and deliver log data captured by their Kinesis Data Stream to Amazon S3. The log data is transformed using several operators including applying a schema to the different log events, partitioning data by event type, sorting data by timestamp, and buffering data for one hour prior to delivery. The application has many transformation steps but none are computationally intensive. This stream ingests data at 2,000 records/second for 12 hours per day and increases to 8,000 records/second for 12 hours per day. The customer does not create any durable application backups. The monthly Amazon Kinesis Data Analytics charges will be computed as follows:
The price in US-East is $0.11 per KPU-Hour. Kinesis Data Analytics allocates 50GB of running application storage per KPU and charged $0.10 per GB-month.
Heavy Workload: During the 12 hour heavy workload period, the Kinesis Data Analytics application is processing 8,000 records/second and automatically scales up to 8 KPUs. After the heavy workload period, the Kinesis Data Analytics application scales the application down after 6 hours of lower throughput. The application is scaled up to 8 KPUs for a total of 18 hours per day.
Light Workload: During the light workload period for the remaining 6 hours, the Kinesis Data Analytics application is processing 2,000 records/second and automatically scales down to 2 KPU.
Each Apache Flink application is charged an additional KPU per application.
Monthly Charges = 30 * 24 * 1 KPU * $0.11/Hour = $79.20
Total Charges = $515.20 + $49.60 + $79.20 = $644.00
Note: We reserve the right to charge standard AWS data transfer costs for data transferred in and out of Amazon Kinesis Data Analytics applications.
Get started with Amazon Kinesis Data Analytics
Instantly get access to the AWS Free Tier.
Build your streaming application from the Amazon Kinesis Data Analytics console.