ECS vs EKS: Which container orchestrator to choose?

Please note that this post, first published over a year ago, may now be out of date.

In the world of IT infrastructure, there is a lot of buzz around containers and how companies are migrating from systems like Elastic Beanstalk, or plain EC2 instances, to Amazon Elastic Container Service (ECS) or to Amazon Elastic Kubernetes Service (EKS). I think it’s fair to say that Kubernetes and EKS are the hot topic, even 7 years after the 1.0 release. Is Kubernetes really worth it and does it suit each and every business? Let’s dig deeper to find out.

The rise of containers

Before I go further into comparisons, I’ll cover the basics: containers, and why they’re gaining such popularity in recent years.

In a more traditional virtualisation world where you manage your hypervisor on each hardware server, virtualisation occurs at a hardware level. This means that each virtual machine contains a virtual copy of the hardware, an application, the application’s libraries, dependencies and the guest OS to run the application.

Instead of virtualising the underlying hardware, containers typically divide up a shared host operating system. Each container’s filesystem consists only of an application and all its dependencies (such as system libraries, or the list of trusted CA certificates). As a result, containers have less overhead and provide a more agile way of handling virtualisation, as opposed to virtual machines. However, the real innovation with containers is about the image format. Unlike virtual machine images (such as Open Virtual Appliance), the expectations around a container image and how to start it are well-defined. Developers can publish an image they make on their own PC and be confident that it’ll start up OK in your cloud environment. Due to their lightweight, containers can significantly decrease the boot time, maximize underlying host resources and reduce infrastructure costs compared to VMs. It’s no wonder why containers have gained such immense popularity in the past decade.

According to Redis, Gartner estimates that ≅90% of global organisations will be running containerized applications in production by 2027.

Photo by Paul Teysen

Why use container orchestration?

In order to deploy, scale and manage containerised applications on a production scale and without downtime, you need automation. This is when container orchestrators come into play. There are plenty of container orchestrators from various cloud providers. Two flagship container platforms from AWS are ECS and EKS.

Amazon Elastic Container Service (ECS) is a highly scalable, high-performance container management service that supports containers and allows you to efficiently run applications on a managed cluster of Amazon Elastic Compute Cloud (Amazon EC2) instances. ECS also provides a Fargate option, which is a serverless compute engine that allows you to use containers without having to manage and patch the underlying EC2 instances.

On the other hand, Amazon EKS is a managed Kubernetes service to run containers in the AWS cloud or on-premises data centers. Similar to ECS, the EKS also provides an option to run your containerized workload as the AWS Fargate type.

Benefits of ECS

Managing ECS is super simple compared to using Kubernetes, including EKS. ECS is a more out-of-the-box platform; it’s much less flexible than EKS - but it includes the essentials for running typical SaaS applications in AWS. ECS definitely ticks the simplicity box, especially if you use serverless compute through AWS Fargate which removes the burden of maintaining the underlying EC2 instances as well.

ECS is a great starting point if you are migrating from the more traditional EC2s and VMs, as it also comes with fully built-in support. If your starting point is outside of the cloud, and you still have an investment in on-premises equipment, Amazon ECS Anywhere lets you use that too.

Want to learn more on the topic? We have a couple of other articles, including Turbocharging your technology strategy with ECS and Fargate . If you’re interested in more about how Fargate looks behind the scenes, read What Powers ECS Fargate.

The ECS control plane costs you nothing to run. This means that having ECS clusters sat idle need not cost money (providing you use Fargate or Fargate spot) - a key financial benefit for some architectures.

Downside of selecting ECS

ECS is compatible with most AWS services, but there can be limitations on integrations with third-party software and systems. Due to its simplicity, ECS can in some cases prove to be limiting when the application and business requirements start to grow in complexity and size. Although it’s AWS proprietary technology, vendor lock-in is less of a concern: using containers typically means that you can switch to a different platform without any changes to your app or how you built it.

Benefits of EKS

Since EKS uses Kubernetes, it’s more flexible and portable: you could migrate your workload to another cloud provider more easily than you could from ECS. This makes it more suitable for complex multi-cloud workload requirements. Compared to Kubernetes on bare metal, EKS means that AWS manages the control plane - including components like etcd, scheduler and Kubernetes API server. EKS also comes with built-in, managed integration to other AWS services, such as AWS Identity and Access Management (IAM). This does mean that even with EKS you have a certain level of vendor lock-in, however on a smaller scale than with ECS. EKS offers you much more control over cluster management and scheduling of resources compared to ECS. Since EKS uses Kubernetes you have access to the open-source community with a large ecosystem of 3rd party tools and add-ons. That ecosystem and the quality of offerings there is what lets Kubernetes adopters build a rich and productive developer experience. If your business requirements mean you need to keep a workload on-premises, AWS also offers Amazon EKS Anywhere, which lets you create and operate Kubernetes clusters on-premises.

Some other key scenarios when you might want to pick Kubernetes/EKS have already been covered by my colleague Tim:

- Does your workload have special scheduling requirements?
- Are you struggling to find the right resource allocations for different workloads?
- Are you looking to customize and simplify your application management?
- Are you already cloud native?
- Have you tried ECS and outgrown it?

Downsides of selecting EKS

EKS requires a fair amount of configuration and experience to set up and run on a production scale. Even relying on a managed control place such as EKS, it’s common to need to invest in new skills and training. As mentioned earlier, EKS removes some of the heavy lifting and responsibility of setting up and maintaining Kubernetes clusters, however, it still requires your IT staff to have an appropriate knowledge of Kubernetes in order to take full advantage of it. The more that you use from the wider ecosystem, the bigger proportion of your container platform that you end up managing yourself. As with ECS, you pay for the compute that you use; you also pay an additional charge of $0.10/hour for each EKS cluster. The additional cost for EKS vs ECS is not significant if you operate just one cluster, however, if you spread your workloads across several Kubernetes clusters, the monthly fees do add up.

Which orchestrator to choose?

Choosing between EKS and ECS largely depends on the size, maturity, and requirements of the business. Businesses should select a container orchestrator most aligned with their application requirements and operational preferences. Businesses in the early phase of embracing containers at scale which are looking for powerful simplicity should start with ECS, as it removes the complexity that EKS can bring. Even though ECS is an Amazon specific technology, it builds on open standards such as OCI. Migrating away - if you ever needed to - is rarely difficult on the ECS side of things.

If you’re designing an architecture for an organisation with larger/hybrid deployments, EKS’ flexibility to optimise infrastructure at scale, and excellent scope for customisation, might make it the right choice. The bottom line is that each business should evaluate both ECS and EKS against their application requirements and management needs, as well as the skills of their IT staff.

Need help?

Do you need expert advice on Kubernetes? We are a Kubernetes Certified Service Provider and have a wealth of experience with Kubernetes, EKS, and containers. Book a Kubernetes review today.

This blog is written exclusively by The Scale Factory team. We do not accept external contributions.

Free Healthcheck

Get an expert review of your AWS platform, focused on your business priorities.

Book Now

Discover how we can help you.

Consulting packages

Advice, engineering, and training, solving common SaaS problems at a fixed price.

Learn more >

Growth solutions

Complete AWS solutions, tailored to the unique needs of your SaaS business.

Learn more >

Support services

An ongoing relationship, providing access to our AWS expertise at any time.

Learn more >