Hey folks! I'm new here and currently setting up my first production cluster on either EKS or AKS. I'm trying to figure out the best way to expose external traffic for a project that I expect to evolve into 20-30 public-facing microservices in the next year. I'm at a crossroads with two main options: 1. Use a dedicated Load Balancer for each service - it's straightforward but comes with a hefty price tag. 2. Set up a single Ingress Controller like NGINX or Traefik to route traffic. This route is cheaper in the long run but involves more initial complexity. For those with experience, would you choose the simplicity of multiple Load Balancers or take the plunge with Ingress for better long-term cost efficiency? I appreciate any insights on the operational challenges you've faced with either approach. Thanks a lot!
5 Answers
You might only need one ALB with different listener rules for each application instead of a Load Balancer for every single microservice. This can simplify your architecture while keeping costs low.
If your application mainly handles standard web traffic, I'd lean towards using an Ingress controller. It scales better and can manage multiple services without breaking the bank on costs.
Totally agree! This route seems more manageable long-term.
It really depends on your application traffic needs. Aim to deploy as few Load Balancers as possible. Use Ingress for Layer 7 routing unless you need separate Load Balancers for different traffic types or security zones.
If you're on EKS, definitely look into using the ALB controller for Ingress. Consolidating your services under a single AWS Application Load Balancer can simplify management and save time in the future. The initial setup is worth it!
Consider using an external cloud-based Load Balancer for your Ingress. It offers the added benefit of using cloud WAF solutions, which makes security management a lot easier than handling it yourself.

That makes sense! It’s nice to know that sticking with a single Ingress pattern can help keep things cost-effective for web apps.