Learn AWS with me :: Episode 4 : Route 53
Tags: aws, route53, learning, skills
Published: 2020-12-14 07:50:44

---
title: Learn AWS with me :: Episode 4 : Route 53
published: true
description: Episode 4 of the learn AWS with me series. In this series we focus on Route 53, using it to create domains and associated DNS records.
tags: AWS, Route53, Learning, Skills
//cover_image: https://direct_url_to_image.jpg
---
## Background
Welcome to Episode 4 of the Learn AWS series. The purpose behind this series is to build skills and confidence in using the AWS platform, by finding, testing and sharing the best learning resources that teach specific AWS services AS WELL AS the various foundational technologies they depend on. In short: Instead of writing a tutorial that just scratches the surface, we assemble a learning path of great **existing** resources to help you towards mastery.

You can learn more about the series here: https://dev.to/gregfullard/learn-aws-with-me-episode-1-introduction-mph

Episode 4 focuses on AWS Route 53. Let's get into it..

## Introduction
Route 53 is a DNS web service that can be used for domain registration, DNS routing, and a range of related health checks. If, like me, you're the type of person who registers a new domain for every business idea that enters your mind, then you are quite familiar with the concept of domain registrars. You would also be familiar with the idea that once you register a domain with your provider (for example, GoDaddy), they give you an admin interface for working with the DNS records of that domain.

What you may not know (I certainly did not), is that there is a distinct difference between a Domain Registrar and a DNS provider. It just so happens that most domain registrars include a free (but quite limited) DNS service with their domain registration package.

Route 53 makes the distinction between the domain registration and the DNS service very explicit, even though they also offer both services. Once you wrap your head around that distinction, the value of Route 53 becomes very clear.

## Getting Started with AWS Route 53
The first thing that you'll notice when you open the Route 53 console, is that there is a lot going on: Hosted zones, traffic policies, domains, resolvers, etc. Quite a lot to take in, and it's difficult to know where exactly to start. The simplest place is to just register a new domain on Route 53. Yes, it costs a few bucks, but the cost is on par with any other provider.

Note: Route 53 does charge an extra $0.50 per month for the DNS service though, so be aware.

The process for registering a new domain is dead simple. If you've done it at any other provider, you'll be fine. If not, you can refer to the developer guide: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-register.html

If you want to transfer a domain from another service provider to Route 53, the process is a bit more complicated. In essence you first create a hosted zone on Route 53 and then update the name servers at your existing provider. Once this is done, the transfer of the domain registration is a simple (but possibly time consuming) process. The process is described here: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-transfer-to-route-53.html

While the Name Server update process is happening, you will be able to verify your Domain details (Including the current active NS records) in the official WHOIS database. This is easily done at https://lookup.icann.org.

IMHO the best introduction to Route 53 is probably the re:Invent 2016 session titled "DNS Demystified". It's well worth the time spent. Here's the link: https://www.youtube.com/watch?v=AAq-DDbFiIE

Once you've got the basics of DNS and Route 53 covered, it is important to explore the various routing policies and their use cases. This is really where Route 53 becomes a powerhouse in your solution architecture (and where it justifies the monthly DNS fees you will have to pay). Here are the resources related to routing policies that I found valuable:

 * General routing info in the AWS Developer Guide: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html
 * @BePythoholic has a handy video explaining each of the routing policies: https://www.youtube.com/watch?v=9CsIB2ewCjc
 * Details about setting up failover routing in the AWS Developer Guide: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html

And finally, after I played with Route 53 a bit, I also found the follow-up presentation at re:Invent 2017 very valuable. It builds on the session from 2016 and tied things into a nice bow for me: https://www.youtube.com/watch?v=PVBC1gb78r8

## Core Concepts in Route 53
When working with Route 53, there are a number of core concepts to be familiar with, including Domain Registrars, DNS services, Hosted zones, TTL and much more. Luckily the documentation team put together this handy reference, which I would strongly recommend: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/route-53-concepts.html

## Foundational Skills for working with Route 53

No technology lives in isolation, and Route 53 is no different. Although you can begin your learning journey by jumping straight into Route 53, becoming a true master will require skills and experience in the prerequisite, complementary and alternative technologies. The following Skills Tetris diagram gives a simple overview of the skills neighborhood that Route 53 lives in.

