Skip to content
Innovation & Growth

Bunny drops DNS query fees, and one engineer's move shows the trade-offs

Free lookups change the bill. They also raise a question about who owns the routing logic.

W
WebPulse Newsroom
AI-assisted · 4 min read
Share on X LinkedIn
Bunny drops DNS query fees, and one engineer's move shows the trade-offs
In brief
  • Bunny.net says it no longer charges for DNS queries and hosts up to 500 domains per account free, with smart records and health checks included.
  • One engineer's move from AWS Route 53 shows what scripted routing can do, and the limits he hit with browsers and DNS records.
  • Leaders should ask where routing logic lives, who can change it, and what happens if the provider fails.

Every time someone types a web address, a DNS lookup answers one question: where should this visitor go? One CDN vendor has made that lookup free. Amazon's Route 53 still bills by the million. Even when the lookup costs nothing, the decision it makes does not get any smaller.

What Bunny changed

Bunny.net, a content delivery company, announced that it no longer bills for DNS queries. In its words, it has "eliminated DNS query fees entirely." Each account can host up to 500 domains at no charge. The company says nothing is capped or metered per request, and that smart records and health monitoring come with the free tier.

One cost remains. Every Bunny account still pays the company's standard minimum of $1 per month.

Bunny also describes its reach. It says more than 300,000 domains run on Bunny DNS, and that the service answers close to 200 billion queries each month. Those figures come from the company; we have not seen independent confirmation.

One engineer's bill

Vincent Bernat, who runs a personal blog, moved his DNS from Amazon Route 53 to Bunny. He called Route 53 expensive. His list of AWS charges: US$0.50 a month for each zone, US$0.70 for every million geolocation queries, and US$0.75 a month for each health check. Signing zones with DNSSEC, a tamper-protection standard, also needed a KMS key at US$1 per month.

He describes Bunny as "almost free" for up to 500 domains. The post does not give his totals, so his actual saving is unknown. His setup is also small: seven virtual machines for one blog. It shows one data point, not a typical enterprise estate.

How scriptable DNS works

Normal DNS returns a fixed answer. Bunny can instead run a piece of JavaScript on each query to work out the answer. Bernat's servers sit in Paris, Nuremberg, Ashburn, Singapore, San Jose, São Paulo and Sydney. His script returns the addresses of the two servers nearest the visitor.

It relies on a Bunny helper, getClosestServer(), which returns the closest server that is alive. If the first server is down, the browser tries the second. That gives location-aware routing and failover without a separate traffic manager.

Where the clever part runs out

Bernat reports real limits. A visitor in Buenos Aires gets São Paulo, about 1,000 miles and 30 ms away, and Ashburn, about 5,200 miles and 140 ms away. Most resolvers randomize the order, so that visitor may be sent to Ashburn.

Returning only the nearest server fixes the delay but weakens failover. If that server fails, the browser has no alternative until the DNS cache expires.

A newer record type, HTTPS records defined in RFC 9460, could solve both problems. Bernat found two obstacles. He says Chrome ignores any record whose target is not ".". He also says Bunny does not return the server addresses alongside the record, so the resolver needs a second request.

His compromise is simple. The script returns two servers when they are at a similar distance. Otherwise it returns only the nearest, with a two-minute cache time. He also notes that Bunny's CDN lacks HTTP/3. Bunny support told him it is working on it, with no date.

The decision this forces

This shows a shift in where the cost sits. A free lookup moves the price from the invoice to the dependency. Bunny calls DNS "the core product that glues our entire platform together." It offers one-click CDN and security switches from the DNS records themselves. That is convenient. It also means routing logic written in a vendor's script runtime lives inside that vendor's platform.

Bernat's own script depends on a Bunny-specific helper. That is not a flaw. It is a fact worth pricing in before the logic spreads across a company's domains.

Questions to put to your team

Ask who knows where your DNS routing rules live, and whether any scripted logic sits in version control. Ask what you pay per million queries today and how that cost moves with traffic. Ask what happens to customers in regions far from your nearest server.

Ask how failover was tested, and what happens if the DNS provider itself is unreachable. Bernat checked his answers with a DNS lookup tool. Your team can do the same before an outage does it for them.

DNS got cheaper at one vendor. The choice about where your customers land still needs an owner.

Produced by the WebPulse Newsroom with AI assistance from the original reporting credited below, and checked against that source by our editorial review. How we use AI.
Original reporting: Bunny.net.