Parece Balanceador de carga de aplicativos é sua melhor aposta.
We need to support the ACME Protocol for getting Let's Encrypt or AWS ACM SSL Certificates
O AWS ACM é definitivamente uma opção mais fácil com o ELB / ALB.
We need to have sticky connections for the websockets (until one node goes down)
Tick.
The Connection between the Load Balancer and the Backend Servers needs to be encrypted
Você pode ter certificados auto-assinados em seus contêineres, a ALB ficará feliz com isso.
Each of our customers is having an own domain, so we need to support incoming HTTPS-Connections for several hundred different domains.
Tick.
Multiple different domains may not share one ssl-certificate to prevent lookups of our customer base
Existe um limite de 25 certs por ALB - acho que pode ser aumentado através de um ticket de suporte. Mesmo que não, você pode configurar vários ALBs, talvez em diferentes regiões para diferentes subconjuntos de clientes.
The load balancer needs to find new containers from the same service.
Isso fará parte da implantação do seu contêiner.
Veja ECS (Elastic Container Service) , AWS Fargate (plataforma de contêiner sem servidor) e AWS EKS (Serviço Elastic Kubernetes) . Essas são maneiras diferentes de executar contêineres docker na AWS, cada uma com vantagens, desvantagens e preços diferentes. E todos eles funcionam perfeitamente com Balanceadores de carga de aplicativos .
Se preferir, consulte Balanceador de carga de rede , mas terá de lidar com a terminação SSL nos contêineres, incluindo distribuição e rotação de certificados SSL (isso pode ser feito por meio de armazenamento compartilhado como S3 ou EFS ).
Espero que ajude:)