Overview of building/deploying multi-container Applications into Amazon ECS

Overview

Amazon Elastic Container Service (ECS) is a cluster service the simplifies Container Management at scale using Amazon EC2 instances. If you want to build/deploy a Docker based Application leveraging the scalability of Amazon ECS, CloudMunch DevOps Template can simplify this activity. 

You can review what a CloudMunch DevOps Template is and how you can leverage it to simplify your Application Delivery. 

Amazon ECS DevOps Template

Now that you understand what CloudMunch DevOps Templates are and how you can use them to simplify your DevOps activities, let's review what the Amazon ECS Template includes.

 

As you can see from the diagram above, this Template creates an Application in CloudMunch with a three stage Delivery Pipeline that enables you to

  1. Build your Application code in Docker Containers
  2. Deploy on a single Host using Docker Compose in the Dev stage
  3. Deploy on Amazon ECS for Test and Release stages

This Template also creates Tasks for you to progress your application build through the stages, launch Environments in different stages and provide end-to-end application Insights.

Pre-requisites

  • Application code in GitHub repository (public or private)
  • Docker Hub account
  • Docker Host details

Optional requirements

  • GitHub Organization account
  • JIRA account
  • SonarQube account

Assumptions

  • Docker Compose is used package the application Containers and the compose.yml is in the source control repository
  • Amazon ECS Task definition is in a file in the same source control repository  
  • You have a Docker Host on AWS for which you have ssh access and has enough resource availability to deploy all the application containers

Template Documentation

Check out the following articles on using the Template and configuring your Application

Creating the Application with the Template

What gets created by the Template

Performing Continuous Delivery actions

Launching and managing Environments

Getting end-to-end Application Insights