Containers and Serverless Recommendation Guide

Kubernetes Operating Model

Which one of the following most closely applies to your use case? If you need help, click here.

Managed kubernetes service icon

I would like to use a managed Kubernetes service

You don’t have any unique requirements and would like to take full advantage of AWS’s operational excellence with a highly scalable, reliable, and securely managed Kubernetes environment.
Utilize Red Hat OpenShift icon

I need to utilize Red Hat OpenShift

You or your organization may have made a strategic decision to use Red Hat OpenShift to deploy your applications, or may require the level of out-of-the-box experience and opinions Red Hat OpenShift provide.
Customize control plane icon

I need to customize the control plane (uncommon)

You have unique control plane configuration requirements (e.g., customizing API server flags or getting access to etcd for specific reasons) that cannot be satisfied by Amazon EKS.

Help me understand

If you are here, it's because you have made a decision to use Kubernetes or require a flexible open-source ecosystem with many options that can be tailored to meet your needs.

Kubernetes is a fantastic choice for those who wish to leverage the vast ecosystem of open-source projects to meet your requirements, or for those who want to use the same APIs and skills whether you are deploying to a cloud or on premises.

AWS is the best place to run Kubernetes because you can take advantage of the security, performance, scale, reliability, and availability of AWS. AWS also provides consistent tooling so customers can run their Kubernetes-based applications anywhere they need for cloud migration, latency, availability, or residency requirements.

There are three primary options when running Kubernetes on AWS:

1. Select “I would like to use a managed Kubernetes service” if you want AWS to help you manage Kubernetes. Amazon EKS is a managed Kubernetes service to run Kubernetes in the AWS cloud and on-premises. With Amazon EKS, you can take advantage of all the performance, scale, reliability, and availability of AWS infrastructure, as well as integrations with AWS networking and security services. In the cloud, Amazon EKS automatically manages the availability and scalability of the Kubernetes control plane nodes responsible for scheduling containers, managing application availability, storing cluster data, and other key tasks so you can focus more time on building functionality. On-premises, Amazon EKS Anywhere provides a consistent, fully-supported Kubernetes solution with integrated tooling and simple deployment to AWS Outposts, virtual machines, or bare metal servers. In the vast majority of cases, Amazon EKS is the best option for customers.

2. Select “I need to utilize Red Hat OpenShift” if you are committed to running Red Hat OpenShift. Red Hat OpenShift Service on AWS (ROSA) provides an integrated experience with OpenShift. You can use the wide range of AWS compute, database, analytics, machine learning (ML), networking, mobile, and other services to build secure and scalable applications faster.

3. Select “I need to customize the control plane (Uncommon)“ if you have determined that option 1 and option 2 are not suitable. In rare cases when neither Amazon EKS or ROSA are the best choice, it’s usually because there are very specific requirements for how you manage the control plane. This approach is usually not recommended because of the amount of additional work it requires, but in these rare cases, you can self-manage Kubernetes on Amazon EC2.