I want to use it for hosting large system which will contain x-large database.


Using it for a dev project right now. It works really well, although I wouldn't want to use it as a generic hosting environment. Shutting down any instance destroys it, so you probably want to make sure your data's safely elsewhere as well (You can put it on permanent S3 drives)

Best use for EC2 is, for my money, proper cloud-based computing systems, launch a "my webserver" image and it springs to life as a webserver to compliment the others you've got, rather than normal sysadmined boxes where you set up a machine for this purpose and shut it down never.

(I'll add to this that since I wrote it, I've found out about Amazon's Elastic Block Storage, which allows you have persistent drives)


The main advantage of EC2 is scalability and adapting to variable demand. For those with regular traffic, big or small, it is cheaper and you have more risk control if you go with your own managed or colocated servers. It is most sensible to use EC2 to support your main site than to use it as your sole host.


I've got a review on my blog here. I love EC2 but it has some challenges, especially for Windows developers. I use it to host an open source Microsoft web framework project site called Clockwork Web Framework. You can see the site at clockworkwf.com and the blog review is at http://planetmoss.blogspot.com/2009/11/hosting-clockwork-web-framework-with.html


Amazon offers shared storage (EBS), that means that IO performance may be unstable and it may be insufficient for a heavy loaded database even on the largest instances.

We got into the situation when x-large server was suffering from slow IO operations and the complete system got extremely slow. Splitting data by different EBS volumes or joining EBS volumes into a RAID cluster can help to improve IO performance.

Before moving the system completely, i'd recommend you to run benchmarks on real data and try to similate real loads.

Not the answer you're looking for? Browse other questions tagged or ask your own question.