Public | Automated Build

Last pushed: a year ago
Short Description
A custodian for your cloud
Full Description


image:[link=] image:[link=] image:[link=] image:[link=] image:[link=] image:[link=]

== 🤖 Cecil - an AWS EC2 instance garbage collector

Cecil is a monitoring tool designed to aggressively cleanup EC2 instance garbage and avoid unwanted AWS charges from idle or forgotten instances.

It's geared towards doing development and testing in AWS, and takes a heavily automated and self-serve approach:

. Whenever you start a new EC2 instance, Cecil assigns a short-term lease to you (3 days by default) for that instance and notifies you via email.
. When the lease is about to expire, Cecil will notify you by email and give you a chance to renew the lease if you're still actually using it.
. Unless you renew the lease, Cecil will automatically terminate the EC2 instance.

Cecil was developed at[Couchbase] image:[link=] to help control AWS costs related to large-scale performance testing of it's[distributed NoSQL database].

== Features

  • ✅ Configurable lease expiration times with multiple lease expiry warnings
  • ✅ Auto-assign leases based on SSH keypair or CecilOwner EC2 tag
  • ✅ Ability to group instances into a single lease via CecilInstanceGroup EC2 tag
  • ✅ Groups Cloudformations and AutoScalingGroups instances into a single lease by default
  • ✅ Monitor multiple AWS accounts from a single Cecil instance via STS role assumption
  • ✅ Low latency stream based approach via Cloudwatch Events

== Roadmap

== Quick Start

=== Deploy Clouformation

Deploy the following cloudformation template to the us-east-1 region.


Create an AWS access key for the newly created CecilRootUser IAM user.

aws iam create-access-key --user-name CecilRootUser

This will return something like:

    "AccessKey": {
        "AccessKeyId": "AKIAIEXAMPLERQ4U4N67LE7A"
        "SecretAccessKey": "je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY",

At this point a new SQS Queue and an IAM Role will be added to your AWS account, which will be used by the Cecil process that will be launched in the next step.

=== Launch Cecil on Docker Cloud


You will need to customize the environment variables in the Stack according to the AccessKeyId and SecretAccessKey returned above, and your AWS account ID.

NOTE: See the[Configuration Reference] for documentation of the environment variables.

NOTE: you will need to setup volume mounts if you want to preserve the database across container restarts. See[Deploying Cecil to Docker Cloud] for more info.

=== Launch Cecil on OSX

Alternatively, download the[OSX release binary] and unzip it.

Set the following environment variables that correspond to the AccessKeyId and SecretAccessKey returned above, and replace YOUR_AWS_ACCOUNT_ID with your actual AWS account id, which is numeric and might look something like 78861235:

AWS_REGION=us-east-1 \

Launch the process:

$ cecil

Congrats! Cecil is now running.

To start monitoring for EC2 events on your AWS account, continue to the documentation on how to[Create account and admin user via rest api]

== Documentation

. 📓[Cecil Manual] -- primary documentation, start here.
. ⚙[REST API reference]
. 📺[Screencast: up and running (20 mins)]

== Community

. 📰[Gitter Community]
. 📮!forum/cecil[Google Group]
. 🐦[Twitter]

Docker Pull Command
Source Repository