![AWS Route 53 Skills Specification](https://dev-to-uploads.s3.amazonaws.com/i/1fulvipley6lrqheu6yf.png)

### DNS
Since Route 53 is a DNS service, we need to build a good understanding of DNS. I've referred people to this concise (and entertaining) introduction by @spiceworks many times before, so let's start there: https://www.youtube.com/watch?v=dE4rsNuG0aw 

These two articles (one from Medium and one from Digital Ocean) also provide a great introduction to DNS:
* https://www.digitalocean.com/community/tutorials/an-introduction-to-dns-terminology-components-and-concepts
* https://medium.com/@ayushkgupta007/demystifying-dns-3fb936940c76

### Reliability Engineering
You DON'T need to be versed on all aspects of reliability engineering before you touch Route 53, but many of the capabilities that Route 53 provides are geared towards addressing reliability concerns. In particular: Consistent health checks, elegant failover management, and low latency data transfer. You can begin your exploration of reliability engineering on the Wikipedia page (https://en.wikipedia.org/wiki/Reliability_engineering). Beware! The rabbit hole is deep :) 

## Beyond the console
Once you've worked through the resources above, you should be quite comfortable creating and configuring your DNS routing with Route 53 via the AWS console. But another important strength of Route 53 is that you can interact with it via the AWS CLI or one of the available SDKs. I like the Boto3 (Python) SDK quite a lot, so the two resources I used often were:
 * https://awscli.amazonaws.com/v2/documentation/api/latest/reference/route53/index.html
 * https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/route53.html

## Things I struggled with
Although Route 53 is very powerful, it isn't particularly complex, so I didn't get stuck too much. However, the process for transferring a domain from one of my existing providers was quite tedious on the first attempt. When I moved over a second domain things made more sense.

## Things I would still need to figure out
I specifically didn't look at private DNS capability yet, since this isn't an immediate requirement for me. Additionally, I'd want to play around with Traffic Flow at some stage.

## Resources I uncovered in the process
During my Route 53 learning journey I uncovered many useful learning resources. Some have been listed above already, but for completeness, here is a complete list of the resources I used:

* Handy overview of DNS by Spiceworks: https://www.youtube.com/watch?v=dE4rsNuG0aw 
* Great overview of DNS concepts by Digital Ocean: https://www.digitalocean.com/community/tutorials/an-introduction-to-dns-terminology-components-and-concepts
* Demystifying DNS article by Ayush Gupta: https://medium.com/@ayushkgupta007/demystifying-dns-3fb936940c76
* "DNS Demystified"  session at re:Invent 2016 (NET202): https://www.youtube.com/watch?v=AAq-DDbFiIE
* "DNS Demystified" session at re:Invent 2017 (NET302): https://www.youtube.com/watch?v=PVBC1gb78r8
* Pythoholic's free YouTube course on AWS: https://www.youtube.com/playlist?list=PLiH9_MU-6RjI9gdFqmvUfKRfw_zRxIb6o
* DNS Design Using Amazon Route 53 - AWS Online Tech Talks: https://www.youtube.com/watch?v=2y_RBjDkRgY
* SimpliLearn's AWS Tutorial Videos for beginners: https://www.youtube.com/playlist?list=PLEiEAq2VkUULlNtIFhEQHo8gacvme35rz
* Route 53 Masterclass by Rohan Arora: https://www.youtube.com/watch?v=FxLtEnrb84M
* FreeCodeCamp AWS Solutions Architect course (https://www.youtube.com/watch?v=Ia-UEYYR44s)
* Stephane Maarek's AWS Solution Architect Associate course on Udemy: https://www.udemy.com/course/aws-certified-solutions-architect-associate-saa-c02

## Next Steps
This blog article covered the most important aspects that I came across during the weekly Twitter thread, but if you're interested, you can check out the original thread here: https://twitter.com/devskilldojo/status/1335841066210250752

Next up (Episode 5) is S3, you can follow along with episode 5 on this Twitter thread: https://twitter.com/devskilldojo/status/1338381598174146562