Route 53 is the service people assume is free because the number is small. It is not free, it has seven separate meters, and the two that surprise operators are a Resolver endpoint that costs more per month than most EC2 instances and a health check that charges you nothing while quietly running up a bill somewhere else.
Does Route 53 cost money?
Yes, and there is no free tier for it. The Route 53 pricing page opens with the shape of the deal: "with Amazon Route 53, you don't have to pay any upfront fees or commit to the number of queries the service answers for your domain. Like with other AWS services, you pay as you go and only for what you use."
The meters, in the order they usually matter:
| Meter | Rate |
|---|---|
| Hosted zone (first 25) | $0.50 per hosted zone per month |
| Hosted zone (26 and up) | $0.10 per hosted zone per month |
| Records above 10,000 in a zone | $0.0015 per month |
| Standard queries | $0.40 per million (first 1 billion per month) |
| Health check, AWS endpoint | $0.50 per health check per month |
| Health check, non-AWS endpoint | $0.75 per health check per month |
| Resolver endpoint | $0.125 per ENI per hour |
| Traffic Flow policy record | $50.00 per policy record per month |
Those are the AWS Regions rates. The pricing page publishes a second query table for AWS GovCloud (US) at higher numbers: standard queries there are "$0.50 per million queries (first 1 billion queries per month)" against $0.40 commercially. If you are modelling a government workload, take the rates from the right table.
What does a Route 53 hosted zone cost?
$0.50 a month for each of the first 25, then $0.10 each, for what the hosted zones documentation defines as the container for a domain's records. The detail that catches teams doing infrastructure-as-code testing is that this charge does not behave like the rest of AWS:
"The monthly hosted zone prices listed above are not prorated for partial months. A hosted zone is charged at the time it is created and on the first day of each subsequent month."
Create a zone, delete it an hour later, and you have paid fifty cents. A pipeline that creates and destroys a stack with a hosted zone in it fifty times in a day has bought fifty hosted zones. There is exactly one escape hatch, and AWS documents it: "to allow testing, a hosted zone that is deleted within 12 hours of creation is not charged, however, any queries on public hosted zones will still incur charges at the rates below."
Records are included up to a point: "a hosted zone includes up to 10,000 records. For each record greater than 10,000 per hosted zone, you will be charged $0.0015 per month."
Which Route 53 DNS queries are free?
Three categories, and together they cover most of what a normal AWS application resolves.
- Private hosted zones. "Route 53 does not charge for queries on private hosted zones." All of your internal service discovery inside a VPC is free.
- Alias records pointed at AWS services. "Queries for Alias records are provided at no additional cost to Route 53 customers, if the Alias records are mapped to any of the following AWS services", and the list runs to eleven: "Elastic Load Balancers, Amazon CloudFront distributions, AWS Elastic Beanstalk environments, Amazon API Gateways, Amazon VPC endpoints, Amazon S3 buckets that are configured as website endpoints, Amazon AppRunner, Amazon AppSync, Amazon OpenSearch, Amazon LightSail, and Amazon Global Accelerator." A public site fronted by an ALB or CloudFront with alias records answers its apex queries for nothing.
- Chained aliases ending at an AWS resource. "We do not charge for DNS queries if you create a chain of alias records that reference other alias records, and the last alias record in the chain references an AWS resource such as an Elastic Load Balancer."
The free path breaks in one non-obvious way: an alias whose target is an ordinary record rather than an AWS resource is billed. "We charge the standard rate for DNS queries for which the domain name and type match a record, but the alias target of the record is a non-alias record in the same hosted zone."
And two ordinary-looking query patterns are always charged:
- Right name, wrong type. "Queries for which the domain name or subdomain name matches a record name, but not the record type" are billed. AWS names the cause: "some browsers automatically send both A and AAAA queries for a specified domain or subdomain name, so we recommend that you create both A and AAAA records where applicable." A missing AAAA record is a billed query on every page load from those browsers.
- Records that do not exist. "Queries for a record that doesn't exist" are billed at the standard rate. Bot traffic probing subdomains you never created is DNS spend.
Are Route 53 health checks free?
The first fifty are, if they point at AWS. The pricing page states the offer: "new and existing customers can create up to 50 health checks for AWS endpoints that are within or linked to the same AWS account for free", where "an AWS endpoint is a resource running within AWS (e.g., an Amazon EC2 instance) that is provisioned within the same AWS account as the health check or billed to the same account as the health check."
Beyond that it is $0.50 per health check per month for AWS endpoints and $0.75 for non-AWS endpoints, prorated for partial months. The options cost more than the check does:
| AWS endpoint | Non-AWS endpoint | |
|---|---|---|
| Basic health check | $0.50 per month | $0.75 per month |
| Each optional feature | $1.00 per month | $2.00 per month |
"Optional health check features" are named on the pricing page as "HTTPS, string matching; fast request interval, and latency measurement". A non-AWS endpoint checked over HTTPS at the fast interval with string matching is $0.75 plus three lots of $2.00, so $6.75 a month rather than $0.75. Two of those choices are permanent: the health check configuration documentation says of the request interval, "after you create a health check, you can't change the value of Request interval", and the same of string matching. Changing your mind means deleting the check and creating another.
Two endpoint types are always free: "you are not billed for health checks of Elastic Load Balancing resources or Amazon S3 buckets that are configured as website endpoints. Health checks of Elastic Load Balancing resources and S3 website bucket endpoints are provisioned automatically by AWS and are available at no additional charge as part of Route 53."
What does a Route 53 health check cost outside Route 53?
This is the part that is not on the pricing page, and it is the one that cost us money.
A health check is not one request from one place. AWS: "if you choose an interval of 30 seconds, each of the Route 53 health checkers in data centers around the world will send your endpoint a health check request every 30 seconds. On average, your endpoint will receive a health check request about every two seconds. If you choose an interval of 10 seconds, the endpoint will receive a request more than once per second."
Our production health check for akalcloud.ai was pointed at /,
the marketing homepage, on the default 30-second interval. Measured in August
2026, that was roughly 32,000 requests a day, each one rendering the full
115 KB page: Django templates, database-free but not free, plus the load
balancer processing every byte of the response. The health check line on the
Route 53 bill was zero, because it is an AWS endpoint inside the fifty free
ones. The cost landed on the application: instance CPU on a burstable
instance, and load balancer processed bytes, which is one of the four
dimensions in what an ALB LCU actually is.
The fix is a dedicated endpoint that returns a few bytes and touches nothing.
Point the check at /healthcheck/ rather than at the page a
customer sees. AWS's own note about health checkers not coordinating is worth
knowing before you size the endpoint: "Route 53 health checkers in different
data centers don't coordinate with one another, so you'll sometimes see
several requests per second regardless of the interval you chose, followed by
a few seconds with no health checks at all."
What do Route 53 Resolver endpoints cost?
More than anything else on this page, and the pricing is per network interface rather than per endpoint: "$0.125 per ENI per hour". The endpoint is what makes Route 53 Resolver reachable from outside a VPC. The multiplier is structural, because the service requires it: "a Route 53 Resolver endpoint requires two or more IP addresses. Each IP address corresponds with one Elastic Network Interface (ENI)."
Two ENIs at $0.125 an hour is $0.25 an hour, which is about $182 a month for one endpoint before a single query is resolved. An inbound and an outbound endpoint together is double that. Queries on top are "$0.40 per million queries (first 1 billion queries per month)", and only some of them count: "only queries that pass through a Route 53 Resolver endpoint (either inbound or outbound) will be charged. Queries that resolve locally using the Route 53 Resolver will not be charged."
One outbound endpoint can be shared, which is the lever that matters: "a single outbound endpoint can be used by multiple VPCs that were created by multiple accounts within the same region." An organisation that builds one Resolver endpoint per VPC per account is paying $182 a month per VPC for something designed to be shared.
Does Route 53 charge for DNS query logging?
Route 53 does not. Something else does. For authoritative query logs: "Route 53 does not charge for authoritative DNS query logs. However, when you configure DNS query logging, you incur Amazon CloudWatch charges in the US East (Virginia) Region including data ingestion, archival storage, and analysis."
Note the Region. Query logs land in us-east-1 regardless of where
you operate, so the CloudWatch cost appears in an account's Northern Virginia
spend even for a workload that runs entirely in Ireland. Resolver query logs
behave the same way with a wider choice of destination: "Route 53 does not
charge for VPC Resolver query logs. However, when DNS query logging is
configured, Amazon CloudWatch, Amazon S3 or Amazon Kinesis Data Firehose
charges will be incurred depending upon the target destination chosen for your
logs."
This is the same pattern as VPC Flow Logs and CloudTrail: the service that produces the log is free, and the destination is the meter. Ingestion rates and the Infrequent Access class are covered in what CloudWatch Logs actually cost.
How do you find your Route 53 spend?
Group by usage type rather than by service total, because the usage type names tell you which meter is running. They are named on the pricing page itself, including "Intra-AWS-DNS-Queries" for standard queries answered by alias records, "Intra-AWS-LBR-Queries" for latency-based routing, "Intra-AWS-Geo-Queries" for geolocation and geoproximity, and "Intra-AWS-Cidr-Queries" for IP-based routing.
Two smaller charges worth knowing about because they arrive under other services. Traffic Flow bills "$50.00 per policy record per month", and AWS notes "there is no charge for traffic policies that are not associated with a domain name via a policy record", so an unused policy is free and an associated one is not cheap. And console use can generate S3 requests: "using the Route 53 console can generate API calls to S3. Actions such as identifying alias record targets send API calls to S3, such as LIST_ALL_MY_BUCKETS. Depending on how many times you initiate this workflow, the API calls made to S3 may cause charges to appear in your S3 bill as LIST requests."
What should you check on a Route 53 bill first?
- Point health checks at a cheap endpoint. The check is free; what it renders 32,000 times a day is not.
- Count your Resolver endpoints. At two ENIs each, this is usually the largest Route 53 line. One shared outbound endpoint per Region beats one per VPC.
- Use alias records for AWS targets. Alias to an ALB or CloudFront distribution is free; a CNAME to the same hostname is billed per query.
- Create AAAA records alongside A records. AWS recommends it for correctness and it removes a class of billed queries at the same time.
- Delete test hosted zones within 12 hours. Outside that window there is no proration and no refund.