The IndustryArticles on community development, Ruby on Rails, and SEO |
Like many, I’ve been sort of infatuated with Amazon Web Services lately. My new projects almost always use S3 for backend file storage at this point; it’s not just cheaper, it’s also a simple way to segregate static files from your app servers. Overall, S3 works pretty much as advertised.
EC2, however, does not work as advertised, at least from a CPU perspective.
EC2 instances come in small, medium, and large. The cost of running a “small”, or even a “large, production server, full-time, is about comparable to that of running a traditional, entry-level dedicated server. Because it’s priced per-hour, and there are no setup or termination fees, it’s a bargain.
Here’s the catch. Although Amazon advertises the EC2 processor on a small instance as “equivalent” to a “dedicated 1.7GHz Xeon”, that’s really not how it shakes out. For some reason, which I hope more expert sysadmins will eventually determine, processes on an EC2 instance will never perform at that level—that is, it’s impossible to use even 50% of the available CPU time.
It’s a hot topic in the AWS forums:
CPU performance 50% of expected
CPU Utilization below 50%
Unfortunately, discussion of these issues invariably gets bogged down in super-technical discussion of benchmarking and hardware virtualization, so the outrage is a bit slow in building.
Clear is this: if you are running a CPU-intensive application, investigate and test thoroughly before assuming that EC2 is viable for your purposes. Yes, you get loads of RAM, and a complete virtual server, which is kickass… but the CPU may significantly underwhelm you. Check it out.
©2008 designed by kuwayama