Update: Please note that this post is no longer applicable now that Amazon has stopped charging for inbound data.
Recently I have signed up for Amazon EC2’s free usage tier, and I am really enjoying the service. I don’t use it for much, but I have been tinkering with it while considering using it to host a personal project. After installing one of the official Ubuntu Server images offered by Canonical, I have started noticing some charges for data transfer outside of the free usage tier’s coverage.
$0.010 per GB – regional data transfer – in/out/between EC2 Avail Zones or when using public/elastic IP addresses or ELB – $0.01
This was confusing, as I do not have an Elastic IP (a static IP they allow you to use “elastically” along all of your instances) assigned to me. The charges are very minuscule due to my usage, but each month so far has resulted in a 1 cent charge. While it isn’t enough of a charge to worry about, upon further research I believe I was able to find the source of these charges.
While Amazon EC2 includes 15GB in/out of bandwidth to use as one pleases for free, bandwidth is calculated separately between other Amazon EC2 instances. In my case, Canonical’s Ubuntu Server image was set to download new updates and packages from their EC2 instance. Although this instance was also on the East Coast, bandwidth was still metered and charged at a special rate outside of the Free Tier’s allowances.
If one were running a server outside of the free usage tiers, this bandwidth metered would be cheaper than downloading packages from a standard, non-Amazon mirror; however if you would like your updates to be part of the free 15GB Amazon gives free tier customers changes can be made to /etc/apt/sources.list. Simply remove the URL to the EC2 mirror and replace it with a public one such as http://mirror.cc.columbia.edu/pub/linux/ubuntu/archive/.