A curated list of guides, development tools, and resources for Amazon Elastic Container Service (ECS). This list includes both community created content as well as content created by AWS.
Do you prefer video instead? If so check out Containers from the Couch for videos on all things AWS + containers.
Building Blocks of Amazon ECS - Learn about the basic building blocks of ECS and how they fit together to fully understand how it works and how you can use it!
ECS Workshop - A detailed workshop that guides you through creating a simple microservice deployment, load testing it, and monitoring it.
AWS Copilot - The getting started guide for AWS Copilot helps you deploy your first simple static website container on Fargate.
Pick your container hosting strategy:
AWS Fargate - AWS Fargate allows you to launch containers directly using the ECS API, without having to manage any EC2 servers. You are billed for the amount of CPU and memory you provisioned for the container.
Self managed EC2 - For really large deployments running your own cluster of EC2 instances to host your containers gives you the most control over price and configuration. You are billed for the underlying EC2 instance as long as it runs, no matter whether it was running containers or not, so it is your responsibility to keep those EC2 instances busy if you want to be cost efficient.
Capacity providers - ECS capacity providers automatically launch and stop EC2 instances on your account so you always have enough capacity to run your containers.
ECS Anywhere - You can connect ECS to your own on-premise datacenter or machine and ECS can use it as capacity to run your tasks
Pick a tool for deploying your application
AWS Copilot - The easiest starting experience for launching your local container on Fargate. This commandline tool helps you build and deploy your application, as well as deploy CI/CD pipelines that automatically rebuild and redeploy your application on Git push. It creates infrastructure as code templates for you behind the scenes.
AWS Cloud Development Kit - AWS CDK is an SDK that lets developers define and deploy AWS infrastructure using familiar programming languages, often the same language that the application itself is coded in. CDK creates CloudFormation automatically behind the scenes.
aws-ecs - This module provides simple low level constructs for creating ECS and Fargate services. It gets about 100k downloads per week on NPM, so it is quite popular as a choice.
aws-ecs-patterns - A more beginner friendly interface to CDK. These patterns help you setup simple things like a "load balanced service" or a "scheduled task"
ecs-service-extensions - This CDK module provides the most extendable interface for ECS services. It lets you deploy an ECS service and then optionally attach extensions to it, which do things like add the service to a service mesh, or add an observability sidecar, etc.
Docker Compose - If you use Docker Compose to launch your containers locally it now has an integration to deploy containers directly to ECS.
CloudFormation - You can choose to write CloudFormation templates to describe your deployment directly, in which case these sample templates will help.
Troposphere + ECS - For Python users Troposphere can help create CloudFormation templates. This example shows how to create an ECS deployment using Troposphere
Older tools
The following tools may not be as up-to-date or maintained, but are retained here for reference:
ECS CLI v1 - The original CLI for ECS is designed to be mostly compatiblewith Docker Compose. It turns a local Docker Compose file into a remote deployment.
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 - A CLI tool for creating new projects based on Terraform templates and Fargate CLI. Supported stacks:
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 - Write a simplified deployfish.yml file describing your deployment and let this tool handle the heavy lifting of deploying your service.
convox - Easily build, deploy and scale applications on ECS
ecsctl - Open source tool similar to Kubernetes kubectl for ECS.
ecs-deploy - Simple but powerful tool for initiating automatic blue green deploys on ECS
ecspresso - Minimalistic: JSON file goes in, service launches
ecsrun - Easily run one-off tasks against an ECS Task Definition using a config file based approach.
shipctl - Tool that supports deploying a task on ECS, rolling back, or just running a one-off task
ecsdeploy - A client and simplified web interface for managing your ECS cluster, rolling out and rolling back application versions
ecs-service - CLI tool for deploying to ECS using CloudFormation with support for .env files for environment specific configuration of your containers
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 - A developer friendly tool for querying the state of an ECS cluster
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.
Courses
Free
ECS Workshop - Learn how to deploy a 3 tier, polyglot, microservice based application to AWS Fargate
Watchbot - This tool by Mapbox helps you run data processing across an ECS cluster in response to external events
ecs-export - A tool for exporting ECS cluster metrics to Prometheus for advanced querying
docker-elk-ecs - Connecting Amazon ECS container logs to an ELK (Elasticsearch, Logstash, Kibana) stack
Sample task definitions - Sample task definitions for running applications like Nginx, Tomcat, Gunicorn, Wildfly, Kibana, and Jetty as containers under Amazon ECS
Reference Architectures
ECS Microservices Orchestration - Automated deployment for complete ECS Fargate Cluster using Terraform. This template provide features like Service Discovery with Cloudmap, Autoscaling, Container Insights, Workers, Scheduled tasks, Public and Private Services, Blue/Green deployment, ALB routing and CI/CD using CodePipeline and CodeBuild.
Cats n' Dogs - A fun workshop that covers service and container-instance auto-scaling, spot-fleet integration, container placement strategies, service discovery, secrets management with AWS Systems Manager Parameter Store, among other things.
A lighter way to deploy to ECS/Fargate - combining update-service/task data from several sources including metadata of the docker image itself to deploy new versions.
Awesome Awesome Node.js A curated list of awesome lists that are about or related to Node.js. Inspired by the awesome list thing, going deeper down the rabbit hole. �� Meta stuff about this awesome li
A curated list of awesome things related to Vite.js This awesome list is for Vite 2.x and onward. Vite 1.x's list is archived. Resources Official Resources 文档 GitHub Repo Release Notes Vue 3 Docs Awes
The Lithe Project Development Team Awesome CryptoNote A curated list of awesome CryptoNote open-source blockchains, resources, projects, and shiny other things related.Many projects are derived from f