The complete guide on how to move away from GoDaddy DNS to Amazon Route 53

In 2007 when I bought todoist.com and later wedoist.com GoDaddy was considered the safe choice for buying and managing domains.

With today's 6+ hours downtime, their past SOPA support fiasco, their shady marketing and the CEO killing elephants in Africa... I think it's safe to assume that most people will be screaming away. [I am at least and today's 6+ hours downtime is just the last punch to move every of my domains from GoDaddy].

Here's my short guide on how to easily export your domain setup and import it into Amazon Route 53, which is Amazon's rock solid DNS offering (that's used by many popular sites, such as Instagram and Pinterest... Just to name a few).

Important:
The below guide has a bug! It seems like cli53 appends your domain on each CNAME entry.
Please check out this GitHub issue for more updates.
Currently I have fixed it manually via the AWS Route53 editor!

1) Export your domain setup

From the Godadd'y DNS Manager you can export your domain's setup:

GoDaddy DNS export

Choose Unix format. The format will be BIND's.

2) Install cli53

cli53 is a Python script for managing Amazon Route 53. It's freaking awesome as it can import, export and help you debug your Route 53 setup.

To install it simply do:

$ sudo pip install cli53

3) Edit your Godaddy export

You need to add a $ORIGIN to your Godaddy export file. If you don't add this cli53 will throw:

Exception: Could not find origin

Simply add $ORIGIN yourdomain.com. at the top of the Godaddy's export file, like so:

Origin at the top of Godaddy export file

5) Import data with cli53

Create a hosted zone:

$ cli53 create todoist.com

Import your Godaddy export:

$ cli53 import todoist.com --file todoist.com.zone

4) Make sure that your information is correct

Use the excellent Interstate53 service to recheck that everything is setup correctly using a web interface.

Or just use cli53 rrlist command:

$ cli53 rrlist todoist.com
host	ttl	cls	type	data
@	1800	IN	A	50.18.181.105
@	3600	IN	MX	10	aspmx.l.google.com.
@	3600	IN	MX	50	aspmx3.googlemail.com.
@	3600	IN	MX	20	alt1.aspmx.l.google.com.
@	3600	IN	MX	30	alt2.aspmx.l.google.com.
@	3600	IN	MX	40	aspmx2.googlemail.com.
@	172800	IN	NS	ns-938.awsdns-53.net.
@	172800	IN	NS	ns-1046.awsdns-02.org.
@	172800	IN	NS	ns-1799.awsdns-32.co.uk.
@	172800	IN	NS	ns-158.awsdns-19.com.
...

5) Debug and re-check everything

You can use dig to verify that everything is setup correctly (and is the same on Route 53 and Godaddy).

For Godaddy:

$ dig -t any @PDNS01.DOMAINCONTROL.COM todoist.com

; <<>> DiG 9.8.1-P1 <<>> -t any @PDNS01.DOMAINCONTROL.COM todoist.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54065
;; flags: qr aa rd; QUERY: 1, ANSWER: 10, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;todoist.com.			IN	ANY

;; ANSWER SECTION:
todoist.com.		1800	IN	A	50.18.181.105
todoist.com.		3600	IN	MX	20 alt1.aspmx.l.google.com.
todoist.com.		3600	IN	MX	30 alt2.aspmx.l.google.com.
todoist.com.		3600	IN	MX	40 aspmx2.googlemail.com.
todoist.com.		3600	IN	MX	50 aspmx3.googlemail.com.
todoist.com.		3600	IN	MX	10 aspmx.l.google.com.
todoist.com.		3600	IN	NS	pdns01.domaincontrol.com.
todoist.com.		3600	IN	NS	pdns02.domaincontrol.com.
todoist.com.		3600	IN	TXT	"v=spf1 include:_spf.google.com ~all"
todoist.com.		3600	IN	SOA	pdns01.domaincontrol.com. dns.jomax.net. (...)

;; Query time: 370 msec
;; SERVER: 216.69.185.50#53(216.69.185.50)
;; WHEN: Mon Sep 10 21:26:58 2012
;; MSG SIZE  rcvd: 328

For Route53:

$ dig -t any @ns-158.awsdns-19.com todoist.com

; <<>> DiG 9.8.1-P1 <<>> -t any @ns-158.awsdns-19.com todoist.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12615
;; flags: qr aa rd; QUERY: 1, ANSWER: 12, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;todoist.com.			IN	ANY

;; ANSWER SECTION:
todoist.com.		172800	IN	NS	ns-158.awsdns-19.com.
todoist.com.		172800	IN	NS	ns-938.awsdns-53.net.
todoist.com.		172800	IN	NS	ns-1046.awsdns-02.org.
todoist.com.		172800	IN	NS	ns-1799.awsdns-32.co.uk.
todoist.com.		900	IN	SOA	ns-938.awsdns-53.net. (...)
todoist.com.		3600	IN	MX	10 aspmx.l.google.com.
todoist.com.		3600	IN	MX	20 alt1.aspmx.l.google.com.
todoist.com.		3600	IN	MX	30 alt2.aspmx.l.google.com.
todoist.com.		3600	IN	MX	40 aspmx2.googlemail.com.
todoist.com.		3600	IN	MX	50 aspmx3.googlemail.com.
todoist.com.		3600	IN	TXT	"v=spf1 include:_spf.google.com ~all"
todoist.com.		1800	IN	A	50.18.181.105

;; Query time: 78 msec
;; SERVER: 205.251.192.158#53(205.251.192.158)
;; WHEN: Mon Sep 10 21:27:07 2012
;; MSG SIZE  rcvd: 425

You can also see that Amazon 53 is about 4-5 times faster than GoDaddy!

6) Update your domain's nameservers

The last step is to update your domain's nameservers to point to Route 53, like so:

Godaddy change nameservers 1

Godaddy change nameservers 2

7) Transfer your domain from GoDaddy

Here's a guide on how you can complete your transition by moving your domain to another domain register (recommend as well!):

10. Sep 2012 Tips · Todoist · Wedoist
© Amir Salihefendic