Docker

Everything is run within docker containers to save you having to set up anything locally.

For the aws cli commands run the below command to create the alias for running the commands via the docker container

alias aws='docker-compose run --rm aws'

Note that this alias will only last for the terminal session

Setting up instances on AWS

Create Launch Config

aws autoscaling create-launch-configuration --launch-configuration-name lc1 --instance-type t1.micro --image-id ami-b29cb5cb --key-name simian-army-test

Create Auto Scaling Group

aws autoscaling create-auto-scaling-group --auto-scaling-group-name monkey-target --launch-configuration-name lc1 --availability-zones eu-west-1b --min-size 1 --max-size 1

Inspect auto scaling group

aws autoscaling describe-auto-scaling-groups --output text

Army Config

We only want to run the chaos monkey, so go ahead a disable the other services

Janitor Monkey

src/main/resources/janitor.properties

simianarmy.janitor.enabled = false

Conformity Monkey

src/main/resources/conformity.properties

simianarmy.conformity.enabled = false

src/main/resources/volumeTagging.properties

simianarmy.volumeTagging.enabled = false

Add AWS configs

src/main/resources/client.properties

simianarmy.client.aws.accountKey = {accountKey}
simianarmy.client.aws.secretKey  = {secretKey}
simianarmy.client.aws.region = eu-west-1

Chaos Monkey

src/main/resources/chaos.properties

simianarmy.chaos.ASG.enabled=false
simianarmy.chaos.ASG.monkey-target.enabled=true
simianarmy.chaos.ASG.monkey-target.probability=1.0

Cleanup

aws autoscaling update-auto-scaling-group --auto-scaling-group-name monkey-target --min-size 0 --max-size 0
aws autoscaling delete-auto-scaling-group --auto-scaling-group-name monkey-target
aws autoscaling delete-launch-configuration --launch-configuration-name lc1