The AWS EC2 Scheduler is a script that given a set of profiles schedule the uptime of ec2 instances.
Install through pip.
pip install aws-ec2-scheduler
The initial configuration is done in the aws.conf
file. Copy the aws.conf.dist
to aws.conf
and configure with the right credentials.
By default aws.conf
reads schedule profiles from scheduler.json
but you can change
the directory from where you want to load the profiles.
To run the scheduler just run
ec2scheduler -c path/to/config_file
The scheduler expects you to create profiles to start and stop the machines.
You can just copy the scheduler.json.dist
and start creating your new profiles from there.
{
"profiles": [ // an array of profiles
{
"name": "staging", // profile name
"region": "us-west-1", // aws region
"schedule": { // weekday schedule
"monday": {
"start": 9, // start hour
"stop": 19 // stop hour
},
"tuesday": {
"start": 9,
"stop": 19
},
"wednesday": {
"start": 9,
"stop": 19
},
"thursday": {
"start": 9,
"stop": 19
},
"friday": {
"start": 9,
"stop": 19
},
"saturday": {
"start": 9,
"stop": 19
},
"sunday": {
"start": 9,
"stop": 19
}
},
"instance_tags": [ // tags from the instances you want to attach this profile schedule
"jobs-staging", // this tag should be the name of the instance tag:Name
"admin-staging",
"reports-staging"
],
"elb_names": [ // add this configuration if you want to reregister this elb instances
"example-tag-elb-name"
]
}
]
}