Zillion ways to run containers in AWS

Zillion ways to run containers in AWS

Containers have become a popular way to develop, deploy, and manage applications due to their lightweight and portable nature. Amazon Web Services (AWS) offers several options for running containers in its cloud environment, each with its own strengths and limitations. In this blog, we will compare the different services available in AWS for running containers and help you decide which one is the best fit for your needs.

Let's have a look at different ways we can run containers in AWS


AWS Lightsail Containers

AWS Lightsail Containers is a service that allows you to easily run containers on Lightsail, a platform for deploying and managing web applications and workloads. With Lightsail Containers, you can run your containers on Lightsail instances, with automatic scaling, load balancing, and easy management through the Lightsail Console.

Use-case

  • Lightsail Containers can be used as a development and testing environment for containerized applications, allowing developers to quickly test and iterate on their code.
  • Lightsail Containers can be used to run microservices-based applications, making it easier to manage and deploy individual components of an application.
  • Lightsail is best suited for smaller applications which doesn't require a complex container environment.


AWS Lightsail

AWS Lightsail is a platform for deploying and managing web applications and workloads. With Lightsail, you can deploy and manage web applications and workloads, including containers, without having to worry about the underlying infrastructure. Technically it is possible to run containers like good ol days of running containers on virtual machine. But I am willing to debating that there are better ways to run containers :).

Use-case

  • Pretty much same use-cases as Lightsail containers.

AWS App Runner

AWS App Runner is a fully managed service for building and deploying containerized applications. With App Runner, you can define your application in a YAML file, and App Runner will handle the deployment and management of your application, including the provisioning of resources, scaling, and security. It is really very easy to set it up and performs great. It has its limitations but I give it 10 out 10 for its ease to use.

Use-case

  • Simple workload applications usually single container environments.
  • Simple event driven application/service. App Runner can be integrated with other AWS services, such as AWS Lambda and Amazon EventBridge, to build event-driven applications that respond to changes in your environment in real-time.
  • App Runner can be used to automate common DevOps tasks, such as infrastructure provisioning, code builds, and application deployments, freeing up valuable time for developers to focus on writing code.

Elastic Beanstalk

Elastic Beanstalk in the real sense is the OG when it comes to running the containers before the likes or ECS, Fargate, EKS got introduced. Elastic Beanstalk is a fully managed service that makes it easy to run, stop, and manage web applications and services in the AWS cloud. With Elastic Beanstalk, you can run containers without having to worry about the underlying infrastructure, as this is fully managed by AWS. Elastic Beanstalk provides automatic scaling, load balancing, and zero-downtime deployments to help you manage your containers. Elastic Beanstalk is a powerful tool for running containers on AWS. Whether you are building new applications, managing microservices, or automating DevOps tasks, Elastic Beanstalk can help you get started quickly and easily.

Use-case

  • Elastic Beanstalk can be used to modernize legacy applications by running them as containers on AWS, making it easier to manage and scale these applications over time.
  • Elastic Beanstalk can be used to run some complex container based applications. However, it doesn't have the features of a full-fledged orchestrator.

AWS Lambda

AWS Lambda is a serverless compute service that allows you to run code without having to manage the underlying infrastructure. With AWS Lambda, you can run your code in a container, allowing you to build and run serverless applications and services. Lambda started supporting custom images. You can technically, create your image based on the allowed base image and run your service/application feature on the lambda.

Use-case

  • Similar to other lambda executions. you can built your image and can perform custom actions based on the requirement.
  • Event-driven Applications: Lambda can be used to build event-driven applications that respond to changes in your environment in real-time.
  • Lambda can be used to process data from IoT devices in real-time, making it easier to build IoT applications that respond to changes in the environment in real-time.
  • Lambda can be used to run microservices-based applications, making it easier to manage and deploy individual components of an application.

Amazon Elastic Compute Cloud (EC2)

Amazon Elastic Compute Cloud (EC2) is a scalable computing service that allows you to run virtual machines in the AWS cloud. With EC2, you can run containers on virtual machines, giving you full control over the underlying infrastructure.

Use-case

  • It is same as running containers on a virtual machine. Containers can be easily moved between EC2 instances and other cloud providers, making it easier to manage multi-cloud deployments.
  • Running containers on EC2 can provide some cost savings over traditional infrastructure, as containers are more efficient and can be easily scaled to meet changing demand.
  • EC2 provides tools for automating the deployment, scaling, and management of containers, making it easier to manage and deploy applications.

