Showing posts from June, 2011

A strategy for handling DNS in EC2 with Route 53

In my previous post I showed how to use the boto library to manage Route 53 DNS zones. Here I will show a strategy for handling DNS within an EC2 infrastructure using Route 53.

Let's assume you have a registered domain name called You want all your EC2 instances to use that domain name to communicate with each other. Assume you launch a database instance that you want to refer to as What you do is you add a CNAME record in the DNS zone for and point it to the external AWS name assigned to that instance. For example:
# route53 add_record ZONEID CNAME 3600
The advantage of this method is that DNS queries for from within EC2 will eventually resolve the CNAME to the internal IP address of the instance, while DNS queries from outside EC2 will resolve it to the external IP address -- which is in general exactly what you want.


Managing Amazon Route 53 DNS with boto

Here's a quick post that shows how to manage Amazon Route 53 DNS zones and records using the ever-useful boto library from Mitch Garnaat. Route 53 is a typical pay-as-you-go inexpensive AWS service which you can use to host your DNS zones. I wanted to play with it a bit, and some Google searches revealed two good blog posts: "Boto and Amazon Route53" by Chris Moyer and "Using boto to manage Route 53" by Rob Ballou. I want to thank those two guys for blogging about Route 53, their posts were a great help to me in figuring things out.

Install boto

My machine is running Ubuntu 10.04 with Python 2.6. I ran 'easy_install boto', which installed boto-2.0rc1. This also installs several utilities in /usr/local/bin, of interest to this article being /usr/local/bin/route53 which provides an easy command-line-oriented way of interacting with Route 53.

Create boto configuration file

I created ~/.boto containing the Credentials section with the AWS access key and secre…

Technical books that influenced my career

Here's a list of 25 technical books that had a strong influence on my career, presented in a somewhat chronological order of my encounters with them:

"The Art of Computer Programming", esp. vol. 3 "Sorting and Searching" - Donald Knuth"Operating Systems" - William Stallings"Introduction to Algorithms" - Thomas Cormen et al."The C Programming Language" - Brian Kernighan and Dennis Ritchie"Programming Windows" - Charles Petzold"Writing Solid Code" - Steve Maguire"The Practice of Programming" - Brian Kernighan and Rob Pike"Computer Networks - a Systems Approach" - Larry Peterson and Bruce Davie"TCP/IP Illustrated" - W. Richard Stevens"Distributed Systems - Concepts And Design" - George Coulouris et al."DNS and BIND" - Cricket Liu and Paul Albitz"UNIX and Linux System Administration Handbook" - Evi Nemeth et al."The Mythical Man-Month" - Fred Brook…