Move to Containers

This section assumes that you have already completed sections 2. Database Migration and 3. Server Migration.

Amazon Elastic Container Service (ECS) Overview

Amazon Elastic Container Service (Amazon ECS) is a fully managed container orchestration service. You can choose to run your ECS clusters using:

  • AWS Fargate launch type, which provides serverless compute capabilities for containers, or
  • EC2 instances that you manage.

We recommend to use the AWS Fargate launch type to run the application without the hassle and undifferentiating heavy lifting of provisioninig, scaling, managing and securing the backend infrastructure.

Please see below for diagram that shows the general architecture of Amazon ECS using the AWS Fargate launch type:

ecs-ec2type-arch

Amazon ECS core components:

Amazon ECS Cluster is a logical grouping of resources.

Task Definition is a JSON file, that describes one or more containers (up to a maximum of ten), that form your application. You can think of a task as the blueprint for your application.

Task is the instantiation of a task definition within a cluster. After you have created a task definition for your application within Amazon ECS, you can specify the number of tasks that will run on your cluster.

Services - Amazon ECS allows you to run and maintain a specified number of instances of a task definition simultaneously in a cluster. This is called a service. If any of your tasks should fail or stop for any reason, the Amazon ECS service scheduler launches another instance of your task definition to replace it and maintain the desired count of tasks in the service depending on the scheduling strategy used.