Monster Bandwidth for a Month?
ourcoolroom asks: "I work for a small regional ISP and we are facing a problem which I'm sure anyone who has tried to read a slashdotted article is well aware of. There are times when a large amount of bandwidth is needed for a short period of time. In our case, a few years ago we had a little 250kB Shockwave Christmas card developed. Any suggestions for hosting something that needs a pile of bandwidth for only 4 weeks or so a year would be appreciated."
"We weren't particularly impressed with the results so we didn't distribute it, but we did have it on a sub-domain of our website. It sat around for a year or so, and then about the first week of December all of our data circuits were buried. Apparently a link to the card had started to make its way around in an email. We were able to find a place to host the Shockwave file last year, and towards Christmas transferred around 230GB a day just of the Shockwave file. We don't really stand to make any profit so we can't put a huge bankroll on this project, but we would like to have it up for holiday goodwill (that and it's really cool for a company our size to have a page with over 1,000,000 hits/day). We have thought about distributed downloading via BitTorrent, etc, but we feel many of the people who would view the card would not be that savvy."
There are many things you can do, some which will help lower bandwidth and requests, others will simply cost money to implement.
First, put a meta cache tag in the web page, and make sure your webserver responds properly to "Has this page changed" requests. A lot of downloads are simply going to be people playing it over and over again - by going to your web page. Let the proxies and caches do their job by making sure they know your page isn't changing for a month.
Second, lower the bandwidth. The music is one obvious spot - select a lower quality encoding. Simplify the flash as much as possible. You may not be able to do much, but if you completely re-think it you will be surprised how small a high quality flash can be.
Develop the website properly. Put in a message that says "Please wait while loading..." since many web users will impatiently click on the url over and over if they don't see the flash immediately, causing extra stress and bandwidth on the server. In the extreme, consider limiting downloads and queuing visitors. "Your card will show in 25 seconds, please wait."
Also be aware of content thieves. Make sure your server is configured to upload the content only to users who have specifically requested your webpage (not just the file on the page). If you look through the server logs of old you may find a lot of referrer tags coming from sites that embedded your url on their page and got revenue on your work, without paying for the bandwidth, nevermind obeying copyright laws.
Third, you need at minimum a bandwidth of 25Mb/s (assuming you meant 230Gbytes, and not 230Gbits). The real minimum is actually closer to twice that since the bursty traffic will be at least twice the average traffic. This means you need to host a dedicated server with someone who has a T3 or greater dedicated to your use. This is big bucks. You may find that it will be cheaper working with a content distribution service such as Akamai.
Lastly, while notriety is nice, and it's fun to see everyone looking at you, make sure you are weighing all the costs - including your sanity - against the percieved benefit. For this type of thing, if you aren't making money then it usually isn't worth it.
-Adam