EC2 Is Basically One Big Rip-off

| Comments

First of all, let me set this straight: I LOVE Amazon Web Services. I’ve been using EC2 for about 6 years and Defensio has always been entirely running on AWS. The flexibility is unparalleled and the variety of services such as EC2, ELB, EBS, S3 and CloudFront is a joy to use.

However, there’s a problem with EC2. A big one: performance. Bang for your buck. My friend James Golick (@jamesgolick) has often publicly talked about how crappy performance was on EC2, both in terms of CPU and IO. I knew he was right, but didn’t know how right he was really.

I recently found out about Joe’s Data Center, a low-cost dedicated hosting provider so I decided to give them a shot for a pet project I’m working on. They certainly don’t have the infrastructure of Amazon, but that’s a trade-off I can live with given the scope of my project. They have great reviews all over the interwebs so that made me feel at ease.

I leased one of the cheapest machines they are offering: a dual processor AMD Opteron SledgeHammer 2.2Ghz for $55/mo. I went crazy and added 2GB of Ram for an extra $10/mo. Total damage: $65. Roughly the same price as a small instance on EC2 (m1.small). The SledgeHammer is by today’s standards a pretty old and crappy CPU, but I figured it would be plenty for my needs.

I decided to run some benchmarks against an m1.small to see how “bad” the SledgeHammer really was. I stopped paying attention to CPUs the minute I bought my first Mac 6 or 7 years ago. All these fancy CPU names don’t mean much to me anymore.

After some Googling, I settled on UnixBench for my benchmarks. I didn’t need very precise or scientific numbers, just a ballpark to see what I was getting at Joe’s.

I WAS BLOWN AWAY!!! In a nutshell, my dedicated server is 10 times faster than an m1.small instance. TEN TIMES!!! For the same price! IO is also about 5 times faster  than EC2’s local storage. And as a bonus, I get 4GB of Ram instead of just 1.7GB.

After such a surprise, I decided to benchmark more expensive EC2 instance types to see how well my new best friend fares against my olf virtual friends. The results were equally surprising: my dedicated box is faster than a m1.large ($250/mo), faster than a m1.xlarge ($500/mo) and roughly as fast as a High CPU c1.xlarge ($500/mo). More explicitly, the c1.xlarge did ~50% better when running UnixBench with 8 threads, but the Opteron box is 50% faster when single threaded. Also, to get IO roughly equivalent to my dedicated box on EC2, you have to shell out $500/mo for a c1.xlarge. Even the m1.xlarge doesn’t cut it.

EDIT: Since publishing this article, I rented a EX 4S at Hetzner. It is effectively 58 times faster than an m1.small and has 32 GB of Ram. IO throughput is 29 times higher. All this for just $13 more a month.

Here’s a chart of my results (UnixBench index):

  m1.small m1.large m1.xlarge c1.xlarge Joe’s Dedicated Hetzner EX 4S
Monthly Price $65 $250 $500 $500 $65 $78
Architecture (Ubuntu) 32-bit  64-bit  64-bit 64-bit  64-bit  64-bit
CPUs/Cores 1 2 4 8 2 8
RAM (GB) 1.7 7.5 15 7 4 32
Index (1 Thread) 116 357.5 438.1 494.4 777.6 1803.3
Index (2 Threads) 571.5 1210.5
Index (4 Threads) 1070.5
Index (8 Threads) 1746.3 6696.7

The raw numbers (including IO) can be found here:

I’ll let you draw your own conclusions, but to me, it’s clear that Amazon needs to improve its performance. The bang-for-your-buck ratio of EC2 is completely out of whack.

EDIT 1: has an amazing new machine, the EX 4S (Intel Core i7 2600, 32 GB, 3TB RAID 1). It’s just ~$78/month so I decided to benchmark it as well. HOLY FUCKING SHIT. Check this out: Hetzner EX 4S Benchmarks. I added the numbers in the table above for comparison. Looks like we have a winner!

EDIT 2: I just ordered an AMD Athlon 64 6000+ X2 with 6GB of RAM and 2x750GB from Hetzner for 31 Euros/mo. I benchmarked it just for the hell of it. 1 thread: 600.8, 2 threads: 1407.9. Slightly faster than a $500/mo m1.xlarge on EC2.