awesome-ecs

ECS guide

A curated collection of resources and guides for Amazon Elastic Container Service (ECS) development and deployment.

A curated list of awesome ECS guides, development tools, and resources

GitHub

3k stars
156 watching
322 forks
last commit: 8 months ago
Linked from 1 awesome list

awsaws-ecsaws-fargatecontainers

Awesome ECS / First steps

Amazon ECS Core Concepts Introduction to core concepts of Amazon ECS, including what are containers, why it is important to decouple applications from their underlying compute infrastructure, how ECS works, and what integrations that ECS has with the rest of AWS
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

Awesome ECS / Pick your container hosting strategy:

Amazon EC2 or AWS Fargate? Which compute capacity makes more sense for your workload: serverless AWS Fargate, or EC2 instances?

Awesome ECS / Pick your container hosting strategy: / Amazon EC2 or AWS Fargate?

ECS capacity providers linked to EC2 auto scaling groups If you pick EC2 capacity learn about and and consider as the

Awesome ECS / 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

Awesome ECS / Pick a tool for deploying your application / AWS Cloud Development Kit

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. Read more about

Awesome ECS / Pick a tool for deploying your application

CloudFormation 4,694 17 days ago You can choose to write CloudFormation templates to describe your deployment directly, in which case these sample templates will help. Check out
Terraform ECS Blueprints Production ready AWS ECS infrastructure as code with Terraform
Troposphere + ECS 4,931 28 days ago For Python users can help create CloudFormation templates. This example shows how to create an ECS deployment using Troposphere
ECS CLI v1 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 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 108 about 1 month ago A CLI tool for creating new projects based on Terraform templates and . Supported stacks:

Awesome ECS / Pick a tool for deploying your application / fargate-create

Web Application (ALB - HTTP/HTTPS) 426 17 days ago
Network Application (NLB) 62 over 2 years ago
Background Worker (Service) 14 about 5 years ago
Scheduled Task (Job) 47 over 3 years ago

Awesome ECS / Pick a tool for deploying your application

mu 974 over 4 years ago 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 90 9 days ago Write a simplified file describing your deployment and let this tool handle the heavy lifting of deploying your service
Airship Terraform for ECS
CloudFormation reference architecture 1,693 over 1 year ago An older CloudFormation reference architecture for ECS
Cloudonaut CloudFormation templates
empire 2,688 12 months ago Control layer on top of ECS that provides a Heroku like workflow
broadside 44 over 3 years ago Ruby based command line tool for deploying to ECS
UFO Ruby based tool for building containers and shipping them to ECS
bash deployment script by
pnzr 31 about 6 years ago Go based tool for building and pushing to ECS, also has integraton with AWS KMS for secrets management
deplojo 19 over 1 year ago Python based deployment tool using ECS
convox Easily build, deploy and scale applications on ECS
ecsctl 115 over 3 years ago Open source tool similar to Kubernetes for ECS
ecs-deploy 1,971 about 1 month ago Simple but powerful tool for initiating automatic blue green deploys on ECS
ecspresso 826 10 days ago Minimalistic: JSON file goes in, service launches
ecsrun 14 over 2 years ago Easily run one-off tasks against an ECS Task Definition using a config file based approach
shipctl 12 almost 6 years ago Tool that supports deploying a task on ECS, rolling back, or just running a one-off task
ecsdeploy 257 17 days ago A client and simplified web interface for managing your ECS cluster, rolling out and rolling back application versions
ecs-service 12 about 7 years ago CLI tool for deploying to ECS using CloudFormation with support for .env files for environment specific configuration of your containers
kms-env 17 over 1 year ago CLI tool for managing secrets using AWS KMS in .env files which can be used in conjunction with to supply secrets to your containers
ecsq 91 over 1 year ago 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

Awesome ECS / Solutions

Service Discovery

Awesome ECS / Solutions / Service Discovery

Using built-in ECS Service Connect
Using Consul
Using Weaveworks
Using linkerd
Using HAProxy

Awesome ECS / Solutions

