AWS Elastic Container Service (ECS) is Amazon’s homegrown container orchestration platform. It excels in ease of use, but is it a real alternative for Kubernetes, the hugely popular de-facto standard for container orchestration?
In this post we argue that comparing ECS to plain Kubernetes is not completely accurate, because ECS offers a fully managed experience which Kubernetes cannot. We also review Amazon Elastic Kubernetes Service (EKS) as a third option that levels the playing field. In addition, we show how NetApp Cloud Volumes ONTAP can help provision storage for ECS, EKS or plain Kubernetes on AWS.
In this article you will learn:
Amazon Elastic Container Service (Amazon ECS) is a container orchestration service that runs and manages Docker containers. It runs clusters of virtual machines on the Amazon cloud, while managing, scaling, and scheduling groups of containers on those machines across multiple Availability Zones (AZs).
ECS provides a convenient programmatic way to check and modify the state of your cluster, perform operations on containers, and directly access Amazon services related to your cluster, such as IAM, CloudWatch and CloudTrail.
Image Source: AWS
Advantages of Amazon ECS include:
Kubernetes is an open source container orchestration framework. It was originally developed by Google, based on years of experience running the world’s biggest containerized systems. Kubernetes is very widely adopted and is today the de-facto standard for container orchestration.
Among the primary features of Kubernetes are service discovery and load balancing, orchestrating storage, including persistent storage, automated rollbacks for containerized applications, self-healing for Kubernetes clusters, secrets, and configuration management.
Comparing Kubernetes to Amazon ECS is not entirely fair. Amazon ECS provides two elements in one product: a container orchestration platform, and a managed service that operates it and provisions hardware resources. Kubernetes offers only one of these elements.
Increasingly, organizations are adopting managed Kubernetes services, which can reduce the complexity of Kubernetes and help them reach production more quickly. Examples of such services are the Amazon Elastic Kubernetes Service (EKS), Azure Kubernetes Service (AKS), and the Google Kubernetes Engine (GKE). These services add a management layer to Kubernetes, making it fully comparable to Amazon ECS.
Advantages of Kubernetes include:
AWS ECS gives you a way to manage a container service in AWS, but what if you want to run Kubernetes from within your AWS services? Amazon Elastic Kubernetes Service (Amazon EKS) is a management platform in AWS for Kubernetes. It is certified by the Kubernetes project, and so is guaranteed to run any existing applications, tools or plugins you may be using in the Kubernetes ecosystem.
Below are some of the key differences between ECS and EKS.
Amazon ECS | Amazon EKS | |
Pricing | ECS itself is free, you pay only for Amazon EC2 resources you use. |
The EKS management layer incurs an additional cost of $144 per month per cluster. |
Ease of deployment | Seamless deployment of tasks directly from the AWS management console. | Configure and deploy clusters via Kops or CloudFormation templates, which is more complex. |
Compatibility | Amazon-specific. | Supports multicloud and hybrid cloud deployments. |
Choosing between Amazon ECS, EKS, and self-managed Kubernetes depends on the size and nature of your project:
When it comes to deploying containerized workloads, both Kubernetes and Amazon ECS have certain limits that can hinder their usage at the enterprise level without help. For instance, costs can be a considerable factor when data in containers needs to be stored persistently, such as in the case of a database. What if the data in the containers needs to be used for testing purposes? This is where NetApp Cloud Volumes ONTAP can help.
NetApp Cloud Volumes ONTAP, the leading enterprise-grade data management solution, delivers secure, proven storage management services built on AWS, Azure, and Google Cloud cloud compute and storage. With the help of NetApp Trident, storage volumes on Azure Disk, Amazon EBS, or Google Persistent Disk can be dynamically provisioned automatically, without any effort on the user’s part.
Cloud Volumes ONTAP supports enterprise use cases such as file services, databases, DevOps, and application workloads. When it comes to Kubernetes storage, Cloud Volumes ONTAP provides Kubernetes integration for persistent storage requirements of containerized workloads, and supports a strong set of features that aren’t available natively in the cloud, including Kubernetes NFS sharing, high availability, cost-effective persistent data storage protection, Kubernetes cloud storage cost reduction with NetApp storage efficiency feature, cloud automation, and more.