Running Containers on AWS Fargate

Welcome!

Welcome to the Running Containers on AWS Fargate workshop.

In this workshop, we’re going deploy applications using Amazon Elastic Container Service (Amazon ECS) to orchestrate our containers on top of AWS Fargate using AWS Cloud9 to drive our development and deployment. Amazon ECS and AWS Fargate are deeply integrated into the AWS platform, so we’ll be working with other services along the way including Amazon Elastic Container Registry (Amazon ECR), AWS Identity and Access Management (IAM), Amazon DynamoDB, and AWS developer tools including AWS CodeCommit, AWS CodePipeline, and AWS CodeBuild.

Sections

This workshop is divided into sections each of which have one or more individual modules. Each module describes a scenario of what we’re going to build and step-by-step directions to help you implement the architecture and verify your work. Some modules contain instructions for both the AWS Management Console and the AWS Command Line Interface giving you the option to choose either to complete the task.

Introduction

This is a 200-level workshop designed to illustrate how to deploy containerized applications to AWS without managing clusters or provisioning servers. It contains four modules which start from stratch to create a cluster, a Docker image repository, to build and push a new Docker container image, and to configure a new service to run our container on Amazon ECS using AWS Fargate.

The modules build on each other and are intended to be executed linearly.

Ensure that you’ve followed the setup guide before starting the workshop.

Module Description
Getting Started with Amazon ECS using AWS Fargate Create a new Amazon ECS cluster using the AWS Management Console. At the end of this module, we’ll have a new ECS cluster, supporting infrastructure such as a VPC and subnets, and a small Hello World application running.
Create a Docker Image Repository Create a new Docker registry repository for workshop images in Amazon ECR.
Build and Push a Docker Image Fork a sample application from GitHub which uses an Amazon DynamoDB table to store notable quotations, build it as a Docker container image, and push it to your new Docker image repository.
Create a Service Create a task definition, a load balancer, and a service to run your Docker container image.

CI/CD

Building on the application we’ve deployed in the Introduction section, we’ll create a continuous deployment pipeline to deploy our application.. With continuous deployment, revisions are deployed to a production environment automatically without explicit approval from a developer, making the entire software release process automated.

Module Level Description
Build a Continuous Deployment Pipeline 200 Using AWS CodeCommit, AWS CodePipeline, and AWS CodeBuild, create a continuous deployment pipeline to automatically deploy changes to your application.

Issues, Comments, Feedback?

I’m open source! If you see an issue, want to contribute content, or have overall feedback please open an issue or pull request.

Next

✅  Review and follow the directions in the setup guide, wherein you’ll configure your AWS Cloud9 IDE and setup pre-requisites like an AWS Account.