I am really, really impressed with Amazon EC2/S3/Queue/SimpleDB. There have been a few issues of downtime lately, but basically I've written a web application using Perl/Catalyst/MySQL/Ubuntu (and sometimes Solaris) that needs to sale to 100K hits an hour or so, but will remain idle most of the time. In other words it needs to handle short term slashdottings. So, if I build out the infrastructure myself... I'll end up paying for server I am only going to use for a very small part of the time. On the other hand... EC2 is only $0.10-$0.30 an hour for a server. So at my slowest times, I'm only paying $72-$216 a month for a server... which is pretty trivial for a pay service. There are some other costs associated with data transfer, but for what I'm doing they don't amount to much. Basically, Amazon EC2 lets us: 1) Use SimpleDB so that all new instances can access the model and I don't have to worry about scaling MySQL or another DB. Headache gone. Our app barely hits the DB, but what data is there does need to be shared by all instances. 2) Use Amazon's queue to serve work. Right now I use an InnoDB table as a queue. Amazon's queue will do this for me, across many boxen. Another headache gone. 3) Use S3 to serve media. Why not? Its the same price as EC2 for data xfer, xfer between EC2 and S3 is free, and if you put a cache of work you've done in SimpleDB then all instances can share S3 and not do the same work twice. 4) Run one $0.30 an hour box all the time, and instantiate new boxes as load increases. Add then to round-robin DNS as they come up. This way the architecture is completely horizontal, and it all faces Amazon's cloud. So long as their cloud stays up... the app will scale to hell and back. For minimal cost.