DigitalOcean Kubernetes VS AWS EKS from My Perspective when Used Both of Them
Tags: kubernetes, digitalocean, aws, devops
Published: 2020-01-28 03:09:01


Digital Ocean and AWS show their support for Kubernetes with creating special product for Kubernetes which we can use directly for each cloud. Each of them has their advantages and disadvantages. With this article, I would like to share my experiences during use each of the services. 
Here are a few summaries I can conclude using both of the services:

### Creating the cluster
Digitalocean support creating Kubernetes cluster directly with their control panel and CLI, Although you can't find official support for creating cluster with CLI(only in community question). Find the docs how to do it at
[Digital Ocean Docs with control panel](https://www.digitalocean.com/docs/kubernetes/how-to/create-clusters/) and [Digital Ocean Docs with CLI](https://www.digitalocean.com/community/questions/can-we-use-doctl-as-a-cli-to-create-and-destroy-kubernetes-clusters)

For Kubernetes Cluster with AWS, you need to create the cluster on top of the VPC. If you don't specify the VPC, it will create the new one. If you want to create the cluster on top of exiting VPC, you can follow my guide at [here](https://dev.to/iilness2/practical-basic-approach-for-running-aws-eks-with-existing-vpc-2e1m)

### Support Kubernetes Version
For Kubernetes version, Looks like Digital Ocean always support the last three version from Kubernetes. You can see at below (when this article publish)
![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/i8jew27nw5fv1s6mook1.PNG)

For AWS side, it's a little bit different. AWS doesn't support a latest Kubernetes version that fasts. When publishing this article, this is what AWS support for Kubernetes version right now:
![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/oco3dzzqxisswya1ttq3.PNG)
Check full documentation at [here](https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html)

### Ingress support
Digital Ocean supports all popular ingress controllers like the Nginx, Contour, HAProxy, and Traefik. You just need to choose one of them.

AWS itself has their ingress controller, which support and used their ALB services. Here the [docs](https://docs.aws.amazon.com/eks/latest/userguide/alb-ingress.html#w243aac23b7c17c10b3b1)
and How to use it in real case, you can follow this [guide](https://dev.to/iilness2/practical-way-to-setup-redirect-http-to-https-with-aws-eks-3m5i)

Another ingress controller which support by AWS is Nginx controller for NLB. this is the [docs](https://aws.amazon.com/blogs/opensource/network-load-balancer-nginx-ingress-controller-eks/)

### Support by third party (marketplace)
Digital Ocean has a marketplace that supports their Kubernetes services directly. You can check below or open [here](https://marketplace.digitalocean.com/category/kubernetes)
![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/5toeructrtjo34dvjkg3.PNG)

For AWS, You can check this [docs](https://aws.amazon.com/about-aws/whats-new/2019/09/aws-marketplace-now-supports-paid-container-software-on-amazon-elastic-kubernetes-eks/) which they announce, some of paid container supported at EKS

### Cost
For Cost, Digital Ocean gives a free for the cluster. We only need to pay for worker nodes we used. Check at images below:
![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/57v4dbl0bb8um06tpmd6.PNG)
or check [here](https://www.digitalocean.com/pricing/)

AWS just announce they cut a cost for deploy the cluster (yes, we still need to pay for their cluster services and for each worker node we used).

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/z4hn3msqduytjkkdj8pk.PNG)
Full news check at [here](https://aws.amazon.com/blogs/aws/eks-price-reduction/)

AWS also apply some restriction for total pods which we can deploy and have access to the interfaces. Check [here](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI). So we need to be extra cautious when we plan our cluster.

### Conclusion
From the several comparisons above, we can conclude, Every platform have their advantages and disadvantages. Looks like AWS will be more good if we use their Kubernetes product with their supporting application like ALB, VPC, etc. If not, Maybe we can consider using Kubernetes services from Digital Ocean since their Kubernetes services support almost all the open source like ingress directly. Try to match with your needs is the key. Have fun when doing the explore.

I think that's it for this article discussion. Leave a comment at below about your thoughts! Thanks.