GithubHelp home page GithubHelp logo

awesome-ecs's Introduction

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.

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

Pick your container hosting strategy:

  • AWS Fargate - AWS Fargate is a technology for Amazon ECS that allows you to run containers without having to manage servers or clusters.
  • Self hosted in EC2 - Running your own cluster of EC2 instances to host your containers gives you the most control over price (ability to run on spot instances or reserved instances) as well as configuration.

AWS Fargate

Setting up Fargate

Application Deployments in Fargate


Self hosted in EC2

Getting Started

Infrastructure as Code

Examples of using tools to describe your ECS infrastructure as code, for automation of deployments:

  • 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.
  • Sample CloudFormation templates for ECS - Examples of launching containers with both public, and private networking, behind a public facing load balancer, as well as behind a private, internal load balancer.
  • CloudFormation ECS - Reference architecture for deploying microservices to ECS in tiered VPC with NAT gateways and two availability zones.
  • Terraform ECS by Armin Coralic - Production ready AWS ECS infrastructure as code with Terraform
  • Airship Terraform ECS by Maarten van der Hoef et al. - Multiple highly documented ECS Modules for deploying ECS Clusters and Services with Terraform
  • CloudFormation Templates by Cloudonaut
  • ecsq - A developer friendly tool for querying the state of an ECS cluster
  • deployfish - Write a simplified deployfish.yml file describing your deployment and let this tool handle the heavy lifting of deploying your service.

Build and Deploy Tools

Tools to help you interact with ECS to launch your containers on your cluster of self managed EC2 instances:

  • coldbrew - Fantastic tool that provisions ECS infrastructure, builds and deploys your container, and connects your services to an application load balancer automatically. Has a great developer experience for day to day use
  • ecs-cli - Docker Compose compatible deployment tool by AWS
  • 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
  • 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
  • Chaos Toolkit - Chaos toolkit supports ECS as a target for chaos engineering

Implementation Guides

Examples of how to do advanced customizations on your ECS cluster:

Open Source

  • Blox - Framework for advanced cluster management and scheduling
  • 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

Continuous Integration / Continuous Deployment

Presentations

Tech Blogs

Courses

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.