Massive Amazon Route53 API Bind Zone Import Script

Hello there,

Occasionally some of our managed services work has us dealing directly with other cloud providers such as Amazon. One of our clients set a requirement to migrate over 5,000 domain’s to Amazon’s Route53 DNS service.

There was little doubt that this could be automated, but since we have never done this massive of a deployment through Amazon’s API directly, we thought it might be interesting to post the process as well as the script through which we managed the import process.

Essentially the script utilizes a master domain name list file as its basis for looping through the import. The master list refers to the bind zone files and imports them into Amazon’s Route53 via the Cli53 tool package.

One final note, the script outputs all completed domain imports into a CSV file with the following format :

This is because when facilitating the actual nameserver change request, all the nameservers assigned to domains when imported to Route53 are randomly generated, so the script has to keep track of these nameserver/domain associations.

The script isn’t perfect and could benefit from some optimizations and more error checking (it does a lot of error checking already, however), but here it is in its entirety. We hope you will have some use for it!

  • Neelam Sharma

    Nice blog :)

    Amazon Route53 can handle large volume of DNS queries. We have developed an User Interface tool for route53 services – DNS30 Professional Edition.

    Web Interface for this service is also available.

  • matratze aufblasbar

    Hey. Cool article. There’s a problem with your site in chrome, and you may want to check this… The browser is the market leader and a huge component of other people will omit your wonderful writing because of this problem.

    • Kevin

      What exactly is the problem in Chrome? I just tried it and it seems to load fine for me….

  • frekn0

    Great post! Stumbled across it while testing the cli53 project. One question, before coming across your post I have attempted a few manual imports. This is how I realized that my zone files seem to require further parsing before attempting the import (?) – this seems to be supported by the code in your script. I need to remove or replace SOA and NS records from the files, correct? If so, can I somehow extract code from your script to rid my files of any NS or SOA references, without launching the full script?