Migrate DNS from Dyn to Google Cloud

My day job had used Dynect Managed DNS for years, but as our queries per second increased to 30, we had a problem. At one time we used their traffic manager, but we no longer balanced at DNS level, which dropped the bill by quite a bit.

I've been hosting in Digital Ocean for years, and also have machines in Google Cloud, a very large buildout between them both. I did the math using the Google Cloud calculator, and realized Google's DNS was way cheap for our access level so I took the plunge.

  1. Log in to manage.dynect.net
  2. under "manage dns" select your zone.
  3. under zone the zone, find "zone reports" and click it
  4. click "download" under zone file.

to create a zone within Google DNS:

gcloud dns managed-zones create reinersio --description="mydomain" --dns-name="reiners.io"

to import your zone file:

gcloud dns record-sets import -z=reinersio --zone-file-format Downloads/reiners.io.zonefile.txt --delete-all-existing

pending here just means it sent the load info to google dns, and its processing it.

Now we need to test it, but first, we need our DNS servers:

gcloud dns managed-zones reinersio
creationTime: '2016-11-01T02:06:09.863Z'
description: ''
dnsName: reiners.io.
id: '415624439522711xxxx'
kind: dns#managedZone
name: reinersio
- ns-cloud-xx.googledomains.com.
- ns-cloud-xx.googledomains.com.
- ns-cloud-xx.googledomains.com.
- ns-cloud-xx.googledomains.com.

Now we want to take note of the ns-cloud-xx.googledomains.com. lines, we can use dig with them to test the new server has your records loaded:

watch dig reiners.io @ns-cloud-xx.googledomains.com

watch will loop the dig command, allowing you to see when one of your records loaded, you can check other with this command, but if the records are there, we should be good to edit our domain registrar DNS records to your nameServers we got from the describe command.

I moved 6 domains with very little work. Moving other zonefiles should work. you just need to make sure all of the domain records are utilizing the trailing dot.

example: 'reiners.io.' not 'reiners.io'