A while ago I had a discussion with someone about the future of server infrastructure. Among other things, we were wondering whether companies will continue to run on dedicated servers or if eventually everyone just ends up in a Cloud environment. During the discussion I raised a point that in principle Cloud is a great idea that will keep attracting more and more people, but it is missing one important piece that stops many from using it – a high performance storage. Apparently, this has just changed.
Yesterday I received an e-mail announcing a new EC2 instance type – hi1.4xlarge. It features 16 logical CPUs (35 ECUs), 60GB of RAM, and… two 1TB SSD-based disk volumes! These are great specs that should work for nearly any database. Even assuming someone has a MySQL database larger than 2TB, not all tables will require fast storage, while more disk space can be easily added by attaching regular EBS volumes.
I decided to give this new instance a spin and try to see whether the storage performance is really that good. I ran Sysbench fileio benchmark with 1, 2, 4, 8 and 16 I/O threads and 16KB block size in both random read and random write modes. Here are the results that I got from a RAID0 array created over both available volumes:
That is not bad at all. The improvement over a standard EBS-based array in both throughput and response time is at least by an order of magnitude. This can actually make EC2 usable even for large and busy MySQL databases, which up until now often wasn’t a viable option. The price does not seem that high either especially after I tried building a similar hardware configuration for a dedicated server at one of the popular hosting providers.