AWSAmazon Route 53Networking

aws_route53_zone cost estimation

A DNS hosted zone. Flat $0.50/month per zone, plus tiered per-query charges.

An aws_route53_zone is a container for DNS records for a domain. Pricing is simple but has a flat-fee component people forget about.

First, $0.50/month per hosted zone. This is prorated by the day for new zones in their first month, and free for zones deleted within 12 hours.

Second, $0.40 per million queries for the first billion queries per month, then tiered down at higher volumes. Standard queries to A, AAAA, CNAME, MX, etc. records all count the same. Latency-based and geolocation routing queries cost more ($0.60-$0.70 per million) because of the routing logic.

Health checks (aws_route53_health_check) are billed separately, typically $0.50-$0.75/month per health check.

Traffic Flow policies (advanced routing) cost $50/month per policy record. Right for sophisticated multi-region failover setups.

DNSSEC signing is $0.05 per query that returns a DNSSEC-signed response, plus a flat $1/month per zone for the KMS key used for signing.

c3x estimates the per-zone flat fee from the resource. Query volume is usage-based via c3x-usage.yml's monthly_standard_queries and monthly_latency_based_queries.

Terraform example

A minimal but realistic configuration that C3X can estimate.

resource "aws_route53_zone" "main" {
  name = "example.com"
}

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

  alias {
    name                   = aws_cloudfront_distribution.site.domain_name
    zone_id                = aws_cloudfront_distribution.site.hosted_zone_id
    evaluate_target_health = false
  }
}

Pricing dimensions

What you actually pay for when you provision aws_route53_zone.

DimensionUnitWhat's being charged
Hosted zoneper zone per monthFlat fee for each zone to exist.
$0.50/zone/month
Standard queriesper 1M queriesQueries against A, AAAA, CNAME, MX, TXT, etc. records. Bulk discounts above 1B/month.
$0.40/1M for first 1B; $0.20/1M after
Latency-based / geo / weighted queriesper 1M queriesRouting logic adds a premium over standard queries.
$0.60-$0.70/1M
Health checksper health check per monthSeparate resource (aws_route53_health_check).
$0.50/month per basic check
DNSSECper zone + per query$1/month per signed zone (for the KMS signing key) plus a small per-query fee for signed responses.

Optimization tips

Common ways to reduce aws_route53_zone cost without changing the workload.

Use Alias records instead of CNAME for AWS targets

Eliminates query fees for AWS targets

Alias records pointing to CloudFront, ALB, S3, etc. don't count as queries against your zone (you don't pay for them). CNAMEs to the same targets do count.

Avoid latency-based or geolocation routing unless needed

50%+ on premium query types

These cost more per query than standard routing. For most workloads, a single CloudFront distribution with global edge caching handles geographic distribution better and cheaper than DNS-level routing.

Consolidate subdomains into one zone

$0.50 per consolidated zone

Each delegated subdomain (a separate hosted zone for staging.example.com, etc.) is another $0.50/month. Keep records in the parent zone unless you specifically need separate IAM/DNSSEC scope.

Delete zones for deprecated domains

$0.50/zone/month

It's easy to leave zones lying around for old test domains. Each one is $0.50/month forever. Audit aws_route53_zone resources and remove unused.

FAQ

Why is my Route 53 bill higher than expected?

Usually it's health checks. Each one is $0.50-$0.75/month, and they add up across services. Audit aws_route53_health_check resources. Also check for forgotten zones for old domains.

Does c3x estimate query volume?

Only via c3x-usage.yml. Query volumes can be pulled from Route 53 query logs to populate usage_file accurately.

What about Route 53 Resolver?

Route 53 Resolver is a separate resource type (aws_route53_resolver_endpoint) priced per endpoint and per query. Used for VPC-to-on-premises DNS and DNS Firewall. c3x estimates it independently.

Are alias records to S3 free?

Yes. Alias queries to AWS targets (S3, CloudFront, ALB, ELB, API Gateway, VPC interface endpoints) are not charged. This is one of the main reasons to prefer alias over CNAME for AWS services.

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_zone.