First off, I'm a bit of a bind n00b so if I say things that don't make sense just ignore them =)
Is there any software that would allow "API" like commands for creating, updating, deleting etc. zones and records on BIND?
I have two DNS servers running on EC2 and I want to be able to easily manage domains on them from another app. I know something like CPanel has a HTTP API and interfaces with BIND but that's probably overkill for what I need. I don't mind installing Apache/PHP/Mysql/Python/Rails/Whatever else needed to get it to work but all the servers will be doing is DNS
EDIT: Or get BIND to use MySQL for storing it's config, then I could just write a simple PHP script to do the 'API' bits
This has been an ongoing request from BIND admins for many years. BIND 9 has the facility built-in to swap out the storage-handling to an alternative mechanism than the default. There have been various attempts at using this facility, and one that appears to still be maintained is the MySQL BIND SDB driver, which looks as if it meets the needs you edited your question to include - so you'll still need to write/find a PHP/HTTP front-end for the database.
A quick Google search for "database backend for bind" provides further reading, but keep in mind any such solution to include database support into BIND will require a system on which you can compile BIND + driver code, so you may want to have another host to do this on for security reasons.
As always, HTH and YMMV.
You can configure a dynamic zone,
and update using
nsupdate -l
:BIND 9 comes with DLZ (http://bind-dlz.sourceforge.net/mysql_driver.html) included already: http://www.nlnet.nl/project/bind-dlz/
As a goodie for DLZ updates perhaps this will also be useful
http://www.ducksong.com/bind-dlz-xmlrpc-bridge.php
http://code.google.com/p/dnseditor/
There's an ongoing "Name Server Control Protocol" effort at the IETF intended to design a common API for performing exactly those functions across different DNS server implementations.
See http://dnsccm.org/ for more details, including info about a forthcoming implementation of NSCP.