More about Kubernetes Storage
AWS Elastic Container Service (ECS) is Amazon’s home-grown 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 storage.
In this article you will learn:
- What is ECS and its advantages
- What is Kubernetes and its advantages
- Amazon ECS vs plain Kubernetes
- Amazon ECS vs EKS - comparing managed services
- How to choose between ECS, EKS, or plain Kubernetes
- ECS, Kubernetes and Cloud Volumes ONTAP
What is AWS ECS?
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 (AZ).
ECS provides a convenient API that lets you see the state of the 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:
- Serverless infrastructure - ECS lets you operate containers without having to directly manage virtual machines. The ECS service deploys VMs and manages containers on them without user intervention.
- Built-in security - unlike Kubernetes, Amazon ECS is secured by default, with all containers launched in a Virtual Private Cloud with isolated, secure networking.
- AWS integration - ECS is smoothly integrated with other Amazon services which are useful for containerized workloads, such as Elastic Load Balancing, CloudWatch, CloudFormation, and IAM.
- Spot instances - because containers are immutable, you can run many workloads using Amazon spot instances (which can be shut down with no advance notice) and save 90% on on-demand instance costs.
What is Kubernetes?
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, and secrets and configuration management.
Image source: Kubernetes.io
AWS ECS vs Kubernetes
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:
- Vendor agnostic - unlike Amazon ECS, Kubernetes is a vendor agnostic platform that can run on any cloud provider or on-premises. Kubernetes workloads are portable and support hybrid- and multi-cloud strategies.
- Open source - Kubernetes is supported by a huge open source community, with a large ecosystem of tools and plugins, strong support and an ambitious development roadmap.
- Battle tested - Kubernetes has the most extensive production experience of any container orchestration platform. It is proven to be robust and reliable at virtually any scale.
AWS ECS vs EKS
Amazon EKS is a management platform 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 multi-cloud and hybrid-cloud deployments.|
AWS ECS, EKS, or Plain Kubernetes: Which Should You Choose?
Choosing between Amazon ECS, EKS, and self-managed Kubernetes depends on the size and nature of your project:
- Small deployments - prefer ECS due to its seamless deployment and configuration.
- Large or hybrid deployments - prefer EKS due to stronger customization and improved portability between clouds and on-premise systems.
- Legacy workloads - if you are transitioning to a containerized environment, plain Kubernetes may be the best choice, as it will allow you to build a dev/test/production environment on-premises, and then move it to the cloud if and when required.
ECS, Kubernetes and Cloud Volumes ONTAP
NetApp Cloud Volumes ONTAP, the leading enterprise-grade storage management solution, delivers secure, proven storage management services on AWS, Azure and Google Cloud. Cloud Volumes ONTAP supports up to a capacity of 368TB, and supports various use cases such as file services, databases, DevOps or any other enterprise workload, with a strong set of features including high availability, data protection, storage efficiencies, cloud automation, Kubernetes integration, and more.
In particular, Cloud Volumes ONTAP provides integration with Kubernetes and core AWS services, allowing you to dynamically provision enterprise-grade persistent storage for containerized workloads running on AWS ECS, AWS EKS, or plain Kubernetes.