Migrating your DNS to a cloud provider like Amazon’s Route53 service can be a daunting task.
Thankfully, with dns-tools you can test your DNS records before and after the migration to ensure that everything made it across in one-piece. This is the three steps we follow when migrating to Route 53:
- Assess your current zone data
- Migrate (via the API!), and
- Verify by resolving against the AWS name servers before cutting over.
Follow along below and in just 10 minutes you’ll know if everything will migrate smoothly for you.
The first step to a successful migration is to resolve each of our records and save a snapshot of how they resolve. We do this by reading your BIND configuration, mapping out each entry (A, AAAA, CNAME, TXT, etc. …all types.) and then resolving them. You can output this to your console, TSV or for this purpose, we will use JSON as it’s easiest to compare with diff.
`dns-tools resolver -db -o json > before_migration`
With our current status saved, we can easily migrate to AWS’s Route53 DNS service in just one command:
`dns-tools migrate -db -c aws`
Like the resolver command in step 1, this command also reads your BIND configuration but then translates it into a model that can be executed against the AWS API endpoint.
Hint: Dry-runs are possible. See
--help for more.
After the migration has completed we can check that all of our records resolve against any of our newly assigned AWS nameservers. In this example, we were given ns-231.awsdns-28.com:
`dns-tools resolver -db -dn ns-231.awsdns-28.com -o json > after_migration.json`
With this we can compare our original resolved results against the results from our newly migrated service.
`diff before_migration.json after_migration.json`
In this example, we can see that all of our records are the same! The only difference here is the date and server we ran these against.
Congratulations, you have now safely migrated your BIND DNS server to Amazon Web Service’s Route53 cloud based service in less than 3 minutes!
You are now ready to scale.