Amazon Elastic Container Service for Kubernetes (EKS)

Welcome to the big boys club. One of the most powerful ways to run container in modern days. Amazon Elastic Container Service for Kubernetes (EKS) is a managed service that makes it easy to run, manage, and scale Kubernetes containers in the AWS cloud. With EKS, you can run containers on AWS without having to worry about the underlying infrastructure, and EKS provides automatic scaling, high availability, and security features to help you manage your containers.

Use-case

  • Pretty much anything to be honest
  • It can run any application big or small. However, it can run doesn't mean it should run. :)
  • EKS (Kubernetes) in general meant for big, distributed and mid to heavy duty applications.
  • If you talk to Kubernetes fan club (I am not the member yet :D) they may believe Kubernetes can run the government as well. The hype (well-deserved) is real.

Amazon Elastic Container Service (ECS)

My favorite and another member of the big boys club. Amazon Elastic Container Service (ECS) is a fully managed service that makes it easy to run, stop, and manage Docker containers on a cluster. With ECS, you can run containers without having to worry about the underlying infrastructure, as this is fully managed by AWS. ECS provides automatic scaling, load balancing, and zero-downtime deployments to help you manage your containers.

Use-case

  • Personally, ECS (with or without Fargate) is hands down my go to platform to run containers. It can be used to run all sorts (big, small, medium) of applications.


AWS Proton

AWS Proton is a service for managing and automating the deployment of containerized applications. With Proton, you can define, manage, and automate the deployment of your applications using templates, making it easy to deploy and manage your applications at scale.

Use-case

  • Proton provides pre-defined templates that simplify the deployment of common applications, making it easier to get started quickly.
  • Proton provides a centralized control plane for managing container-based and serverless applications, making it easier to manage and monitor your applications.

Red Hat OpenShift Service on AWS (ROSA)

Red Hat OpenShift Service on AWS (ROSA) is a fully managed service provided by AWS that makes it easier to run and manage container-based applications using Red Hat OpenShift. ROSA provides a fully managed OpenShift environment, eliminating the need to manage the underlying infrastructure. ROSA provides enterprise-grade support from both AWS and Red Hat, ensuring that you have the support you need to run your applications with confidence.

Use-case

  • Use-case for this is simple, if you wish to run your application in AWS and you have strict requirement to run it on OpenShift, then ROSA is the answer. Apart from this, I really don't see a reason as it can also prove to be bit on expensive side.


App2 Container

App2 Container is a service that allows you to easily run containers on AWS, without having to manage the underlying infrastructure. With App2 Container, you can run your containers in a serverless environment, giving you the ability to run your containers without having to worry about managing the underlying infrastructure.

Use-case

  • App2Container provides an automated process for converting existing applications into containers, eliminating the need for manual configuration and reducing the risk of errors.
  • App2Container generates ECS task definitions and Kubernetes deployment YAML for the containerized application following the AWS best practices for security and scalability by integrating with various AWS services such as ECR, ECS, and EKS.
  • AWS App2Container provides a simplified development and deployment process, making it easier for developers to get their applications up and running on AWS.

AWS IoT Greengrass

AWS IoT Greengrass is a service that allows you to run local compute, messaging, and data caching for connected devices. With AWS IoT Greengrass, you can run containers on edge devices, allowing you to build and run applications that operate at the edge of your network, even when your devices are offline. Although not your daily container orchestrator, but it serves a specific use-case when comes to running the containers.

Running containers on IoT Greengrass is a straightforward process that involves a few step:

  1. Prepare your environment: To run containers on AWS IoT Greengrass, you will need an AWS IoT Greengrass Core device, an AWS account, and the AWS IoT Greengrass Core software installed on the device.
  2. Define your container: You will need to define your container by creating a Docker image that includes the application code and dependencies.
  3. Push your container to a registry: To run your container on AWS IoT Greengrass, you will need to push the Docker image to a registry, such as Amazon Elastic Container Registry (Amazon ECR) or Docker Hub.
  4. Create a Greengrass Group and Deployment: Next, you will need to create a Greengrass Group and Deployment in the AWS IoT Greengrass Console. In the Deployment, you will specify the Docker image to use and the desired number of containers to run on the Core device.
  5. Start your containers: Once the Deployment is created, you can start your containers on the AWS IoT Greengrass Core device. The containers will be managed by AWS IoT Greengrass, which will automatically start and stop containers as needed to maintain the desired number of running containers.
  6. Monitor your containers: You can monitor the status of your containers in the AWS IoT Greengrass Console, where you can view log output, inspect container metrics, and manage the containers as needed.

