TurboTechLab Logo

AWS Container Services in a Nutshell

The AWS container services includes the list of compute services managing the containerized workloads and the related set of services such as the registry for the containerized builds, the services those enable us run these containerized builds on-premise and so on.

1. EKS/ECS Vs EC2

The EC2 Service that we have seen under AWS Compute Services, provides a Virtual machine for running our workloads. But, in order to run containerized builds, we need to install a container orchestration framework such as Docker Swarm or Kubernetes. The ECS or EKS simplify those requirements by providing managed container orchestration service which uses EC2 for running it's containers.

  • Whereas the ECS provides a AWS Managed Container Orchestration,
  • the EKS provides a managed Kubernetes Orchestration service.

The digram below shows, how the ECS and EKS can run on EC2 or Fargate, what options are available for running them on our on-premise datacenters, which managed deployment option can simplify the user experience in deploying it's containerized applications and so no.

Let's move on to find out and discuss on each of those specific scenarios with some simple use cases.

AWS in Nutshell - Container Services Cheatsheet

2. What queries do these services address for you ?

In line with the objective of the nutshell module, our focus would be on highlighting the big picture. We will look ...

Elastic Container Service(ECS):(Provisioned Server)

  • I need to deploy my containerized workloads on EC2 instances. Which AWS service can simplify my job of container orchestration that includes deploying, scaling and integrating with other AWS services.
    • With ECS service you can provision the desired EC2 instance types to run your workloads.

Elastic Kubernetes Service(EKS):

  • Our organization operates across multiple cloud providers or works on hybrid cloud setup. We are looking for a standardized container orchestration platform that can run consistently across different environments.
    • Similar to ECS, EKS provides a contanier orchestration service but, it uses Kubernetes(K8s) for the purpose.
    • The ECS is native to the AWS Cloud and integrates seamlessly with the other AWS services. Whereas the EKS could still be a prefered choice while operating on a multi-cloud environments or more complex microservices application setups.

Launch with Fargate:(Serverless)

  • Both ECS \ EKS can run using Fargate for running workloads in a serverless mode.
    • In a serverless setup you need not have to provision any EC2 instance.
    • You can simply specify your choices for OS, CPU, memory and networking requirements and AWS can take care of the provisioning and managing the workloads for you.

Running ECS or EKS On-Premise

  • AWS ECS Anywhere
    • We understand that we can use the simplicity of ECS container orchestration on-premise using AWS Outpost. But, we just want the ECS on-premise and fine with using other AWS services from cloud. Hence, we do not want to invest in the AWS Outpost hardware. Could you suggest us some cost effective AWS service for running AWS ECS clusters at our on-premise datacenters ?

  • AWS EKS Anywhere
    • It's a very similar scenario where you want to go with the flexibility of Kubernetes orchestration at your on-premise datacenters?


3. Brief Descriptions, Features & Usages of the Container Services

ServiceDescriptionUsage scenarios
Registry Service
Amazon Elastic Container RegistryAWS managed container image registry service.

Cross-Region and cross-account replication : It a configuarble feature to make it easier for us to have our images where we need them.
Image scanning : We can configure our repositories for scan on push to identify software vulnerabilities in our container images.
Lifecycle policies: This feature can help with managing the lifecycle of the images and cleaning up unused old images.
Pull through cache rules: It enables us pull repositories in remote public registries and cache that in our private Amazon ECR registry.Amazon ECR will periodically reach out to the remote registry to ensure the cached image in your Amazon ECR private registry is up to date.
Container Orchestration
Amazon Elastic Container Service (ECS)Fully managed container orchestration service..

- It helps deploy, manage, and scale containerized applications.
- ECS Service is free, you only pay for the associates services that you use.
- Amazon ECS can run with Amazon EC2 in AWS cloud,

- We can use it with Amazon ECS Anywhere or AWS Outpost in on-premise datacenters.

- AWS Fargate is built on AWS ECS to run, scale and manage servless containerized workloads.
Amazon Elastic Kubernetes Service (EKS)Run containerized applications using Kubernetes orchestration on AWS.

- Similar to ECS, EKS creates Kubernetes clusters on EC2 instances or Fargate.
AWS ECS provides simplicity and seamless intergration with other AWS sevices compared to AWS EKS option. But, here are the use cases where we might EKS over ECS:

Multi-Cloud or Hybrid Deployments: If your organization operates across multiple cloud providers or utilizes a hybrid cloud setup, Kubernetes provides a standardized container orchestration platform that can run consistently across different environments.
Complex Application Workloads: Kubernetes provides a more feature-rich and flexible orchestration system, allowing you to define complex deployment strategies, and utilize advanced networking and storage options.
Red Hat OpenShift Service on AWSManaged Red Hat OpenShift clustersIt's a service operated by Red Hat and jointly supported with AWS to provide fully managed Red Hat OpenShift.
Serverless Deployment
AWS FargateServerless compute for containers

AWS Fargate works with ECS and EKS and AWS manages the scaling, load balancing and availability without any prior provisioning.

AWS takes care of managing the workloads based on your choice for OS, CPU, memory and networking requirements.

With Amazon ECS on AWS Fargate, you only pay for the CPU and memory resources your tasks use.
AWS Fargate can be used for a variety use cases such as web applications, APIs, microservices , data processing and analytics.

Savings Plans that offers significant discounts includes serverless usage with Fargate or Lambda.
(Serverless usages are not supported by the Reserved Instance plans.)
Managed Deployment
AWS App RunnerBuild and run containerized web apps at scale

The App Runner makes it easy to deploy your code or container image without the need for you to understand, provision, scale, or manage any AWS compute, networking, and routing resources.

If you are choosing between App Runner and Beanstalk, it is recommended to go with the App Runner. In case you find the need for a more fine grained control over your infrastructure, you can switch over to the Beanstalk.
It's a relatively new and similar to AWS Elastic Beanstalk, suitable for running scalable containerized web applications and microservices.
Deployment Tools
AWS CopilotCommand line tool for containerized applications

AWS App2Container(A2C)Containerize and migrate existing applications

A2C is a command line tool to help you containerize applications running on your on-premise datacenters, so that you can easily move them into ECS, EKS or Apprunner in AWS cloud.
- App2Container does not need source code for the application to containerize it.
- You can directly containerize applications running on the application servers, so that you can lift and shift them easily into AWS cloud.
On-premise Deployment
Amazon ECS AnywhereEnjoy the simplicity of AWS cloud on-premise for containerized workloads.
- Supports temporarily disconnected network.
- Suitable for data processing on edge such as factory floors, before sending it to AWS cloud for further analytics.
- Run machine learning (ML), image processing, 3D visualization, big data, and other applications without transferring your data to AWS.
Amazon EKS AnywhereDeploy Kubernetes on-primise with ease.

Simplify on-premises Kubernetes management with default component configurations and automated cluster management tools.
Amazon EKS Anywhere along with Amazon EKS Distro, simplifies the management of your on-premises Kubernetes environment.
Amazon EKS DistroSimplifies EKS deployment on-premise or in cloud.

Its a Kubernetes Distribution that includes binaries and containers of open-source Kubernetes, etcd , networking, and storage plugins, tested for compatibility.
AWS Distro takes care of version compatibility issues, updating critical security patches, and provides necessary support so that you can focus more on you business and application development.