EKS Cluster and Ingress-NGINX

Ingress-NGINX is a popular reverse proxy and load balancer. In this example, I demonstrate a complete EKS cluster with an ingress controller and a sample app to verify the installation.
EKS with Ingress-NGINX contains everything required to spin up a new cluster and expose an application via the Ingress-NGINX controller. Sample app.
Why do we need the AWS Load Balancer controller?
Without the LB controller, Ingress-NGINX provisions a load balancer using NodePort as the target type. VPC CNI and the LB controller enable target type ip, allowing traffic to flow directly to the pod's IP and port.

| Advantages of Ingress-NGINX over the ALB controller |
|---|
| Services can be configured using ClusterIP — not exposed on the local network |
| Traffic routed directly from the ingress controller to the pod and its port |
| Ingress metrics (Prometheus) available within the cluster |
| No IAM permissions required (LB controller requires IAM) |
| Cert-Manager can be used for SSL certificate management |
Resources
- VPC with 2 private and 2 public subnets
- VPC CNI add-on with prefix delegation
- AWS Load Balancer controller
- Ingress-NGINX controller