DevOps Peach

AWS Basics · DNS with Amazon Route 53 · Lesson 1 of 5

DNS Records and TTL

Understand hosted zones, record types, and resolver caching.

Practice interactively →

DNS maps names to data

Route 53 is managed authoritative DNS. A public hosted zone answers the Internet for a domain you own; a private hosted zone answers only within associated VPCs. Route 53 is a global service with a 100% availability SLA.

flowchart LR
  C["Client<br/>app.example.com?"] --> R["Recursive resolver<br/>ISP or 8.8.8.8, cache"]
  R --> ROOT["Root and .com<br/>name servers"]
  ROOT --> NS["Route 53<br/>authoritative zone"]
  NS -- "A 203.0.113.10, TTL 300" --> R
  R --> C
  %% step C: The client asks its resolver; it never talks to Route 53 directly.
  %% step R: The resolver first checks its cache; if the answer is still within its TTL, it replies immediately.
  %% step ROOT: Otherwise it walks the tree: root servers point to .com, .com points to the domain's NS records.
  %% step NS: Route 53 answers authoritatively from the hosted zone.
  %% step C: The client connects to that IP; DNS is not in the data path afterwards.

Record types

Type Returns Example
A IPv4 address app → 203.0.113.10
AAAA IPv6 address app → 2001:db8::10
CNAME Another hostname www → app.example.com
Alias (Route 53) AWS resource, resolved to IPs example.com → ALB
MX Mail servers with priority 10 mail.example.com
TXT Free text SPF, domain verification
NS Name servers for the zone Delegation
SOA Zone authority and timers Created automatically
CAA Which CAs may issue certificates 0 issue "amazon.com"
SRV Service host and port Some protocols

TTL

TTL tells a resolver how long to cache an answer. A high TTL reduces queries and cost but slows changes; a low TTL supports faster cutovers at the cost of more queries. Before a planned migration, lower the TTL (for example from 86400 to 60) at least one old-TTL period in advance, switch, then raise it again. Alias records use the target's TTL.

When a client still sees an old value after a change, investigate TTL caching before blaming Route 53 — resolvers, operating systems and browsers can all cache.

Private hosted zones

A private zone resolves names such as db.internal.example.com only inside the VPCs you associate with it, even from other accounts. The VPC needs enableDnsSupport and enableDnsHostnames, and queries go to the VPC resolver at the VPC base address +2 (for example 10.0.0.2). For hybrid networks, Route 53 Resolver endpoints forward queries between the VPC and on-premises DNS.

A private zone must be associated with the correct VPC, and VPC DNS settings must support resolution. If public and private zones share a name, VPC clients see only the private zone's records.

Command Purpose
dig app.example.com A +short View the IPv4 answer
dig app.example.com A +noall +answer See the answer with its remaining TTL
aws route53 list-hosted-zones List zones
aws route53 list-resource-record-sets --hosted-zone-id Z0123456789ABC List records

Traps: expecting a change to appear instantly everywhere; forgetting to associate a private zone with the VPC; using CNAME where a MX or Alias is needed.

Practice interactively →