The dynamic DNS setup that I wrote about previously didn’t work out very well. After several weeks of running smoothly, the VPS provider I was using had an issue with a DDoS attack on one of its clients which forced them to move datacenters. Obviously this caused some unexpected downtime and my only DNS server for timmontague.com was unavailable. Luckily, I was able to change the name server back to the servers provided by Gandi.net, my registrar, within a few hours so hopefully I didn’t bounce too many emails. In hindsight, it’s probably not the best idea to place your sole name server on a VPS that costs less than $2 a month.
I decided to go with another route, Amazon’s Route 53. They offer servers across the world and their SLA states that they expect 100% availability. More importantly, they have an API that allows adding, deleting and updating records.
It was extremely easy to get set up. I already had an Amazon AWS account, so I simply logged in, created a new hosted zone, and added my existing DNS records using the web interface. I found a utility that makes it incredibly easy to administer the DNS records from the command line called cli53.
One obstacle I encountered was finding my external IP address without relying on a service that may be sporadically unavailable. With a little searching, I was able to find a command that connects to the Airport Extreme that I’m using as a router via SNMP and extracts the external IP address.
I updated my DDNS update script to the following:
With the extremely low traffic of this site, the monthly AWS fees should be about $1. Not too bad at all.