If you have lots and lots of money and a high margin business, do yourself a favor and go with Amazon (much less hassle with contract management and low level challenges).
If you need to scale month to month and are growing 50% per month, go with Amazon.
If you are very small and can live with 10 instances, go with Amazon.
If CAPEX doesn't help you and for whatever reasons you need to spend OPEX, go with Amazon.
If you need many (types of) machines for failover but which otherwise mostly idle, go with Amazon.
Otherwise it's always cheaper to buy or rent hardware. Amazon is very expensive (TCO).
If you base your decision on hype, you're screwed.
* Amazon stands for Cloud Provider, personally I'm choosing Digital Ocean with Mesos/Docker.
* Except S3 which is a no brainer to use.
Then rent more servers.
> If you are very small and can live with 10 instances,
Then rent a few servers.
I maintain that there are extremely few cases for a typical website to use the cloud. To handle peaks, it is both simpler and cheaper to keep enough capacity just idling around than spinning up and down Amazon instances. The cloud is almost always a useless hype. It can be different if you can architect to use the various services Amazon provides.
Also from my experience, with 10 instances the money you save with custom servers is negligible and contract and SLA management, multi datacenter etc. is easier with a cloud provider than renting servers. At least where I've rented
servers in the past.
Sure, the physical hardware takes 1 hour rather than 1 minute to spin up, but the process is otherwise entirely identical.
> To handle peaks, it is both simpler and cheaper to keep enough capacity just idling around than spinning up and down Amazon instances.
At a growing website, you have no idea how much "enough" is. Why try to estimate caps when you don't have to?