3

I'm working on a large network of servers sitting on EC2, and need a way for the servers to know about each other's locations in the cloud. I thought the simplest way would be to use DNS, because if I replace the EC2 instance, I simply update the DNS record, and the rest of the servers will know about it (with names like users.db.mysoft.com, routing.mysoft.com, cluster1.memcached.mysoft.com). I'm considering setting up a master DNS server on a micro/small instance to accommodate this.

I'd preferably need something that's as simple as a key-value store (hostname -> IP) into which the platform could remotely add/remove entries. Can I do this with BIND? Or is there a better solution?

dkulchenko
  • 143
  • 1
  • 5
  • Can you clarify the second requirement of the platform remotely adding/removing entries please. – Rob Olmos Nov 28 '10 at 09:21
  • Are you sure you can't do this using Amazon elastic IP? – Rich Nov 28 '10 at 11:53
  • @Rob Olmos, I mean I need to be able to add a new hostname->IP record programatically from another machine. – dkulchenko Nov 28 '10 at 17:50
  • @Rich, I can, but I have a limit of Elastic IPs, and I'll need a lot more than that. I also don't need to pollute the external IPv4 namespace for an internal network. – dkulchenko Nov 28 '10 at 17:51

1 Answers1

1

I know of a couple of possibilities.

1.) Use a DB-backed DNS server like PowerDNS + MySQL and just update the database when your automation system stands up an instance (you are using an automation system, right?)

2.) If you don't want the hassle of setting up your own server then you could use a hosted DNS service that provides an API (like DNSimple or Zerigo) and short TTLs and push updates to the hosted DNS service via their API.

Full disclosure: I run DNSimple.

I agree that you should not use Elastic IPs for this.

aeden
  • 41
  • 2