Advice on moving to the cloud?
getclicky.com
getclicky.com
Don't do it.
While I agree that in their particular circumstances that it's probably the correct answer, I don't think it's right for everyone. For one thing, their system isn't tolerant enough of downtime. If one of their databases goes offline, they've got some manual fixing to do to get it back up and going. Ugh. (I took this to mean that if you unplug the network cable, they have manual fixing to do. They might have meant power loss... And that's a little more understandable, but still not something you really want in the cloud.)
Further, the biggest thing to keep in mind is that your resources are shared. This is not too big of a deal for some applications, but for a database server, this can spell certain death (I/O doesn't virtualize too well; you can mitigate some of this by deploying a lot of slave machines for your reads.)
I'm a customer of getclickys and in most cases openness like this would be refreshing and it is but there is an element of 'flying by the seat of our pants' that could come across with this post.
The reason we are asking for advice is because we have zero experience running an app in a cloud environment. Well, we did build our own custom CDN using DynDNS and vps.net, but that's just a small part of our service. I'm scared of the cloud for running everything, so just asking for anyone with experience to tell us what they think of the idea.
I'M JUST SO DAMN SICK OF DEALING WITH PHYSICAL SERVERS. :)
Then you'll have less physical servers to deal with :)
Most of our servers are DB anyways. We have 2 load balancers, 6 web servers, and ~40 DB servers.
We run a good sized e-commerce site (Alexa top 1000; barely) and our ratio of DB queries per dynamic page is right around 2.5:1. You might not be able to get your query-per-page ratio into that range, but hundreds is certainly too many, IMO. Even "dozens" would be cause for concern, IMO. Moving your webfarm to a different datacenter than your DB is going to shine a spotlight on that problem, but even without that spotlight, you still have a problem.
PS: Even with pushing that amount of work to the DB, we have almost the inverted ratio of web servers to DB servers as you report.
Before anyone asks "why don't you just use a join?" it's because we have tons of different types of data stored in a couple of summary tables. It's 100x faster to just grab all the IDs and values, and then grab the names one at a time (most of which will always be in memcached) than to do it as a join. Don't believe me? We used to do it that way and the performance sucked.
Wow, that's not what I was expecting.
I have no idea if those 40 DBs are just mirrors sharing the load of some heavy queries or you are sharding the data in some way. If they are all just replicated maybe move most of them up into the cloud where they talk to your web app. But I don't know how much data you have to replicate up into the cloud or how long that would take.
You will still ned to deal with systems and sysadmin tasks - and those can always be contracted out. AWS does NOT save you from that.
Edit: Also your site looks terrible in Opera ... the CSS or JS or something isn't loading which is breaking everything.