What is Route 53?
Amazon Route 53 is AWS’s managed DNS (Domain Name System) service. DNS is the “phone book” of the internet: it turns a human-friendly name like devcraftly.com into the machine address (an IP address such as 198.51.100.42) that browsers actually connect to. Route 53 answers those lookups for you at massive scale, lets you register and manage domain names, and can even check whether your servers are healthy before sending traffic to them. It matters because every web request starts with a DNS lookup, so your DNS provider sits on the critical path of everything your users do.
The name “Route 53” is a small joke: 53 is the network port DNS uses, and “route” hints at how it routes traffic to the right place.
What DNS actually does
When you type a website name into a browser, your computer cannot use that name directly. It first asks a DNS resolver, “What is the IP address for this name?” That question travels up a chain until it reaches the authoritative name server for the domain, the one place that holds the official answer. Route 53 can be that authoritative server for your domains.
The answers are stored as records. Each record maps a name to a value, for example:
- An A record maps a name to an IPv4 address (like
198.51.100.42). - A CNAME record maps a name to another name (an alias).
- An MX record points to the mail servers for a domain.
A DNS resolver does not ask the authoritative server every single time. It caches (temporarily stores) the answer for a period defined by the record’s TTL (Time To Live, measured in seconds). A TTL of 300 means resolvers may reuse the answer for up to 5 minutes before asking again.
The three jobs of Route 53
Route 53 bundles three related services together.
| Feature | What it does | When to use it |
|---|---|---|
| Domain registration | Buy and renew domain names (e.g. myapp.com) | When you need to own a new domain |
| Hosted zones & records | Hold the DNS records that answer lookups for a domain | Always, once you point a domain at AWS |
| Health checks | Monitor endpoints and route traffic away from unhealthy ones | Multi-server or multi-region setups needing failover |
A hosted zone is a container for all the DNS records of one domain. Create a hosted zone for devcraftly.com, and inside it you add the A, CNAME, MX, and other records that describe where each name points.
Route 53 is a global service, not tied to one AWS Region. You manage it the same way no matter where your users or servers are. Its query-answering infrastructure runs across edge locations worldwide, which is why lookups are fast almost everywhere.
Creating a hosted zone
A hosted zone is the first thing you create when you want Route 53 to answer DNS for a domain.
Console steps:
- Open the AWS Management Console and go to Route 53.
- In the left menu, choose Hosted zones, then Create hosted zone.
- Enter the Domain name (e.g.
devcraftly.com). - Leave Type as Public hosted zone (internet-facing). Choose Private only for VPC-internal names.
- Choose Create hosted zone.
- AWS gives you four name server (NS) values. Copy them, you will point your domain at these.
AWS CLI (v2):
aws route53 create-hosted-zone \
--name devcraftly.com \
--caller-reference "2026-06-15-devcraftly-zone"
Output:
{
"HostedZone": {
"Id": "/hostedzone/Z0123456789ABCDEFGHIJ",
"Name": "devcraftly.com.",
"ResourceRecordSetCount": 2
},
"DelegationSet": {
"NameServers": [
"ns-101.awsdns-12.com",
"ns-512.awsdns-00.net",
"ns-1024.awsdns-63.org",
"ns-2048.awsdns-44.co.uk"
]
}
}
If your domain is registered elsewhere, log in to that registrar and replace its name servers with these four. That step, called delegation, tells the world that Route 53 is now authoritative for your domain.
Adding a record
Once the zone exists, you add records to point names at real resources. Here is an A record for the root domain.
Console steps:
- Open the hosted zone for
devcraftly.com. - Choose Create record.
- Leave the Record name blank for the root domain (or enter
wwwfor a subdomain). - Set Record type to A.
- Enter the IP address in Value (e.g.
198.51.100.42). - Set TTL (e.g.
300seconds). - Choose Create records.
AWS CLI (v2): create a JSON change file, then apply it.
aws route53 change-resource-record-sets \
--hosted-zone-id Z0123456789ABCDEFGHIJ \
--change-batch '{
"Changes": [{
"Action": "UPSERT",
"ResourceRecordSet": {
"Name": "devcraftly.com",
"Type": "A",
"TTL": 300,
"ResourceRecords": [{"Value": "198.51.100.42"}]
}
}]
}'
Gotcha that bites everyone: DNS changes are not instant. Resolvers keep cached answers for the full TTL of the old record. If your A record has a TTL of
86400(24 hours) and you change the IP, some users can keep hitting the old server for up to a full day. Before any planned cutover (a new server, a migration), lower the TTL to60a day or two ahead of time. Then make the switch, confirm it works, and raise the TTL back. Forget this and you will be stuck watching old, cached answers slowly expire with no way to speed it up.
Health checks in plain terms
A health check is a small monitor that repeatedly pings an endpoint (an IP or URL) to confirm it is responding. Route 53 can attach a health check to a record so that if an endpoint goes down, lookups stop returning its address and instead return a healthy backup. This is the foundation of automatic failover across servers or Regions.
Use health checks when you run more than one endpoint and want traffic to drain away from a broken one automatically. You do not need them for a simple single-server site.
Cost note
Route 53 is inexpensive but not free. As of 2026, a hosted zone costs about $0.50 per month for the first 25 zones, plus roughly $0.40 per million standard DNS queries. Basic health checks cost about $0.50 per month each. Domain registration is billed yearly and varies by extension (a .com is around $13/year). For most small projects this totals a few dollars a month.
Best practices
- Use a low TTL (e.g. 60 seconds) before any planned IP change or migration, then raise it again afterward.
- Keep one hosted zone per domain and let AWS manage the NS and SOA records, do not delete them.
- Prefer Route 53 alias records over CNAMEs when pointing at AWS resources like CloudFront or load balancers, they are free to query and work at the root domain.
- Add health checks for any multi-endpoint setup so failover happens automatically.
- Confirm delegation worked with
dig NS devcraftly.com +shortbefore assuming a new zone is live. - Use clear, unique
--caller-referencevalues in the CLI so retries do not create duplicate zones.