Tor in the Elastic Computing Cloud: Fourteen months later.

Mar 11, 2012

Slightly over a year has gone by since I announced that I'd set up a Tor node in Amazon's EC2 to help add some bandwidth to the Tor network. I've been keeping an eye on things since then, keeping tabs on what goes into maintaining a node in Amazon's virtualization infrastructure and tallying up the cost, so here are my results.

Last month my year of 'free' operation of a micro instance in the EC2 was up; I now have to pay full price for my particular tier every month to maintain my node (though I always had to pay something because of the amount of traffic my node pushes). The configuration of my node hasn't changed (100 GB per month, not an exit, not a bridge, 300 KB/350 KB) though I have run a few systemware and software upgrades since then. For the month of January 2012 I paid a total of $29.39us for the amount of CPU time the node uses and the amount of traffic it pushes. Just in case my 'free' year being up in the middle of the month skewed my numbers somewhat I waited an extra month to compare costs, and for the month of February I paid $28.77us for my node. Compared to how much I've paid every month for normal operation during the free micro instance year, that's just five or six US dollars more. Not bad at all.

On average for the past 14 months, my EC2 node was active ('awake') for an average of nine days, 11 hours, and 23 minutes out of every month. The month in which the node was operational for the shortest amount of time was September of 2011 (6 days, 23 hours, 11 minutes). The month in which the node was awake for the longest period of time was March of 2011 (15 days, 0 hours, 5 minutes). So, all of that said, it's surprisingly cost-effective to run a Tor node in the EC2 that adds a considerable amount of bandwidth to the Tor network.

Every time I post an update to this project I always get a couple of tweets and e-mails from people who say that I should be adding bridges to the Tor network instead of relays. Bridges are Tor nodes which aren't in the public Tor directory and exist solely to help users connect to the network when net.censorship measures prevent direct connections. Relays are the nodes in the Tor network which make up the darknet's infrastructure, to which clients ordinarily connect and push traffic from place to place; it's the relays which provide the bandwidth that clients make use of. I can't deny that they have a valid point; bridges are very important to the Tor network because they help users get around access restrictions. If you can't reach the Tor darknet you can't use it, after all. On the other hand, when there wasn't much bandwidth available a lot of people refused to use Tor because "it was too slow."

Nobody's quite sure what the most effective ratio of relays to bridges should be for optimal usability. It's been suggested as a topic of research not a few times but as far as I know there isn't any data floating around, and nobody's published a paper yet. Frankly, I don't remember enough about statistics to do the research myself, and I'm more concerned about getting it wrong and giving people bad information than I am about re-learning that particular branch of math. So, all I can say is that I'm going with this answer in the Tor FAQ, which says that if you have a lot of bandwidth you should run a relay, and if you have only a little bandwidth you should run a bridge. I have rather a lot of bandwidth available these days so I'm running relays. However, if you don't want to go gung-ho about Tor but want to help somehow, I highly suggest that you set aside the cost of five mixed coffee drinks at your local chain coffee shop every month (that's about $30us, or what I pay every month for my relay), set up an account at Amazon Web Services, and run one or two of the Tor Project's preconfigured bridges in the EC2 to help people evade online surveillance and net.censorship. If you qualify for the free micro instance (which you almost certainly do unless you've used it already) you'll spend about $3us per month helping the Tor network. If you don't you'll probably pay about $20us per month for your Tor bridge; either way, you'll still have some money to spend at Starbucks after work if you're worried about the cost.

Be sure to read the Frequently Asked Questions so you know what's going on. The Tor Bridge virtual machine is configured to allow 40 gigs of traffic per month (in increments of 10GB per week) so you don't have to worry about someone running your bill up to astronomical heights. You also don't really have to worry about logging into the virtual machine to take care of it because it's been configured by the talented engineers of the Tor Project to more or less take care of itself, but you can if you want to, the instructions are on the website. The Tor Project takes care of distributing the IP addresses of bridges to people that need them so you don't have to worry about that (unless you want to set up a couple of private bridges for people you know, in which case that's your business).

So, I charge - nay, I challenge you to pitch in and help people around the world make their voices heard online. Even if it's just for a year, you'll be helping the make the world a slightly better place.