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.