EC2: Really Pay-Per-Use?
It’s been literally hours and I haven’t received that Amazon Elastic Compute Cloud beta invite. In that time the idea has been marinating, and I’m left with a bit of a bad taste in my mouth.
Some folks talking about EC2 seem to think that you pay per CPU time. They probably think that because it makes sense. Unfortunately, the reality of EC2 that you pay per hour of uptime. That makes some scenarios impractical.
Example: say you just want to host your blog on Amazon’s cloud. You load up a VM with MySQL, Rails, maybe a couple Mongrels running behind Apache. You can now push serious bandwidth at an affordable price thanks to the S3 storage backend. But what about that couple of hours per day when your site just doesn’t get any hits? Why are you paying the same for those hours as the hours when you do several thousand visitors? Are idling web and database servers really that taxing?
The answer, I think, is that Amazon is purposefully trying to avoid the small-time hosting/reseller market by charging for uptime and not CPU time. If small users actually paid for what they use on EC2 it’d cost next to nothing, even in aggregate. On the other hand, if a big web application uses EC2 to fire up a bunch of VMs on demand to cope with increased traffic, Amazon makes good money even if those VMs are only up for eight hours a day.
I don’t really blame Amazon for setting up EC2 this way, but it’s kind of a bummer. The idea of a truly pay-per-use VM off in a cloud somewhere is really appealing for personal projects. I’ve seen inexpensive (around USD$20/month) VPS hosting plans, but none that are downright cheap, and certainly none as flexible as EC2.