Time moves fast on the AWS team, and I'm happy to announce that you can now provision up to 2,000 IOPS per EBS volume (double the previous limit of 1000). This is an order of magnitude more IOPS than you can expect from a high-end 15,000 RPM disk drive. If you've been RAIDing multiple volumes together for even higher performance, you may be able to achieve the desired level of performance with far fewer volumes.
To recap, Provisioned IOPS volumes allows you to set the level of throughput that you need. EBS will consistently deliver the desired performance over the lifetime of the volume. For even higher performance, you can stripe multiple Provisioned IOPS volumes together, giving you the ability to deliver thousands of IOPS per logical volume to your EC2-powered application. These volumes deliver consistent performance and are well-suited to database storage, transaction processing, and other heavy random I/O loads. For maximum performance and to fully utilize the IOPS provisioned on an EBS volume, you can request the launch of EBS Optimized EC2 instances. An EBS-Optimized instance is provisioned with dedicated throughput to EBS. The m1.large, m1.xlarge, and m2.4xlarge instance types are currently available as EBS-Optimized instances. m1.large instances can transfer data to and from EBS at a rate of 500 Mbit/second; m1.xlarge and m2.4xlarge instances can transfer data at a rate of 1000 Mbit/second. This is additional throughput, and doesn't affect other general purpose network throughput already available on the instance.
Our friends over at SAP have been using EBS Provisioned IOPS to host SAP HANA (a realtime data platform) on AWS. I was recently chatting with some of our colleagues there and they told me that they have used Provisioned IOPS to achieve over 20,000 IOPS in some of their test scenarios. They also enjoy the predictable performance that comes with the use of Provisioned IOPS.
The team at Parse moved their MongoDB database over to Provisioned IOPS EBS volumes last month. As you can see from their blog post, end-to-end latency was halved and they no longer see periodic latency spikes due to MongoDB write locks. Kevin Lacker, CTO of Parse, told us:
Amazon's Provisioned IOPS helped us improve our MongoDB query speed by over 60% and drastically reduced latency spikes to our clusters. We are thrilled to welcome the new 2000 P-IOPS volumes.
We’ve heard from 10gen, the developer of MongoDB, about their usage of EBS Provisioned IOPS. 10gen has many customers running MongoDB workloads of up to 20,000 IOPS on a single instance. For these workloads, 10gen has told us that the high performance and consistency of EBS Provisioned IOPS are a great fit.
Update: Charity Majors of Parse wrote a really nice post, MongoDB with Amazon’s EBS and Provisioned IOPS. She discusses their move from RAID 10 to a new striped configuration using Provisioned IOPS volumes, which simplified their architecture while also improving performance. The change reduced database latency and greatly improved their cold-start time.
If you are still learning about Provisioned IOPS, be sure to watch this quick (and yet highly informative) video (but replace Arun's "1000" with "2000"):
We also have a recorded webinar that will help you to learn more about running high performance databases on EC2 using EBS:
Finally, be sure to check out our EBS Provisioned IOPS Benchmarking Guide to learn more about the best tools and techniques for measuring and evaluating the performance of your EBS Provisioned IOPS volumes.