Elastic Container Service (ECS)

Container-related services

Essentials

  • Container management service that supports Docker

  • It allows you to easily create and manage a fleet of Docker containers on a cluster of EC2 instances.

    • Higher Instance Utilization

    • Consistency between all environments

    • Microservices

    • Continuous Deployment - automate builds

    • Load Balancing (ELB)

    • Autoscaling

Components

  • Docker Image

  • Container Registry (ECR)

  • Task Definitions

    • Docker Images

    • CPU, Memory

    • Launch Type - EC2 or Fargate (managed, serverless)

  • ECS Cluster

ECS Agent

  • Runs on each EC2 instance in the ECS cluster

  • It communicates information about the instances to ECS, including:

    • Running tasks

    • Resource utilization

  • The ECS agent is also responsible for starting/stopping tasks (when told to by ECS)

ECS Tasks

  • Actual representation of a Task Definition on an EC2 instance inside of your container cluster.

  • ECS agent will start/stop these tasks based on instruction/schedule

Task Definition

  • A JSON formatted text file that contains the "blueprint" for your application, including:

    • Which container/docker image to use

    • The repository (container registry) the image is located in

    • Which ports should be open on the container instance

    • What data volumes should be used with the container

Container/Docker Image

  • Built from a Dockerfile

    • A plain text file (script) that specifies all of the components that are included in the container.

    • Instructions for what will be placed inside a given container.

  • Contains all the downloaded software, code, runtime, system tools, and libraries (as outlined in the Dockerfile)

    • i.e. If the Dockerfile specifies PHP to be downloaded and installed, then the container/Docker Image will have PHP downloaded and installed.

Elastic Container Service for Kubernetes (EKS)

  • Manages availability and scalability of Kubernetes control plane nodes

    • Starts and stops containers

    • Schedule containers

    • Replaces unhealthy nodes

Last updated

Was this helpful?