Excellent Pay as you go hosting with specific plans for static only content.
require 'rubygems'
require 'sinatra'
get '/' do
File.read(File.join('public', 'index.html'))
end
Just put all of the files in /public and you're good to go.Also, make sure you are using http caching - that way Heroku will use Varnish to cache them.
Also, VISA and MC both provide an updater service, that some payment gateways make available to some merchants. The updater service allows a merchant to ask for an update on the status of a credit card. Possible responses are: no update available; account is closed; here is the new expiration date for the card; card was replaced and here is the new number and expiration date. The service is pretty cheap. One of the card companies charges something like $150 to sign up, the other charges nothing. Queries are free if there is no updated information available, and something like $0.10 if updated information is returned. They do require that you query for all your stored cards at least once a year.
This doesn't work for all cards. Although the service is provided by VISA and MC, it is up to the individual bank or other organization that actually issued the card to decide if they will support it. When we started using it, it boosted revenue on subscription billing by maybe 2-3%.
I don't think the updater service is available to everyone. I believe they do some looking over your history to try to ensure that you aren't the kind of business that would be misusing the service. I'm sure Amazon would qualify.
This suggests to me that card expiry is not a likely failure mode.
I dunno if they're "the best", but they're certainly workable.
You can even get a $5 domain to point at your dropbox web location.