====== Route 53 ======
This page documents some tips and tricks I've learned for using Amazon Route 53 DNS services.
The API ID you use to manage Route 53 will require the IAM Group Policy AmazonRoute53FullAccess.
===== Reusable Delegation Sets =====
Route 53 now supports creating "static" DNS servers which can be useful if you need to register multiple domains and wish to store the address information with our registrar.
Unfortunately the usage isn't crystal clear, but if you read the API docs it's quite possible to decipher.
http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/white-label-name-servers.html
http://docs.aws.amazon.com/Route53/latest/APIReference/api-create-reusable-delegation-set.html
==== Create the Zone ====
You first will need to create the zone itself either using the API or from the web interface. If it already exists you can skip this step.
==== Make the Zone Reusable ====
Now find the Zone ID it will be a 16 character alphanumeric string. If you've created the zone using the API then this value was returned as part of the response upon creation. In the web interface it's the right most value in the table showing your hosted zones.
In this example our Zone ID is Z1234567890ABCDEF.
Once you know this you can use the CLI to convert the zone to make its DNS servers reusable.
# you need to have a caller reference for DNS calls to Route 53, it can be any string
REF="CreateReusableDNSQuay01"
RE_ZONEID=Z1234567890ABCDEF
aws route53 create-reusable-delegation-set --caller-reference $REF --hosted-zone-id $RE_ZONEID
This will return something like:
https://route53.amazonaws.com/2013-04-01/delegationset/N01234567890A
DELEGATIONSET CreateReusableDNSQuay01 /delegationset/N01234567890A
NAMESERVERS ns-918.awsdns-53.net
NAMESERVERS ns-1295.awsdns-32.co.uk
NAMESERVERS ns-143.awsdns-14.com
NAMESERVERS ns-55.awsdns-16.org
Note the delegation set ID. You will need this in the future when you reuse these servers with other zones.
==== Create new Zones Using the Reusable Delegation ====
Now for your new zones which use these records you will need to create them using the API. I don't believe there is any way to do so using the web interface (but I didn't look very hard).
This part is trivial.
ZONE=gabe.sh
DEL_SET=N01234567890A
REF="CreateZoneGabeSh" # this must be unique and can be any string
aws route53 create-hosted-zone --delegation-set-id $DEL_SET --name $ZONE --caller-reference $REF