Use-case

There can be quiet a few use-cases for IoT Greengrass, some of them are:

  • AWS IoT Greengrass can be used to process sensor data from industrial equipment and perform predictive maintenance, reducing downtime and improving operational efficiency.
  • AWS IoT Greengrass can be used to manage and automate building systems, such as lighting, heating, and security systems, to improve energy efficiency and provide a better environment for building occupants
  • AWS IoT Greengrass can be used to collect and process data from sensors in agriculture fields, helping farmers to optimize crop yields and improve food production.
  • AWS IoT Greengrass can be used to automate industrial processes, such as manufacturing and logistics, improving efficiency and reducing costs.


AWS CodeBuild

AWS CodeBuild is a fully managed build service that makes it easy to compile source code, run tests, and produce software packages that are ready to deploy. With CodeBuild, you can run your builds in a Docker container, allowing you to build your applications using your preferred runtime environment. Code Build can be used for a wide variety of reasons, some of them are:

Use-case

  • AWS CodeBuild can be integrated with other AWS services, such as AWS CodeCommit, AWS CodePipeline, and AWS CodeDeploy, to automate the building, testing, and deployment of applications.
  • AWS CodeBuild can be used to build and test applications in a variety of languages, including Java, Ruby, Python, C++, and more.
  • AWS CodeBuild can be used to build and test serverless applications that are built with AWS Lambda and other serverless technologies.
  • AWS CodeBuild can be used to build and test Docker containers and other container images.

EKS Anywhere

EKS Anywhere is a service that allows you to run Amazon Elastic Container Service for Kubernetes (EKS) on any infrastructure, including on-premises and other clouds. With EKS Anywhere, you can run containers on EKS in any environment, giving you the ability to manage and scale your containers across multiple infrastructures.

Use-case

  • EKS Anywhere allows you to run Kubernetes clusters on both AWS and on-premises infrastructure, providing a seamless way to manage your applications and services across multiple environments.
  • EKS Anywhere makes it possible to run Kubernetes clusters at the edge of your network, providing low-latency access to your applications and services and enabling you to build edge-optimized workflows.
  • Some organizations are subject to regulations that require that their data be stored and processed within specific geographical locations. EKS Anywhere provides a way to run Kubernetes clusters on-premises, giving you complete control over where your data is stored and processed.
  • Some organizations require that sensitive data be stored and processed within their own data centers for privacy and security reasons. EKS Anywhere provides a way to run Kubernetes clusters on-premises, giving you complete control over your data and ensuring that it is only accessible by authorized individuals.

ECS Anywhere

ECS Anywhere is a service that allows you to run Amazon Elastic Container Service (ECS) on any infrastructure, including on-premises and other clouds. With ECS Anywhere, you can run containers on ECS in any environment, giving you the ability to manage and scale your containers across multiple infrastructures.

Use-case

  • Pretty much the same use-cases as the EKS Anywhere.
  • ECS makes it possible to use containers to manage your applications and services, even in environments where a traditional cloud-based solution is not feasible or desirable.

Amazon Fargate (ECS/ EKS)

Amazon Fargate is a serverless compute engine for containers that makes it easy to run containers without having to manage the underlying infrastructure. With Fargate, you can run containers without having to worry about managing the underlying infrastructure, as this is fully managed by AWS. Fargate provides automatic scaling, load balancing, and zero-downtime deployments to help you manage your containers.

Use-case

  • This is a powerhouse platform. I have used it for small, medium, big, very big applications. Fargate passes all of these use-case with flying colors.
  • It can be used to run anything from a simple web server to a powerhouse distributed type of application.

AWS Copilot

AWS Copilot is a service that makes it easy to develop, deploy, and manage containerized applications on AWS. With Copilot, you can define, manage, and automate the deployment of your applications using templates, making it easy to deploy and manage your applications at scale. AWS Copilot automates the deployment of applications to AWS services such as Amazon Elastic Container Service (ECS) or Amazon Elastic Kubernetes Service (EKS).

