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.
| Dimension | Unit | What's being charged |
|---|---|---|
| Hosted zone | per month | Flat fee per private DNS zone. $0.50/zone/month |
| DNS queries | per million | Queries 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.90Optimization tips
Common ways to reduce azurerm_private_dns_zone cost without changing the workload.
Avoid zone sprawl
$0.50/month per avoided zoneEach 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 zoneA 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.