What are the Different Container Orchestration Platforms on AWS?
After listening to one of the solution architect training sessions about AWS and the different platforms they offered for the deployment of containerised applications, I picked up on the heavy focus on a new offering from AWS called Fargate. This was a service which I had never come across before so my immediate reaction was to research what exactly it was and what made it distinct from the other AWS offerings related to the deployment of containerised applications.
From my research, I gained a better understanding of all the options that AWS provides for deploying containerised applications. The different options available are ECS (Elastic Container Service), EKS (Elastic Container Service for Kubernetes) and Fargate.
ECS vs EKS
Both ECS and EKS are container orchestration platforms. ECS follows a simple model with two main components: scheduler and underlying hosts. The main action of the scheduler is to determine what host the container will run on, how many replicas of the containers will be instantiated and how resources will be allocated to these containers on the underlying hosts they reside on.
EKS is managed Kubernetes which has additional features but also has added complexities meaning it can either be advantageous or even more complex.
Kubernetes is a more expansive container orchestrator offering with features such as network overlay which allows for isolated container communication and for containers to share resources such as storage volumes. These additional features allow for more sophisticated containerised workload deployments which provide more value to enterprises. Being familiar with GCP and their main offering for deploying containerised workloads GKE (Google Kubernetes Engine) and EKS would be the AWS equivalent.
The question is, why would anyone opt for ECS when it is a simpler container orchestrator than EKS? Well, not everyone requires the additional features that come with EKS, for many, a simple way of deploying their containerised applications is sufficient and ECS provides that. Many enterprises do not want to have to deal with the additional components that are associated with Kubernetes such as master nodes. Then comes the issue of additional costs, with ECS you are only paying for each worker node that you launch which is an E2 instance whereas with EKS you pay for the worker nodes as well as the master node which is always running to monitor the cluster. The cost to run a cluster doesn’t come cheap either with an hourly cost of £0.16, this can add up to £112 a month for each cluster.
EKS is packed with a richer feature set thanks to Kubernetes but ECS still has a place and use for many enterprises.
Then there’s Fargate
AWS goes a step further with their Fargate offering which eliminates the need to manage the underlying infrastructure such as the EC2 instances and allows you to just specify the image that you want to deploy and Fargate will take care of the rest. This reduces the hassle that is associated with other container orchestration platforms where resources have to be allocated for a container orchestrator to then deploy containers onto. Due to the ease in setting up this makes it a viable solution for those who are not well versed with Kubernetes. With other container orchestration platforms such as GKE and EKS there is a requirement for prior knowledge on Kubernetes concepts such as deployments, pods, services etc.
In terms of resource, Fargate ensures that resources are only used as long as the container is running. This means you pay per computing second rather than paying for the resources you have reserved regardless if they are being used or not. This is similar to Cloud Functions on GCP where you use the resources on demand. In a way, Fargate can be referred to as the Cloud Functions for containers. With this feature if you have any kind of batch workloads, it would be useful to containerise that job and just run it on Fargate.
If Fargate is utilised properly it can provide a cheaper option than self-management container orchestration platforms such as GKE.
If you would like more information on the different services provided by AWS and how Rackspace can help you with your needs, then click here to find out