ecsy icon indicating copy to clipboard operation
ecsy copied to clipboard

A command-line tool for provisioning and managing AWS ECS clusters

ECSy Build Status

🚨 This is very old and out-of-date: Check out https://github.com/aws/copilot-cli. (Also I'm sorry AWS folks, I wasn't as kind as I should have been in those issues).

A tool for managing and deploying ECS clusters, because the official one is terrible

Originally 99designs/ecs-cli, many thanks to those guys for being awesome and making it possible for me to release it open-source.

Features

  • CloudFormation based - Network stack, ECS cluster and ECS services
  • Support for managing ECS services with ELB loadbalancers
  • Designed for managing many ECS clusters
  • Built-in support for common third-party services like Datadog
  • Derives ECS Task Definitions from docker-compose v2 definitions

Installing

go install github.com/lox/ecsy@latest

Usage

Create a new ECS Cluster with your app running

# create an ecs cluster and supporting infrastructure (vpc, autoscale group, security groups, etc)
ecsy create-cluster --cluster example --keyname lox --type m4.large --count 4

# create an ecs task and service from a docker-compose file
ecsy create-service --cluster example -f docker-compose.yml

Deploy a new release of your app to a service created above

# Creates and deploys a new task with the helloworld container updated with a new image tag
ecsy deploy --cluster example -f docker-compose.yml helloworld=:v2

Building

Setup the build dependencies.

make setup

Install ecsy.

make install

Why not amazon-ecs-cli?

The main issue with amazon-ecs-cli is that it tries to emulate the docker-compose interface, which isn't a sensible abstraction and ends up making the architecture overly complicated. Contributing the changes we wanted upstream just wasn't viable, and beyond that issues go unanswered and development seems stagnant:

  • https://github.com/aws/amazon-ecs-cli/issues/90
  • https://github.com/aws/amazon-ecs-cli/issues/21