What is our primary use case?
I use this to develop my products. I use it internally in my company and in the other projects I have been working on for the deployment and managing the services which I'm deploying into the Amazon EKS infrastructure. I have not actually been involved with automated patching, as my role has predominantly been as a developer setting up how we deploy our applications into Kubernetes. That's primarily where I've gained experience, not on the server management side where the patching is done, so I'm not sure how the patching works or what benefits it could offer in that context. However, I can discuss how I manage my CI/CD pipelines, application deployment, and how I use Amazon EKS for deployment. That is the part I have experience with.
What is most valuable?
I have been using Amazon EKS, and I started with ECS first, which is the Elastic Container Service where I can deploy my workloads. ECS is also one of other managed services from AWS, but it is not supporting Kubernetes. We wanted a platform where we could have an orchestration platform for Kubernetes. Hosting our own Kubernetes server is a very tedious job. Kubernetes itself is a very complex tool to manage and requires a lot of resources and knowledge to build a working solution. That's where Amazon EKS comes into the picture as a managed service built on top of a Kubernetes engine, offering many tools, such as CLI integrated tools or through their console to quickly set up a Kubernetes cluster, which otherwise is a tedious job.
With that offering, it is very easy to set up the Kubernetes cluster in Amazon EKS, and it is very easy to manage the nodes we have there, such as what instances we need. Since it's an AWS offering, we select a variety of EC2 instances available, and it integrates with it nicely. The same applies to the infrastructure as a service tool, IaaS, such as Terraform. It is very easy to create and manage Amazon EKS clusters through Terraform. Overall, it offers a lot of tooling and saves a lot of time compared to setting up and managing a Kubernetes server ourselves.
A specific feature of Amazon EKS is that Kubernetes is open source, and all its capabilities are based on that. The main advantage is launching and managing a Kubernetes server becomes very easy, as I receive out-of-the-box support for other AWS service integrations with Amazon EKS. For example, services such as AWS IAM directly integrate whenever I want to set up access control or security measures on my Kubernetes server. EC2 offers out-of-the-box support when setting up Kubernetes nodes. All this setup we need to do otherwise becomes much easier with Amazon EKS.
Regarding measuring the impact of Amazon EKS on my organization's ability to manage complex workflows effectively, there are measurable metrics we use. Whenever we set up any project, it is crucial to ensure we understand the availability and scalability of our applications. When I set up any application, I look at how we will be able to scale whenever there is a requirement for higher loads. To measure the Amazon EKS platform's effectiveness in this regard, I evaluate the different methods available for scaling the application. For instance, based on CPU and memory consumption, I can scale or use scalability tools such as KEDA. KEDA helps us scale based on various factors, such as the number of requests my application receives or the load on my service based on metrics. These tools can be easily installed on my Amazon EKS server without restrictions. Availability is crucial when setting up a Kubernetes cluster, especially when designing for a global audience using Amazon AWS. The options to configure multi-region and multi-AZ setups are incredibly valuable, as these features ensure high availability without complex traditional setups required for on-premise hosting.
What needs improvement?
One area I observed during setup was that while managing it through CLI and Terraform, there are many possibilities for setup and infrastructure updates. However, I believe the console experience could improve. In the AWS console, when trying to set up an Amazon EKS cluster, there were limitations on certain features I encountered a few months back while checking. EKS frequently updates, so I don't know if there's a new release. However, I found some features that I could not manage through the console, requiring me to use CLI or Terraform. It would be beneficial if we could have all features supported through the console, providing full management capabilities there.
For how long have I used the solution?
I have been working with this tool for around two years now.
What do I think about the scalability of the solution?
My current organization has not been using self-healing nodes, but I have used it in some earlier projects and organizations I worked with. When we decided to move away from containerization services such as ECS, we wanted a better orchestration platform that could easily handle those requirements. Kubernetes comes with many features for scalability, which otherwise we would have to manage ourselves with scripts. While Kubernetes is a good choice, it comes with its own learning curve, and understanding all the details is a big task. Services such as Amazon EKS, or maybe GKE for Google, provide the confidence that we will benefit from the orchestration framework that Kubernetes offers while also setting it up and managing it easily. We gain all the advantages that Kubernetes has as an engine without having to invest a great deal of time learning and configuring everything thanks to managed services such as Amazon EKS.
How are customer service and support?
Regarding technical support, I recall one instance with Amazon EKS. I faced an issue with configuring pods in EKS that required access to other AWS services, such as IAM roles or S3 buckets. The setup was through OIDC providers in EKS, which set up trust relationships with IAM roles. There was a problem with OIDC provider setup a few years back when EKS was newer. I reached out, and I received good support when I submitted a ticket for the issues with the OIDC provider. They helped resolve the issues related to the trust relationship, identifying mistakes that needed fixing.
How would you rate customer service and support?
Which solution did I use previously and why did I switch?
In my current company, I don't use it, but in my earlier company, we started with ECS, another AWS offering where we deployed our containers. However, as our deployment expanded, the limitations in scalability prompted us to explore better options. We began to reach a point where more than 30 or 40 instances of our services were running, and there was a need to support these across different regions. ECS offered some level of scalability, but it was not as customizable as Kubernetes, so we decided to transition from ECS to Amazon EKS to harness its full capabilities.
What's my experience with pricing, setup cost, and licensing?
Using Amazon EKS as a cluster is free. The pricing only applies when I add the instances and set up nodes. For instance, when I add memory-optimized nodes, the applicable AWS pricing for those instances comes into play. Essentially, the pricing revolves around the nodes added, not the other configurations I'm attempting to set up.
Which other solutions did I evaluate?
Regarding the pricing of nodes, I find that it generally offers good value. I'm not certain what the comparative costs look against other platforms, such as OCI from Oracle that is known to offer lower pricing, but it ultimately depends. For example, AWS has recently introduced Graviton-based servers, which claim to be cost-saving, although I haven't used them myself. AWS provides several options, allowing me to choose configurations that suit my needs regarding CPU and memory. While I don't have firm details about enterprise pricing options or upfront reservations that may provide discounts, what I appreciate is the flexibility in selecting from various instance categories to meet specific requirements.
What other advice do I have?
Based on my experience with Amazon EKS support, I would rate it a nine out of ten overall.
Which deployment model are you using for this solution?
Public Cloud
If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?
Amazon Web Services (AWS)
Disclosure: My company does not have a business relationship with this vendor other than being a customer.