AzureAzure DNSNetworking

azurerm_private_dns_zone cost estimation

A private DNS zone for name resolution within VNets, billed a flat ~$0.50/zone/month plus per-million queries. 1M queries is ~$0.90.

An azurerm_private_dns_zone provides DNS name resolution inside Azure virtual networks without exposing names to the public internet. Cost is a flat ~$0.50 per zone per month plus a per-query charge (~$0.40 per million queries for the first billion). A zone handling 1M queries/month is ~$0.90.

It's an inexpensive service — the per-zone fee is trivial and query volume for internal resolution is usually modest. The only way it adds up is zone sprawl: large landing-zone or hub-and-spoke designs that create many private zones (one per service domain, split-horizon zones per environment) accumulate the per-zone fee, and zones linked to many VNets are common. Still, even hundreds of zones is a modest line item.

There's little to optimize beyond not creating zones you don't need and consolidating where split-horizon DNS allows. The per-query cost only matters at very high internal query volumes, which are rare for private resolution.

c3x prices the zone from its flat fee plus query volume, so the (small) cost is visible.

Terraform example

A minimal but realistic configuration that C3X can estimate.

resource "azurerm_private_dns_zone" "internal" {
  name                = "internal.example.com"
  resource_group_name = azurerm_resource_group.main.name
}

resource "azurerm_private_dns_zone_virtual_network_link" "main" {
  name                  = "vnet-link"
  resource_group_name   = azurerm_resource_group.main.name
  private_dns_zone_name = azurerm_private_dns_zone.internal.name
  virtual_network_id    = azurerm_virtual_network.main.id
}

Pricing dimensions

What you actually pay for when you provision azurerm_private_dns_zone.

DimensionUnitWhat's being charged
Hosted zoneper monthFlat fee per private DNS zone.
$0.50/zone/month
DNS queriesper millionQueries resolved against the zone (~$0.40/million for the first billion).
$0.40/million → 1M = $0.40/month

Sample C3X output

One private DNS zone handling 1M queries/month:

azurerm_private_dns_zone.internal
├─ Hosted zone     1 month   $0.50
└─ DNS queries     1M        $0.40
                   Monthly   $0.90

Optimization tips

Common ways to reduce azurerm_private_dns_zone cost without changing the workload.

Avoid zone sprawl

$0.50/month per avoided zone

Each zone carries a ~$0.50/month fee. Landing-zone designs can create many private zones; create only the zones you need and consolidate where split-horizon DNS allows, rather than one zone per minor domain.

Link one zone to multiple VNets

Per avoided duplicate zone

A private DNS zone can be linked to many VNets, so you don't need a separate zone per network for the same namespace. Reuse zones across the VNets that share a namespace.

FAQ

How is an Azure Private DNS zone billed?

A flat ~$0.50 per zone per month plus ~$0.40 per million queries (first billion). A zone with 1M queries is ~$0.90/month. It's an inexpensive service; cost only adds up with many zones.

How does c3x estimate the cost?

From the flat per-zone fee plus query volume in c3x-usage.yml. The cost is small per zone; the estimate makes zone sprawl visible across a large network design.

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