I need to setup an environment to host multiple websites (hundreds), each with their own domains and external IP addresses. I was thinking about using Kubernetes, Traefik and Letsencrypt for the SSL certs (in AWS). I have a couple of questions:
Opinion question, opinion answer: Yes. It's not as popular as the nginx ingress controller but a good solution nonetheless.
Generally speaking if you want to support thousands of IPs, you will need an additional load balancer that supports it together with a single ingress controller and also if you either expose your Ingress with a service type LoadBalancer or NodePort.
However, you could actually have multiple ingress controllers, one per IP address each with its own ingressClass option. You'll have to check if your cluster can scale up to thousands of ingress controllers.