• Stars
    star
    2,797
  • Rank 16,284 (Top 0.4 %)
  • Language
  • Created over 7 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

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.

Want to add something? Open a PR! πŸ™‚

First steps

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.
  • Terraform ECS by Armin Coralic - Production ready AWS ECS infrastructure as code with Terraform
  • 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 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 - 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.
  • Airship Terraform for ECS
  • CloudFormation reference architecture - An older CloudFormation reference architecture for ECS
  • Cloudonaut CloudFormation templates
    • empire - Control layer on top of ECS that provides a Heroku like workflow
  • broadside - 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 Justin Kulesza
  • pnzr - Go based tool for building and pushing to ECS, also has integraton with AWS KMS for secrets management.
  • deplojo - Python based deployment tool using ECS
  • 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

Solutions

Reference Architectures

Blogs

Presentations

Customer stories

More Repositories

1

clui

Command Line UI toolkit for Node.js
JavaScript
1,661
star
2

aws-cloudformation-fargate

Sample CloudFormation templates for how to run Docker containers in AWS Fargate with various networking configurations
599
star
3

socket.io-chat-fargate

A demo application showing how to deploy a scalable realtime chat application powered by Socket.io, Node.js, Docker, and AWS Fargate. Includes full text search powered by OpenSearch Serverless
JavaScript
419
star
4

s3-upload-stream

A Node.js module for streaming data to Amazon S3 via the multipart upload API
JavaScript
344
star
5

nodejs-aws-workshop

Learn to deploy a Node.js API using Elastic Beanstalk, AWS Lambda, Elastic Container Service, Amazon Fargate, and Kubernetes
JavaScript
184
star
6

ecs-cloudformation

Simple, production ready CloudFormation templates for launching containers on Amazon ECS and AWS Fargate
183
star
7

exiftool

A Node.js wrapper around exiftool, providing metadata extraction from numerous audio, video, document, and binary filetypes
JavaScript
79
star
8

autohotkey-windows-10-apple-magic-keyboard

AutoHotKey script that allows you to use an Apple Magic Keyboard in Windows 10 with Apple familiar keyboard shortcuts.
AutoHotkey
45
star
9

aws-ecs-deployment-patterns

A visual guide to deployment patterns on Amazon EC2 Container Service
39
star
10

screenshot-service

JavaScript
24
star
11

greeter-app-mesh-cdk

An example of how to use AWS Cloud Development Kit to setup an AWS App Mesh service mesh in AWS Elastic Container Service
JavaScript
22
star
12

greeter-cdk

Example AWS Cloud Development Kit app that deploys the greeter microservice stack
JavaScript
19
star
13

emma-sdk

Node.js client for the Emma API
JavaScript
16
star
14

webkit-html-to-image-phantomjs

A simple Phantom.js webkit HTML to Image conversion service
JavaScript
8
star
15

json-template

A satirical programming language inspired by MongoDB queries.
JavaScript
7
star
16

standard-deviation-stream

A Node.js class for pulling stats from a stream.
JavaScript
6
star
17

ecs-fargate-benchmark-templates

A collection of CloudFormation templates that can be used to test various task launch scenarios of ECS on EC2 and ECS on Fargate
6
star
18

classic-interview-algorithms

Collection of algorithms that are asked as classic interview questions
JavaScript
5
star
19

inlets-on-ecs-anywhere

An AWS Cloud Development Kit architecture for deploying Inlets as an ingress for an ECS Anywhere cluster
TypeScript
5
star
20

aws-cdk-nyan-cat

CSS
4
star
21

deploying-container-to-fargate-using-aws-copilot

Deploying a container to AWS Fargate using AWS Copilot
JavaScript
4
star
22

archer-nyan-cat

CSS
4
star
23

fargate-security-con414

4
star
24

nathanpeck

3
star
25

aws-cdk-advanced-ecs-scheduling

JavaScript
3
star
26

string-reverse

A sample application that just reverses a string, for an AWS Copilot demo
JavaScript
2
star
27

ecs-patterns-vitepress

CSS
1
star
28

Dumatenseb

Version controlled dwarf fortress world
1
star
29

wordladder

A JavaScript code interview snippet
JavaScript
1
star
30

euphoria

A bunch of code I wrote in 2004 in the EUPHORIA language
Eiffel
1
star
31

sumtime

Simple Nodes.js service for high volume data point sums and ranges
JavaScript
1
star
32

cdk-and-copilot

TypeScript
1
star
33

aws-cdk-github-actions

Test repo for experimenting with AWS CDK + Github Actions
TypeScript
1
star
34

liquid-clock

Liquid clock widget for Mac OS X Dashboard
JavaScript
1
star
35

ecs-ami-metadata-endpoint

A CloudFormation template that helps you setup your own endpoint for fetching the ECS AMI metadata
1
star
36

greeter

Sample code for three microservices that construct a greeting
JavaScript
1
star