Amazon EC2 Free Tier Billing – Data Transfer, Ubuntu Server 11.04

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.

The cause:

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.

The solution:

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/.

Installing Glassfish on Ubuntu Server 11.04 (No GUI)

Because the self-extracting shell script used to install Glassfish requires the use of a GUI by default, installing Glassfish on a system like Ubuntu Server is not quite a straightforward is one may think.

To install Glassfish without a GUI, one must use a not-so-known silent install mode. To do this, an answer file (a text file that contains installation settings) must be supplied using argument -a, and argument -s must be supplied. For example:

./glassfish-3.1-unix.sh -a answerFileName -s

To generate an answer file, however, one must run the installer in trial mode:

./glassfish-3.1-unix.sh -n answerFileName

The only problem with this is that generating the answer file in trial mode also requires the use of a GUI. In my case, I wanted to install Glassfish on my Natty Ubuntu Server on Amazon EC2, which does not have a GUI. Using another Ubuntu machine I generated an answer file to install using silent mode (see above).

If you’d like to use the answer file I used: Click here. This answer file has the most basic settings set, with an admin password of “password.”

Hopefully this saves someone a little time!