The Container as a Service: GCP GKE vs. AWS EKS
In general, Kubernetes is hard to learn and complex to configure. So the container as a service from public cloud providers will save us from installing and operating our own Kubernetes clusters. Google Cloud Platform (GCP) provides Google Kubernetes Engine (GKE): Reliable, efficient, and secured way to run Kubernetes clusters. Amazon Web Services (AWS) also provides Elastic Kubernetes Services (EKS): Highly available, scalable, and secure Kubernetes service. We went through AWS services EKS, ECS and ECR for containerization in the previous post. Since Kubernetes is originally designed by Google, let’s compare GCP GKE and AWS EKS.
The container as a Service Concept
GCP and AWS provide the managed services and use the same container as a service concept. The main idea is making easy to deploy, manage, and scale containerized applications using Kubernetes. Both public cloud providers run highly available and scalable Kubernetes clusters on their platforms. GCP GKE provides high availability of its clusters in multi-zonal or regional. AWS EKS provides high availability across multiple AWS availability zones to eliminate a single point of failure. You can scale up the nodes easily through both providers’ consoles. You can use the cluster autoscaler to automatically scale regional clusters on GCP GKE. But you need to manual setup cluster autoscaler on AWS EKS. Both public cloud providers provide monitoring service. GCP GKE does this on its Stackdriver with logs, events, and metrics to help you understand your application’s behavior in production. AWS EKS does this with its CloudWatch Logs. AWS EKS is also integrated with its CloudTrail to capture all API calls for EKS as events. Both public cloud providers have the option to support GPU powered nodes for machine learning frameworks e.g. TensorFlow.
Let’s find out which one is easy to launch. To be fair, I tried the sample guest book on both GCP GKE and AWS EKS. GCP GKE has one-page instruction to configure and deploy the guest book on GKE. You can also click the Try an interactive tutorial from the Settings and Utilities after you login GCP console. Then follow the instruction by clicking Try Kubernetes Engine. I like the way to access the tutorial from GCP’s console. It is easy to follow the steps instead of switching the pages between the console and the tutorial.
AWS EKS, on the other hand, has multiple steps and configurations before you can launch the guest book application. You can get the guest book running in 5 minutes on GCP GKE but at least 10 minutes on AWS EKS. So it is easier to launch an application on GCP GKE than on AWS EKS.
Both public cloud providers actively work with the Kubernetes community. So they both support many add-on features to enhance the usability of a Kubernetes cluster. For example, both providers support Calio to secure networking especially in the multi-tenant environments. GCP GKE supports Calio as a network plugin to enable network policies for inter-pod communication. AWS EKS also provides Calio integration by installing Calio with manual setup.
Another fascinating add-on example is Knative. Knative is Kubernetes-based platform to build, deploy, and manage modern serverless workloads. GCP GKE supports Knative on Kubernetes and Istio to support deploying and serving of serverless applications and functions.
GCP GKE is cost-effective. There is no charge on cluster management. You pay only for the infrastructure (e.g. VM, storage, services) that is visible to you. AWS EKS, on the other hand, you pay $0.2 per hour ($144 per month) for each AWS EKS cluster that you create. Plus AWS resources (e.g. EC2 instances or EBS volumes) you create to run your Kubernetes worker nodes.
GCP GKE is easier to configure and operate at this moment. The Kubernetes has a large, rapidly growing ecosystem. The container as a service is evolving fast. We will continue to see better cluster management, high availability, scalability, and many add-ons features from these public cloud providers. The competition between GCP and AWS will be beneficial to the end-user.
GCP has a great Kubernetes Comic for you to learn Kubernetes and try it on GKE:
AWS has a great video for you to deep dive into EKS: