This is a purely theoretical question, but what if I had a site that would normally only get a couple thousand hits a day, but for a few days each month that could shoot to several hundred thousand or even several million hits over the period of 1-3 days.
The site would be pretty bare-bones (as in, 2-3 total pages with 1-2 max MySQL queries on each page and some PHP), so bandwidth wouldn't be the issue, but sheer volume taking down the site would be the main concern. Cloud hosting seems like the best way to go, but would something like Amazon EC2, MediaTemple, or something else be the right choice in this case?
This is one time, I'd recommend the "cloud" as they way to host a website, it will save you money because you can use that super powerful instance 3 for days and use a medium powered one the rest of the month. The de facto I've seen is EC2.
Look at putting something like squid or varnish in front of it.
i would highly recommend using a CDN along with a reverse proxy to reduce the load on your server.
For the CDN you should use it to: Host commonly fetched files such as imeges, static html, Javascript. A good choice would be Amazon AWS.
And then use a reverse squid proxy to cache the requests to your server. Only use your server to send back dynamic data. you could possibly load this data through javascript to lighten the load.
Hope that helps, RayQuang
Varnish can handle an amazing amount of hits on 100% static content, so that is an option only if you detect the incoming rush, and switch to all cached content.
EC2 might be your best choice, but Varnish is fun to play around with. :o)