We have very bursty traffic and run our baseload of ~ 30 severs (mostly m4.larges, with a few smaller utility servers as well as larger servers for back end services) most of the time, but when we need to scale, we ramp up to about 2 - 4 times that, but usually only for a few hours at a time. We also do some batch processing that takes a few high-memory servers for about a day each week.
We monitor costs pretty closely and our monthly AWS spend is still less than the coloc fees, and we are much more scalable now and have multi-datacenter (AZ) redundancy, and by the end of the year, we will have a cold spare in a second region (which will cost us very little since it will be mostly powered off)
We no longer need to vastly over-provision servers to handle our peak load and batch processing needs.