You're right, it would be cheap to colocate two boxes to run DNS. Unfortunately you still have to:
- Purchase the hardware
- Receive the hardware
- Install an OS on the hardware
- Harden the OS from intruders
- Decide how to manage the servers and setup that infrastructure (puppet/chef/cfengine/ssh/etc)
- Install BIND
- Load in all your zones
- Ship the server(s) to each of the colo facilities
- Pay for smart hands to install/configure the hosts
- Setup a procedure to reliably sync zones from your RCS to the hosts and safely load zone changes without crashing BIND
- Monitor the service and hosts
- Setup alerting and escalations for when there are problems
- Subscribe to BIND mailing lists and keep up with the community
- ~once every couple years perform an ASAP update to BIND after a massive security hole is discovered (without getting compromised during this time)
- Update BIND regularly
- Deal with occasional outages at facilities
- Configure anycast routing for your IP's
Route 53 reduces this to:
- Make an API call
- Go back to developing your actual product.