Allow Hudson to start slaves on EC2 or Ubuntu Enterprise Cloud (Eucalyptus) on demand, and kill them as they get unused.With this plugin, if Hudson notices that your build cluster is overloaded, it'll start instances using the EC2 API and automatically connect them as Hudson slaves. When the load goes down, excessive EC2 instances will be terminated. This set up allows you to maintain a small in-house cluster, then spill the spiky build/test loads into EC2 or another EC2 compatible cloud.
First, go to EC2 and sign up for the service. Then click 'New cloud' to get an EC2 configuration section, enter the Access Key and Secret Access Key which act like a username/password. Because of the way EC2 works, you also need to have an RSA private key that the cloud has the other half for, to permit sshing into the instances that are started. If you have already been using EC2 and have your own key, you can paste it here. Otherwise, you can have Hudson generate one. If you let Hudson generate one, you should save this private key in your file system as well, as you'll need this to interactively logon to EC2 instances.
Use "Test Connection" button to verify that Hudson can successfully talk to EC2. If you are using UEC you need to click on Advanced and fill out the endpoint details for your cluster.
Next, configure AMIs that you want to launch. For this, you need to find the AMI IDs for the OS of your choice. ElasticFox is a good tool for doing that, but there are a number of other ways to do it. Hudson can work with any Unix AMIs. If using an Ubuntu EC2 or UEC AMI you need to fill out the rootCommandPrefix and remoteAdmin fields under 'advanced'. Windows is currently unsupported.
Configuring labels allow Hudson to pick the right AMI to start. For example, if all your existing slaves labeled "solaris" are fully busy and you have more builds that are tied to the "solaris" label, Hudson will start the AMIs that have the "solaris" label.
Init script is the shell script to be run on the newly launched EC2 instance, before Hudson starts launching a slave agent. If the AMI doesn't have Java pre-installed, you need to do so in this script. This is also a good place to install additional packages that you need for your builds and tests.
Configure several AMIs if you need different OS images.
With this setting, your Hudson will automatically start instances when the load goes up, and the instances will be terminated automatically if it's idle for more than 30 mins.