Comparison of Public Cloud Container Services
What are the key differences between the container services on AWS, Azure and GCP? We find out in our latest tech deep dive.
Containers have been the game-changing technology in cloud computing of the last decade. With the help of containerisation, it is now possible to run scalable and secure applications at a lower cost. All the leading cloud computing providers—AWS, Google Cloud, and Azure—offer container-level virtualisation as a managed service with a variety of different levels of orchestration and management.
Historically, with Infrastructure-as-a-Service (IaaS), you didn’t have to worry about buying the hardware, and after that, with Platform-as-a-Service (PaaS), you no longer had to worry about installing an OS and additional software. Now, with container services, you can just pack your applications as containers and let the cloud do its magic.
AWS, Google Cloud and Azure each offer multiple container services, each with a different focus on orchestration. This blog will compare these services, covering their critical functions, as well as their advantages and disadvantages.
AWS Container Services: ECS, EKS and Fargate
l services to run containers—Elastic Container Service (ECS) and Elastic Kubernetes Service (EKS):
- ECS is a scalable orchestration service to start, scale, and stop containers in a cluster. In ECS, containerised applications are defined and deployed as task definitions. ECS handles the creation and orchestration of containers in the cloud.
- EKS is a managed Kubernetes control plane service that lets you enjoy all the benefits of Kubernetes via its Kubernetes API. You can create scalable deployments, install complex applications with Helm charts, and use the Kubernetes dashboard.
Regarding pricing, you pay for the compute resources for your applications using ECS and EKS. In EKS, there is a surcharge of $0.10 per hour per Kubernetes cluster, or $72 monthly. For compute resources, you can use EC2 machines or a serverless provider such as Fargate in AWS for both ECS and EKS. We suggest you use EC2 for long-running servers and Fargate for functions and distributed microservices.
The top pros and cons of these services are summarised as follows:
Advantages | Disadvantages | |
ECS |
|
|
EKS |
|
|
In summary, if you are exploring container services, ECS is a good choice, as it is the most fully featured container orchestration engine on AWS. On the other hand, if you are looking for Kubernetes-level flexibility, you should go with EKS.
Google Cloud Platform’s Container Services: GKE and Cloud Run
Google is the primary driver of containers and their underlying technology. For decades, every core Google service, such as Gmail and Google Search, has run as containerised applications in Google’s data centres. The company’s knowledge of and experience with operating a huge number of containers created the foundation for Kubernetes and the container services in Google Cloud Platform—Google Kubernetes Engine (GKE) and Cloud Run:
- GKE is the most equipped and mature managed Kubernetes service in the wild. You can create and manage highly scalable clusters, even with the maximum of 15,000 nodes and with a control plane distributed over multiple regions. GKE also offers the latest features of Kubernetes with security, vulnerability scanning, and data encryption.
- Cloud Run is a serverless platform used to run highly scalable applications packaged as containers. The service creates an abstraction between the application layer and the infrastructure to enrich the developer experience. In addition, Cloud Run follows open-source standards such as Knative to avoid vendor lock-in.
Regarding pricing, GKE is similar to other Kubernetes providers where you pay for the worker nodes and a standard hourly fee per cluster for the Kubernetes control plane. In Cloud Run, you’re only billed for the actual usage of the containers, which means zero cost if you don’t invoke any functions.
The primary pros and cons of these two services can be listed as follows:
Advantages | Disadvantages | |
GKE |
|
|
Cloud Run |
|
|
The distinction between the two container services is clear for Google Cloud Platform: If you are looking for a battle-tested Kubernetes solution, you should go for GKE. On the other hand, Cloud Run is the best option for running functions packaged as containers.
Azure Container Services: AKS and ACI
Microsoft Azure is the most popular choice for enterprises for business tools and cloud options. Azure offers two essential container services—Azure Kubernetes Service (AKS) and Azure Container Instances (ACI):
- AKS is the managed Kubernetes service where Azure controls all the master nodes in terms of upgrades, monitoring, and networking. It aims to provide Kubernetes and its extensive API to run applications and consume the integrated Azure services.
- ACI is the serverless container service of Azure, for which you do not need to provision the compute layer, namely servers. ACI’s primary focus is to create containers in a couple of seconds for small-scale applications, automated tasks, and cron jobs.
Regarding pricing, AKS does not incur costs for the control plane, and you only need to pay for the worker VM nodes. Similarly, ACI bills you only for the container groups that are actually running.
The pros and cons of the two services are provided below:
Advantages | Disadvantages | |
AKS |
|
|
ACI |
|
|
Similar to Google Cloud Platform, Azure’s container services are goal-oriented and well-separated. It would help if you either go for a managed Kubernetes service with AKS or a serverless platform with ACI.
Summary
The container services from the three main providers and their service types are summarised in the table below:
Service Type | AWS | GCP | Azure |
Container Orchestration | ECS | – | – |
Kubernetes | EKS | GKE | AKS |
Serverless Container | Fargate | Cloud Run | ACI |
Choosing a provider and service is not straightforward, as it depends on multiple factors such as application architecture, cloud provider integration, operational experience and budget. However, there are some guidelines for choosing the best service.
If you have just started playing around with containers, AWS ECS is a good option, as it directly focuses on container orchestration. When it comes to Kubernetes, GCP GKE is the best choice given its organic roots to Kubernetes and its ecosystem. If you’re looking for short-lived containers and functions, both ECS with Fargate and Azure ACI are the way to go. However, you should not forget to consider being close to your data sources, such as object storage or databases, when choosing the container service from a cloud provider.
In cloud platforms, you are not only choosing the best container service but also how you are investing your time, money, and the future of your business. Although containerisation offers a lot in terms of portability and flexibility, you still need to design your applications, work on the delivery pipeline, and handle further dependencies of the public cloud. All of this means you should choose a container service carefully and seek professional support when building the foundation of your cloud infrastructure.
At Ekco, our cloud-native practice enables you to drive application transformation. Reach out today to learn how we can help evolve your application approach and innovate faster.
Question?
Our specialists have the answer