If you have built a killer application on Amazon Web Services, you may reach a point where you don’t want to continue to use them. I can think of any number of reasons you may want to migrate your servers.
It may be because you’ve reached the 20 server instance, or because you want more control, or because you want to buy your own machines and spend money on a system administrator instead of paying Amazon, or because there’s something that you need customized that’s ‘behind the curtain’ of AWS.
For whatever reason, if you decide to move off Amazon’s elastic compute cloud, you probably should take a look at Eucalyptus (thanks to George Fairbanks for pointing this out to me!). From the overview, this is a AWS compatible environment, so you can continue to use the same tools (capistrano!) to manage your instances. You also gain the same abilities to spin up or spin down servers easily.
What you don’t get is AMI compatibility. That is, you can’t transfer your AMI to a eucalyptus server farm and expect it to run. They have a FAQ about AMIs (for 1.5, which is an older version of the software) that points to some forum posts about turning an AMI into an EMI (Eucalyptus Machine Image), but it doesn’t look like a trivial or easy operation. It does seem possible, though.
However, it’s good to know that it is possible, and that a company can have a migration path off AWS if need be.