I recently brought up a cluster on EC2, and I felt like I had to invent a lot of things. I'm wondering what kinds of tools, patterns, ideas are out there for how to deal with this.

Some context:

I had 3 different kinds of servers, so first I created AMIs for each of them. The first AMI had zookeeper, so step one in deploying the system was to get the zookeeper server running.

My script then made a note of the mapping between EC2's completely arbitrary and unpredictable hostnames, and the zookeeper server.

Then as I brought up new instances of the other 2 kinds of servers, the first thing I would do is ssh to the new server, and add the zookeeper server to its /etc/hosts file. Then as the server software on each instance starts up, it can find zookeeper.

Obviously this is a problem that lots of people have to solve, and it probably works a little bit differently in different clouds.

Are there products that address this concept? I was pretty surprised that EC2 didn't provide some kind of way to tie your own name to its name.

Thanks for any ideas.