Kubernetes on AWS.

This post describes what motivated me and my friend Fred Wynyk, to build a Kubernetes cluster into AWS.

Kubernetes is an open-source system for automating deployment, scaling,
and management of containerized applications developed by Google. AWS has a similar service called ECS Elastic Container Service, both services manage Docker containers.

Unfortunately the ECS service is not available in all AWS regions, we are hosted currently in one of the regions which the ECS is not available, our alternative was Kubernetes.

Now, you start thinking, “Wait! Are you running Kubernetes developed by Google into AWS ? Yeap!”

Since Kubernetes is an open-source project, it supports others cloud providers like AWS and Azure from Microsoft.

To create the cluster in AWS we choose the project Kops that bootstraped
the cluster following all the best-practices to build a fault tolerance architecture, like VPC, Mult-Az and Auto-Scaling Groups.

Kops can also generates a Terraform templates instead of apply the configurations directly on AWS (If you don’t know Terraform, please click here). It allows you to customize configurations like KeyPairs, SecurityGroups and SubnetIds, besides of you can maintain these templates files under a version control system like git or svn.

Our applications could taken 15 minutes to scale up before Kubernetes, when we had some traffic spike causing a bad experience to our users, with Kubernetes this number decreased up to 1 or 2 minutes. Of course, Kubernetes is not the main responsible for the time decrease, but the use of Docker to containerized your application will not turn it production ready, you need to use Kubernetes/ECS or another tool to orchestrate your containers in production.

I hope this short post could inspire you to try Kubernetes!