Amazon ECS Scalability Best Practices
Target tracking based application scaling
Step scaling policies for application scaling
Service Connect (Envoy Proxy based service mesh built-in to Amazon ECS)
AWS App Mesh
Using Amazon Elastic File System example in AWS Cloud Development Kit
Using Amazon Elastic File System example in CloudFormation
Using Amazon Elastic File System example in AWS Copilot
AWS Secrets Manager + Amazon ECS
Using Parameter Store and IAM Roles for Tasks
Using ECS Task roles for managing AWS credentials
The right way to store secrets using Parameter Store
Open source tool for automatically getting secrets from SSM into your docker environment 20 over 1 year ago
Scaling from 10 to 16k+ tasks in a single ECS cluster
Monitor cluster state with Cloudwatch event stream
React to ECS events such as crashed containers using a serverless function
Run an ECS Task on every cluster instance
Accessing Rails console inside of an ECS task 15 over 6 years ago
AWS CodePipeline 851 almost 2 years ago
Atlassian Bamboo
JetBrains TeamCity
Lambda
CircleCI
Shippable
Gitlab
SemaphoreCI
Rolling blue/green deploy in place
Canary Deploy 168 about 6 years ago
Isolated Regression Testing
Watchbot 197 about 1 month ago This tool by helps you run data processing across an ECS cluster in response to external events
ecs-export 142 about 1 year ago A tool for exporting ECS cluster metrics to Prometheus for advanced querying
docker-elk-ecs 14 over 8 years ago Connecting Amazon ECS container logs to an ELK (Elasticsearch, Logstash, Kibana) stack
Sample task definitions 264 over 3 years ago Sample task definitions for running applications like Nginx, Tomcat, Gunicorn, Wildfly, Kibana, and Jetty as containers under Amazon ECS

Awesome ECS / Reference Architectures

Bun JavaScript container that uses AWS SDK to connect to DynamoDB A tiny hit counter application. It demonstratres launching a Bun JavaScript container, with an IAM role that grants it access to use a DynamoDB table as it's state store
NGINX Reverse Proxy sidecar container on AWS ECS A common architecture for serving a website or API from a container
Mythical Misfits 335 6 months ago Deploy a sample application to serverless AWS Fargate capacity
Cats n' Dogs 169 about 4 years ago 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
Deploy Jupyter notebook container with Amazon ECS High cost, high performance machine learning playground, orchestrated by Amazon ECS on specialized AWS Inferentia enabled hardware

Awesome ECS / Courses

ECS Workshop Learn how to deploy a 3 tier, polyglot, microservice based application to AWS Fargate
Cloudskills: The beginners guide to running Docker containers on AWS
Simplilearn: AWS ECS Tutorial
Microservices with Docker, Flask, and React Learn how to build, test, and deploy microservices powered by Docker, Flask, and React on Amazon ECS!
AWS Developer: Optimizing on AWS Learn how you can optimize your applications on AWS with Amazon ECS!
Udemy: ECS Deep Dive
Cloud Academy: Introduction to ECS
Coursera: Building Containerized Applications on AWS

Awesome ECS / Blogs

Run a PHP application on AWS Fargate An in-depth guide to run a Laravel app on AWS Fargate with Github Actions for deployment
Deploying a Rails app to Fargate Step by step walkthrough of deploying a Ruby + RDS app, with helpful debugging tips
How to use AWS Fargate and Lambda for long-running processes in a Serverless app Great tutorial showing how to leverage the power of long running docker containers in Fargate alongside Lambda. Example application processes video files to extract thumbnails using just S3, Lambda, and Fargate... no EC2
Setting up service discovery for AWS Fargate using CloudFormation
Using the Clair image scanner with Fargate, ECR and CodeBuild/CodePipeline 27 about 6 years ago
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
Chaos testing with ECS Chaos toolkit supports ECS as a target for
Private subnets tutorial
End-to-end TLS traffic How to setup end-to-end TLS from client to container, as well as from container to container
Docker for .NET Developers

Awesome ECS / Presentations

Amazon ECS Scalability Best Practices
Running your Dockerized application(s) on AWS EC2 Container Service by
Microservices on AWS with Weaveworks
Running a Virtual World via ECS Linden Labs on their usage of ECS
Advanced Task Scheduling with AWS ECS
Instacart on running microservices on Amazon ECS
Building Next-Generation Applications with Amazon ECS How Meteor Built Galaxy on Amazon ECS
Amazon ECS at Coursera: A General Purpose Microservice

Backlinks from these awesome lists:

More related projects: