Conductor is a project mainly written in JavaScript, it's free.
simple node.js based web service to create, start, stop, and terminate AWS EC2 instances
CONDUCTOR IS NO LONGER MAINTAINED See the replacement here: https://github.com/vnc/runductor
Conductor is a simple node.js web service to create, start, stop, and terminate EC2 instances. Conductor also allows you to define your own actions to perform on success and/or failure of the EC2 API request. For instance you can do an authorization check on 'user.bob' before allowing an instance to be started. And you could then log the fact that an instance was started by 'user.bob' after the request has completed.
$ git clone git://github.com/crcastle/conductor.git
$ cd conductor
# Update submodules
$ git submodule update --init --recursive
# open conductor/lib/aws-lib/lib/ec2.js
# change the date on line 25 to 2010-11-15
# if you don't do this, you'll get exceptions
# Copy server.default.js
$ cp server.default.js server.js
# Copy the default configuration file
# and add your AWS account credentials and mail server info
# simpledb credentials are needed to run server.example.js
$ cp config.json.sample config.json
# some instructions on how to use ldap authentication...
# Look at server.example.js for how the "before" and "after" actions can be defined and used
$ node server.js
# or for a more complex setup do
$ node server.example.js
# but note the additional dependencies mentioned above for this