Use-case

  • AWS Copilot makes it easy to deploy and manage microservices-based applications on AWS, providing a streamlined way to build and deploy applications that are composed of multiple, small, independently deployable services.
  • AWS Copilot provides a streamlined way to automate the deployment of applications, making it easier to implement a CI/CD pipeline for containerized applications on AWS.
  • AWS Copilot can be used to deploy and manage containerized applications at the edge of your network, providing low-latency access to your applications and enabling you to build edge-optimized workflows.

AWS Bottlerocket

First of all, how cool is this name?

AWS Bottlerocket is a new, open-source, purpose-built operating system (OS) for hosting containers in the AWS cloud. It is designed to be secure, efficient, and scalable, and to provide a predictable, simple experience for hosting containers. AWS Bottlerocket provides a simple, straightforward approach to hosting containers. It includes only the necessary components, so it's easy to understand, operate, and maintain. AWS Bottlerocket is designed with security in mind and includes features such as secure boot, read-only root file systems, and mandatory access control.

Use-case

  • AWS Bottlerocket is designed specifically for hosting containers and provides an efficient, secure, and scalable option for running containers in the AWS cloud.
  • AWS Bottlerocket is well-suited for microservices architectures, providing a simple, predictable platform for deploying, running, and scaling microservices.


The best way to run containers in AWS will depend on your specific use case and requirements. To determine the best option for you, consider factors such as the level of control and management required, the complexity of your application, and the size and scalability needs of your infrastructure.

In conclusion, each of these services has its own strengths and limitations, and the best service for you will depend on your specific needs and requirements. If you are looking for a fully managed service for running containers, then Fargate, ECS, EKS are your best bet.

To view or add a comment, sign in

More articles by Dinesh Sharma

  • GenAI Powered Chatbot Using Bedrock and Lex

    GenAI Powered Chatbot Using Bedrock and Lex

    Ever wondered how to build your own AI-powered chatbot without diving deep into the complexities of machine learning?…

  • From Bicycle to Spaceship: Navigating the Cloud Transformation Journey

    From Bicycle to Spaceship: Navigating the Cloud Transformation Journey

    Cloud transformation is like a journey one that takes you from the streets of your neighborhood to destinations far…

    6 Comments
  • re:Invent 2024: Day 4 Recap

    re:Invent 2024: Day 4 Recap

    Keynote Highlights from Werner Vogels: Lessons in "Simplexity" Werner Vogels’ keynote at AWS re:Invent 2024 was, as…

  • re:Invent 2024 Day 3 Recap

    re:Invent 2024 Day 3 Recap

    It’s Day 3 of AWS re:Invent, and the cloud conference rollercoaster is in full swing! Today was extra special because…

  • re:Invent 2024: Day 2 Recap

    re:Invent 2024: Day 2 Recap

    After the excitement of Day 1 at AWS re:Invent, which I recapped yesterday, the momentum only picked up on Day 2! Today…

    1 Comment
  • re:Invent 2024: Day 1 Recap

    re:Invent 2024: Day 1 Recap

    AWS re:Invent isn’t just an event, it’s a full-blown tech carnival where innovation meets collaboration, sprinkled with…

  • Farewell to AWS Services: A Nerdy Goodbye

    Farewell to AWS Services: A Nerdy Goodbye

    Well, folks, it looks like AWS has decided to play the role of the grim reaper for some of its services. In a move that…

    1 Comment
  • Drawing AWS with Python (No Art Skills Required)

    Drawing AWS with Python (No Art Skills Required)

    Gone are the days when updating architecture diagrams was a tedious task that often got pushed to the back burner In…

    5 Comments
  • Schedule Your Fargate Pods Organization-Wide Using a magic Lambda

    Schedule Your Fargate Pods Organization-Wide Using a magic Lambda

    Spoiler Alert! There are no magic Lambdas here, just a carefully crafted Lambda function designed to automate the…

  • Scaling Deployments with AWS Lambda

    Scaling Deployments with AWS Lambda

    Hello LinkedIn :) Recently, I've had the pleasure of diving deep into a fascinating use-case involving AWS Lambda and…

Insights from the community

Others also viewed

Explore topics