Container Services

Containers are packages of software that contain all of the necessary elements to run in any environment. Simply speaking, they are just virtualized environments which has all dependencies (configuration, runtime environment and additional packages) to run a particular code (application). This makes them run on top of any operating system hence are OS platform agnostic.

AWS App Runner, is one of the many such container service offered by AWS with a focus on web applications or APIs.

ECR

There is another service called ECR (Elastic Container Registry) which is a service for storing, managing and deploying container container images such as Docker images. It is like a library where one keep all the Docker images so they can be easily accessed and used later.

Working of ECR:

Image Repository: Users can create repositories in ECR to store Docker images. Each repository can hold multiple image versions, making it a centralised hub for container images.

Image Push and Pull: Developers can push (upload) their Docker images to ECR, while deployment environments can pull (download) the images for running containerized applications.

Integration with ECS and EKS: ECR seamlessly integrates with ECS and EKS, simplifying container deployment and orchestration.

ECS and EKS

There are two container orchestration services offered by AWS, namely, Amazon Elastic Container Service ECS and Amazon Elastic Kubernetes Service EKS. Container orchestration services are tools that help manage the deployment, scaling, and operation of containerized applications. The main difference as EKS is Kubernetes based specifically and ECS supports Docker & other Open Container Initiative (OCI) standards based containers.

For ECS or EKS, user has to select two options for Compute Engine; they are EC2 and AWS Fargate. If EC2 is selected as compute engine, the onus to manage scaling and defining the compute resources such as no. of resources such as vCPU, RAM etc. and also the no. of such instances. AWS Fargate on the other hand is a serverless compute engine for use with container orchestration services. i.e. the user don't have to manage anything around scaling no. of instances to run containers. That part is taken up by AWS in the form of Fargate.

Last updated