In the comments section of my previous blog post, Amazon AWS Route 53 ColdFusion components, Jean-Yves Michel asked, "But did you make any cost calculation for 'mapping hundreds or perhaps thousands of subdomains to Amazon EC2 images'?" I'd done a quick overview but decided I'd look into costs more and post them here.
Although I know my way around the basics of DNS, I'm by no means an expert. When looking for a DNS solution for my project, I found that one of the cost factors many providers (including Amazon) use is the number of DNS queries per month. These numbers are usually quoted in millions. The problem is, I have no idea or experience with how to accurately estimate this number. If anyone has insight on this, please let me know! Therefore, the best analysis I can provide is a comparative one, with some inferences based on my research on this subject.
So far, for most of my sites, I've gotten by with the donation-based service EveryDNS.net. EveryDNS was purchased by Dyn a few months ago, but I've continued to use them. However, for a new project I have the following requirements:
1. Map and unmap "hundreds or thousands" of subdomains on a regular basis.
2. An API needs to be available so I can do this programmatically.
3. Cost is an issue. I especially don't want to be paying "enterprise" rates for a product that is still in development.
I'd looked at two options: paying for commercial DNS, or running my own nameservers. These are the two comparisons I'll make to Amazon's Route 53.
The first place I looked for options was up the food chain at EveryDNS. In order to find a product that supports the number of subdomains I will need, along with a robust API, I had to go to Dyn's Dynect platform. According to their pricing page, pricing starts at $195 per month and allows up to one DNS query per second, approximately 2.5 million queries per month. While I'm sure there are other important differences between Dyn and Amazon, this provides a good starting point for comparison.
In comparison, Amazon's pricing for DNS hosting with 2.5 million queries in a month would be ... $2.50. That's right, two dollars and fifty cents. That's $1 for a hosted zone, and $0.50 per million queries. I would need to have 388 million DNS queries a month to get my bill up to $195. Dyn doesn't seem to publish their DNS query overage charges so I couldn't tell you what that would cost with them for comparison.
It seems to me that for a project in development, with a very limited scope of interest outside a few people, Route 53 will cost less than Dyn.
Hosting my own DNS
While I could set this up, the real cost here is my time. I've set up and run DNS servers with BIND once or twice and I'm sure I could muddle my way through it. However, the time spent figuring this out, setting it up, securing it, connecting my systems to it, etc. etc. is time that I can't spend actually moving the project forward. It's a distraction. In about a day I was able to read the Route 53 specs and get all the basic code written to interface with it. It would have taken me just as long, probably longer, to interface with my own nameservers, in addition to all the time spent setting it all up.
On top of the time spent, I'd have to spend at least, say, $60 per month for a VPS to host my primary nameserver. That's the bare minimum, and assumes I'm going to host the secondary nameserver on my home DSL connection for now. For comparison, that same $60 will buy me 118 million DNS queries per month with Amazon.
Looking to the future
I can certainly see a time in our product's future where Amazon's Route 53 is not the most cost-effective alternative. Once the product (hopefully) becomes a success, costs will rise and we'll be looking to do something else. Really in the end we are going through this whole exercise because of an inability to interface directly with an unpublished binary file format from a third party vendor. Maybe they'll be nice and give us the specs for this file, or maybe we'll attempt to, and successfully, decode the format. Alternatively, if we're successful enough that Route 53 starts to eat up a lot of our revenue, I don't mind the idea of setting up our own nameservers at that point.
Right now though, Route 53 seems like the best option.