Dew is an environment management tool intended for use in multi-instance AWS application deployments.
It's called dew as it's a layer under Fog which in turn is a layer under various cloud platforms.
- one command
dew, with subcommands eg.
These subcommands can:
- create and destroy environments, a collection of AWS instances, a load balancer and a database
- create and destroy amis, machine images used to create instances in your environments
- configure your amis with Puppet
- deploy MRI Passenger and JRuby Tomcat applications to your environments
This code is Open Source, but some of it is still specific to PlayUp. Running
cucumber with a correctly configured
development.yaml will drain whichever credit card you've attached to that account!
$ [sudo] gem install dew
If you're an employee of PlayUp:
$ git clone email@example.com:playup/dew-config.git ~/.dew
1. Copy over the example configuration and edit the default account file
$ cp -r `gem which dew | dirname`/../../example/dew ~/.dew $ vi ~/.dew/accounts/development.yaml
secret_access_key with your AWS credentials.
2. Install your keypair
Either pick an existing keypair or create a new one. You'll need to do this once for each account and region you intend to operate in.
.pem file in the following location:
For example, the
.pem file for the
default key in
development account and in the
ap-southeast-1 region would go in:
Don't worry about setting permissions for the key - dew will manage that itself.
3. Configure your security groups
dew makes a couple of assumptions about how you've set up your security groups. Unfortunately, dew doesn't yet possess the capability to manage this for you:
- it expects that the
defaultsecurity group allows for SSH from the host you're creating the environment from
- it expects that the
defaultsecurity group in your RDS configuration allows connections from your AWS account's instances
$ dew --help
And perform a basic self-test:
$ dew env
Creating a Simple Environment
Assuming that you've created (or downloaded) your
~/.dew directory, you should be ready to create a simple environment.
First, take a look at
test-light is the profile we'll be using to create our environment. You'll see that it contains:
- AMIs for each region
- two instances, using the 'default' keypair and the 'default' security group
- an elastic load balancer (elb) with a listener on port 80
If your keypair isn't called 'default', you'll need to edit this file and change it.
dew -v env create test-light my-first-environment
You'll be shown a summary of the environment that you're about to create. Type 'y' to confirm its creation and watch as it's created.
Once complete you can run the following commands to interact with your environment:
dew env ssh my-first-environment dew env show my-first-environment dew env destroy my-first-environment
Creating an AMI for a new Environment
Deploying to an Environment
Developing with Dew