AWSAmazon Route 53Networking

aws_route53_record cost estimation

A Route 53 record is free to create. There is no per-record charge. Cost comes from DNS queries against the hosted zone and from any health checks the record uses.

An aws_route53_record is a DNS entry (A, AAAA, CNAME, MX, TXT, alias, and so on) inside a Route 53 hosted zone. Creating records is free, and there is no per-record monthly fee. You can add thousands of records to a zone without a charge for the records themselves.

The cost sits in two places, both tied to the record's use rather than its existence. First, DNS queries: standard queries are billed at about $0.40 per million per month, latency- and geo-based queries a bit more, and alias records that point at AWS resources such as an ALB, CloudFront distribution, or S3 website are free to resolve. Second, health checks: if a record uses failover or weighted routing backed by a Route 53 health check, each health check is billed at roughly $0.50/month for AWS endpoints and more for external endpoints with optional features. There is also the flat $0.50/month hosted zone fee, but that is on the zone, not the record.

The practical levers are: prefer alias records to AWS targets so those queries are free, and only attach health checks where failover genuinely needs them. c3x prices the hosted zone, its query volume, and any health checks, and treats individual records as free.

Terraform example

A minimal but realistic configuration that C3X can estimate.

resource "aws_route53_record" "app" {
  zone_id = aws_route53_zone.main.zone_id
  name    = "app.example.com"
  type    = "A"

  alias {
    name                   = aws_lb.app.dns_name
    zone_id                = aws_lb.app.zone_id
    evaluate_target_health = true
  }
}

Pricing dimensions

What you actually pay for when you provision aws_route53_record.

DimensionUnitWhat's being charged
DNS recordfreeCreating records has no per-record charge, regardless of type or count.
$0
DNS queriesper millionStandard queries against the record's zone are billed per million; alias queries to AWS targets are free.
~$0.40 per million (standard)
Health checksper check-monthHealth checks backing failover or weighted routing are billed monthly per check.
~$0.50/month (AWS endpoint)

Optimization tips

Common ways to reduce aws_route53_record cost without changing the workload.

Use alias records for AWS targets

Free query resolution on those records

Alias records pointing at an ALB, CloudFront, or S3 website resolve for free, unlike CNAME or plain A records where queries are billed per million.

Attach health checks only where failover needs them

~$0.50/month per unneeded check

Each health check is billed monthly. Use them for genuine failover and multi-target routing, not on records where a static answer is fine.

Consolidate records into fewer hosted zones

Records are free, but each hosted zone carries a $0.50/month fee. Keeping related records in one zone avoids paying the zone fee multiple times.

FAQ

Does a Route 53 record cost money?

No. There is no per-record charge. You pay for DNS queries against the hosted zone (about $0.40 per million, or free for alias records to AWS targets) and for any health checks the record uses.

Are alias records cheaper than CNAME records?

Yes. Alias records that point at AWS resources like an ALB, CloudFront, or S3 website resolve for free, while queries against CNAME and standard A records are billed per million.

Why is my Route 53 bill higher than expected?

Usually query volume or health checks. Records are free, but high query traffic at $0.40 per million and per-check health check fees add up. Alias records and fewer health checks reduce it.

Related resources

Estimate this resource in your own Terraform

Free, open source, no API key. C3X parses your Terraform and shows line-item cost for every resource, including aws_route53_record.