How do you get around the IO issue? We've been looking at EC2 for, well, forever, but IO performance has always been a huge issue -- to the point where it'd cost more than hosting it ourselves just to scale IO performance to the point where it'd equal a couple self-hosted servers.
when i last used ec2, it was almost exclusively for async backend processes. in those cases, high throughput is important, but latency is not a factor in the same way. If there's a 300ms delay talking to the system from the outside world, it's no big deal.
that said, netflix seems to have solved the IO issue with ec2. I'd be curious to know more about their findings.