<p>I've just deployed websocket based <code>echo-server</code> on <a href="https://aws.amazon.com/eks/?whats-new-cards.sort-by=item.additionalFields.postDateTime&amp;whats-new-cards.sort-order=desc&amp;eks-blogs.sort-by=item.additionalFields.createdDate&amp;eks-blogs.sort-order=desc" rel="nofollow noreferrer">AWS EKS</a>. I see it's running stable and okay but when I was searching for implementation details I was finding only articles that were saying something about <code>nginx ingress controller</code> or <code>AWS application loadbalancer</code> and a lot of troubles with them.</p>
<p>Do I miss anything in my current, vanilla config? Do I need the AWS ALB or nginx ingress controller?</p>
<p>Thank you for all the replies.
All the best.</p>

<blockquote>
<p>Do I miss anything in my current, vanilla config?</p>
</blockquote>
<p>You probably exposed your <code>echo-server</code> app using <a href="https://stackoverflow.com/questions/41509439/whats-the-difference-between-clusterip-nodeport-and-loadbalancer-service-types/67931156#67931156">service type -  <code>ClusterIP</code> or <code>NodePort</code></a> which is fine if you only need to access your app locally in the cluster (<code>ClusterIP</code>) or using your <a href="https://kubernetes.io/docs/concepts/architecture/nodes/" rel="nofollow noreferrer">node</a> IP address (<code>NodePort</code>).</p>
<blockquote>
<p>Do I need the AWS ALB or nginx ingress controller?</p>
</blockquote>
<p>They both are different things, but they have similar common goal - to make your websocket app available externally and <a href="https://stackoverflow.com/questions/45079988/ingress-vs-load-balancer/55161523#55161523">distribute traffic based on defined L7 routing routes</a>. It's good solution if you have multiple deployments. So you need to answer yourself if you need some kind of Ingress Controller. If you are planning to deploy your application into production you should consider using those solutions, but probably it may be fine with service type <a href="https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer" rel="nofollow noreferrer">LoadBalancer</a>.</p>
<p><strong>EDIT:</strong></p>
<p>If you are already using service type LoadBalancer your app is already available externally. Ingress controller provides additional configuration possibilities to configure L7 traffic route to your cluster (Ingress Controllers are often using LoadBalancer under the hood). Check this <a href="https://stackoverflow.com/questions/45079988/ingress-vs-load-balancer/45084511#45084511">answer</a> for more details about differences between LoadBalancer and Ingress.</p>
<p>Also check:</p>
<ul>
<li><a href="https://www.nginx.com/blog/aws-alb-vs-nginx-plus/" rel="nofollow noreferrer">Choosing the Right Load Balancer on Amazon: AWS Application Load Balancer vs. NGINX Plus</a></li>
<li><a href="https://blog.getambassador.io/configuring-kubernetes-ingress-on-aws-dont-make-these-mistakes-1a602e430e0a" rel="nofollow noreferrer">Configuring Kubernetes Ingress on AWS? Don’t Make These Mistakes</a></li>
<li><a href="https://websockets.readthedocs.io/en/latest/howto/kubernetes.html" rel="nofollow noreferrer">WebSocket - Deploy to Kubernetes</a></li>
<li><a href="https://stackoverflow.com/questions/45079988/ingress-vs-load-balancer/45084511">LoadBalancer vs Ingress</a></li>
</ul>
