Amazon have recently launched their own DNS service called route53. Its a massively scaled DNS service that ties in nicely with things like EC2 and S3 but also handles the things you’d normally expect in a DNS server. The official line is:
Amazon Route 53 is a highly available and scalable Domain Name System (DNS) web service. It is designed to give developers and businesses an extremely reliable and cost effective way to route end users to Internet applications by translating human readable names like www.example.cominto the numeric IP addresses like 192.0.2.1 that computers use to connect to each other. Route 53 effectively connects user requests to infrastructure running in Amazon Web Services (AWS) – such as an Amazon Elastic Compute Cloud (Amazon EC2) instance, an Amazon Elastic Load Balancer, or an Amazon Simple Storage Service (Amazon S3) bucket – and can also be used to route users to infrastructure outside of AWS.
Currently there is no web interface to route53 and you access all the functionality via the API. There are some code examples to convert existing bind zones to a route53 XML request. However, I had major problems getting the perl example bindtoroute53.pl to work, mainly due to CPAN issues and Net::DNS::Zonefile not playing ball on Ubuntu 10.10 64bit. I didn’t have time to fiddle endlessly with perl and CPAN so I’ve rewritten the script in python and made it available so it can hopefully benefit someone else.
On ubuntu you need python installed and python-dnspython which is aDNS toolkit. You can install this by simply running
sudo apt-get install python-dnspython
Then just down the script from: http://media.squarecows.com/code/bindtoroute53.py and make it executable.
The script is pretty self explanatory you simply run the command by typing:
./bindtoroute53.py -z example.com > myrequest.xml
This will produce a file you can now use with the route53 API which will create new records for you.
Note: It doesn’t connect to amazon for you, you need to do that yourself following the guides on aws.amazon.com.