nathanpeck / awesome-ecs

A curated list of awesome ECS guides, development tools, and resources
2.87k stars 321 forks source link
aws aws-ecs aws-fargate containers

Awesome ECS

A curated list of guides, development tools, and resources for:

Amazon Elastic Container Service (ECS)

AWS Fargate

This list includes both community created content as well as content created by AWS.

Are you looking for infrastructure as code templates and tutorials for ECS? Containers on AWS is the home for infrastructure patterns and sample code to get you started fast.

Do you prefer video instead? If so check out Containers from the Couch for videos on all things AWS + containers.

Want to add something? Open a PR! 🙂

First steps

Pick your container hosting strategy:

Pick a tool for deploying your application

Older tools The following tools may not be as up-to-date or maintained, but are retained here for reference: - [ECS CLI v1](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_CLI.html) - The original CLI for ECS is designed to be mostly compatible with Docker Compose. It turns a local Docker Compose file into a remote deployment. - [fargate](http://somanymachines.com/fargate/) - Command line tool for interacting with AWS Fargate. With just a single command you can build, push, and launch your container in Fargate, orchestrated by ECS. - [fargate-create](https://github.com/turnerlabs/fargate-create) - A CLI tool for creating new projects based on Terraform templates and [Fargate CLI](https://github.com/turnerlabs/fargate). Supported stacks: - [Web Application (ALB - HTTP/HTTPS)](https://github.com/turnerlabs/terraform-ecs-fargate) - [Network Application (NLB)](https://github.com/turnerlabs/terraform-ecs-fargate-nlb) - [Background Worker (Service)](https://github.com/turnerlabs/terraform-ecs-fargate-background-worker) - [Scheduled Task (Job)](https://github.com/turnerlabs/terraform-ecs-fargate-scheduled-task) - [mu](https://github.com/stelligent/mu) - Automates everything relating to ECS devops and CI/CD. This framework lets you write a simple metadata file and it constructs all the infrastructure you need so that you can deploy to ECS by simply pushing to your Git repo. - [deployfish](https://github.com/caltechads/deployfish) - Write a simplified `deployfish.yml` file describing your deployment and let this tool handle the heavy lifting of deploying your service. - [Airship Terraform for ECS](https://github.com/blinkist/terraform-aws-airship-ecs-service) - [CloudFormation reference architecture](https://github.com/awslabs/ecs-refarch-cloudformation) - An older CloudFormation reference architecture for ECS - [Cloudonaut CloudFormation templates](https://cloudonaut.io/new-cloudformation-templates-ecs-cluster-service-legacy-vpc-wrapper-automated-tests/) - - [empire](https://github.com/remind101/empire) - Control layer on top of ECS that provides a Heroku like workflow - [broadside](https://github.com/lumoslabs/broadside/) - Ruby based command line tool for deploying to ECS - [UFO](http://ufoships.com/) - Ruby based tool for building containers and shipping them to ECS - [bash deployment script](https://spin.atomicobject.com/2017/06/06/ecs-deployment-script/) by [Justin Kulesza](https://twitter.com/JustinKulesza) - [pnzr](https://github.com/jobtalk/pnzr) - Go based tool for building and pushing to ECS, also has integraton with AWS KMS for secrets management. - [deplojo](https://github.com/LabD/ecs-deplojo) - Python based deployment tool using ECS - [convox](https://convox.com/) - Easily build, deploy and scale applications on ECS - [ecsctl](https://github.com/cxmcc/ecsctl) - Open source tool similar to Kubernetes `kubectl` for ECS. - [ecs-deploy](https://github.com/silinternational/ecs-deploy) - Simple but powerful tool for initiating automatic blue green deploys on ECS - [ecspresso](https://github.com/kayac/ecspresso) - Minimalistic: JSON file goes in, service launches - [ecsrun](https://github.com/masterpointio/ecsrun) - Easily run one-off tasks against an ECS Task Definition using a config file based approach. - [shipctl](https://github.com/SKAhack/shipctl) - Tool that supports deploying a task on ECS, rolling back, or just running a one-off task - [ecsdeploy](https://github.com/in4it/ecs-deploy) - A client and simplified web interface for managing your ECS cluster, rolling out and rolling back application versions - [ecs-service](https://github.com/ukayani/ecs-service) - CLI tool for deploying to ECS using CloudFormation with support for .env files for environment specific configuration of your containers - [kms-env](https://github.com/ukayani/kms-env) - CLI tool for managing secrets using AWS KMS in .env files which can be used in conjunction with **ecs-service** to supply secrets to your containers - [ecsq](https://github.com/mightyguava/ecsq) - A developer friendly tool for querying the state of an ECS cluster - [Wonqa](https://www.npmjs.com/package/wonqa) is a tool for spinning up disposable QA environments in AWS Fargate, with SSL enabled by Let's Encrypt. More details about Wonqa on the [Wonder Engineering blog](https://medium.com/wonder-engineering/on-demand-qa-environments-with-aws-fargate-c23b41f15a0c).

Solutions

Reference Architectures

Courses

Blogs

Presentations