Note: This blog post is part of the series on AWS Compute by AvoTechs. If you have landed here from a place other than the overview blog post, We suggest you start with AWS Compute – Virtual machines, containers or serverless
If picking up your laptop and shipping it off to Amazon isn’t an option but you still like the idea of not having to listen to “It works on my laptop” kind of excuses, containers might be the best choice for you! Containers have recently gained popularity due to their superpower to overcome platform dependencies. They essentially create their own environment which works the same everywhere, no matter where it is hosted. At this point, it is worth noting that EKS and ECS are not compute platforms but I decided to mention them in this comparison as they are worth considering when planning your app.
Managed container services have become part of the AWS offering back in 2015 when Amazon ECS (Elastic Container Service) was first introduced. There are currently multiple container services available but ECS and EKS (Elastic Kubernetes Service) are the 2 most popular choices.
Users choose container services from AWS if they wish to outsource operations, availability, patching, scalability and security to Amazon. On top of the container service, the user gets to decide which compute service they want their logic to run on. The available choices are AWS Fargate, EC2 instances, AWS Outposts, AWS Local Zones and AWS Wavelength.
Flexibility of AWS ECS & EKS
When it comes to flexibility, both ECS and EKS offer the option to deploy on different compute services. Be it EC2 (VM) or Fargate (serverless) – AWS has you covered. What’s more, AWS Outposts can even be used to deploy the containers to an on-premise server and manage them from the AWS console. This is also known as a Hybrid Deployment.
AvoTechs Flexibility Grade: 5 (1 – not flexible, 5 – very flexible)
Maintainability of AWS ECS & EKS
The maintenance effort is highly dependent on the chosen compute platform. For Fargate (serverless), the user only worries about the software part of the application, for EC2 we additionally assume the responsibility for OS patches, etc. If AWS Outposts are used, we also need to take care of the network connection of our on-premise server. Since there are vast options, let’s consider the easiest one in our grading – Fargate.
AvoTechs Maintainability Grade: 5 (1 – difficult to maintain, 5 – easy to maintain)
Scalability of AWS ECS & EKS
Similarly, the topic of scalability is closely interlinked with the chosen compute service. For Fargate, scalability is an absolute breeze as it is scalable by design. EC2 – horizontally scalable without major effort. Potential implications might arise when trying to scale AWS outposts as this is highly dependent on our on-premise setup. Since we are specifically talking about ECS and EKS here, let’s grade them as per their abilities and they are really satisfying.
AvoTechs Scalability Grade: *5 ***(1 – not scalable, 5 – very scalable)
In this section we need to differentiate between EKS and ECS. The reason for that is that in the case of the Elastic Kubernetes Service, we additionally need to pay a fixed rate of 0.10$ per hour for each Amazon EKS cluster. Good news is – one cluster can be configured to handle more than one application. ECS has no additional charge – you only pay for the compute platform (EC2, Fargate, Outposts) and the Container Service comes free.
Seeing the above differentiation, stating sample prices does not make sense as they would relate to the compute services rather than the containers themselves.
AvoTechs Cost Grade: 4 (1 – expensive, 5 – cost-effective)
Would you like to find out more about other AWS Compute Services Amazon has to offer? Do you want to see when we recommend which option? Go back to the Overview article and navigate your way around from there.