Recently I've been looking in to cloud database products. I was kind of hoping that by cloud the vendors meant that the data wasn't fixed to any particular server, so we could get replication across multiple data-centres etc, mostly for increased robustness. Turns out that very few people do it. Amazon will replicate data across data-centres in the same region, but we couldn't replicate between a US and EU based data-centre, for example.
So then it got me to thinking about a project that I'm working on. I was planning on starting it out on one of these VPS or cloud based products where you can increase your allocated resources as necessary. I know there's a practical limit to how far you can scale such things before you need to move horizontally, but I figured I'd have some time on such a product before I needed to look in to additional hosting.
However, the more and more I look at it, the more it appears that most cloud based hosting is simply either a virtualised server instance, or a resource restricted user account whose limits can be adjusted as necessary. If I out-grow the server (which I hope I will as my customer base increases) then I still need to get an additional server, for example. What I'm actually looking for is where I'd be able to keep saying "gimme more CPU resource", or "I want more RAM" and to be able to scale beyond the power of a single server, if that makes sense?
So, if there is actually a distributed hosting package available, where I can seriously out-grow the capacity of a single server, what is the one to look at? I do my development mostly in PHP and MySQL. Are products such as AWS or Google App Engine suitable? What experience do you guys have? Which would you recommend? If they also come with a CDN that's an extra bonus