I run a Rails web app that generally has moderate traffic (100 requests/hour at most). However, I get a relatively high burst of traffic once every few weeks (50 requests/sec for 2 hours) at a time that I can anticipate. Over the next few months, I expect both the moderate and peak traffic to increase, but their relative magnitudes will likely remain proportional.
Where is the best place to host something like this? I’ve used EC2 in the past to ramp up processing, but are there other options that might be more cost effective (I don’t need a huge amount of storage)? What about Heroku, Linode, or Slicehost?
Heroku is really easy.
When you’re ready for a traffic burst, move a knob up the slider (number of “dynos”, or units of concurrency on Heroku).
When you’re done with the burst, move the knob back down the slider.
Heroku bills for dynos used prorated to the second. If you ramp up the dynos for 5,923 seconds and then ramp back down, that’s what you’ll be billed for.
Heroku takes care of deploying your app from the “compiled slug” that it created when you did a
git push heroku masterto all the new dynos. You do not need to do anything beyond move the slider in order to prepare for burst traffic.