Amazon EC2 High I/O Instances
Amazon recently announced High I/O instances on EC2. This got some attention but not as much as deserved in my opinion.
I/O is a big problem with the cloud and was my main reason for not using it for anything of nontrivial volume. If you had a problem that was CPU and/or RAM bound then great but if you needed to run a real database you either had to keep everything in RAM (with a measly 68GB being the absolute top end per box) or spin up physical machines with other providers. The latter isn’t a real option either because the latency will wreck you if any kind of request volume is needed. In my previous benchmarking of RDS and self-installed MySQL on the largest EC2 instance types compared to metal I could spin up at Softlayer I would have needed *dozens* of EC2 instances and many multiples of overall cost per physical server to match transaction throughput.
These new SSD-based High I/O instances are the most interesting announcement I have seen from EC2, period. It fundamentally changes the way I think about EC2. I’ve done some benchmarking with bonnie++ as I typically do for all new machines and the results are encouraging. While the speed doesn’t touch what you can achieve with an array of SSDs or a PCIe flash card in a physical server, it does match and even beat what you could get out of a high end raid 10 of 15k SAS drives. That means you could run real databases and have real IO inside your EC2 environment with low latency. The pricing is entirely reasonable as well, especially for reserved instances.
The two things that would be nice to see at this point are:
- More RAM in an instance. 60GB of RAM on a machine with 2TB of fast storage is fairly silly. 60GB just is not very much memory nowadays. You can put up to 384GB in a 1U box before the cost curve starts to accelerate unreasonably when buying physical servers (basically, 32GB DIMMs are crazy expensive).
- A couple more instance options would be nice. Perhaps one smaller and then one with more RAM like mentioned above.
Overall I think this changes what sorts of projects make sense on EC2. The provisioning and auto-scaling benefits are obvious and being able to bring in real I/O as needed changes the landscape entirely.
Now if they can just work on their uptime. Barring that, just being honest about uptime would be a good next step.