Solución:
Elastic Load Balancer de AWS es realmente elástico en dos niveles, como se describe aquí: http://shlomoswidler.com/2009/07/elastic-in-elastic-load-balancing-elb.html
El primer nivel es el propio equilibrador de carga. Para asegurarse de que ELB pueda escalar a cualquier volumen que tenga y explotar a cualquier volumen que encuentre de repente, AWS asigna un nombre de host DNS “estático” (por ejemplo, MyDomainELB-918273645.us-east-1.elb.amazonaws.com). Ese nombre de host apunta a varias direcciones IP. Puede ver eso (desde una línea de comando) ejecutando
$ host MyDomainELB-918273645.us-east-1.elb.amazonaws.com
MyDomainELB-918273645.us-east-1.elb.amazonaws.com 172.31.7.2
MyDomainELB-918273645.us-east-1.elb.amazonaws.com 172.31.11.33
La segunda forma de elasticidad dentro del ELB es, obviamente, que ELB dirige la consulta a una de sus instancias EC2 en el grupo.
Entonces, puede ver que intentar asignar una dirección IP estática al balanceador de carga sería contraproducente.
El uso de una instancia EC2 como proxy inverso también parecería contraproducente, ya que crearía un cuello de botella incluso antes de llegar al ELB. También podría crear su propio equilibrador de carga.
La solución recomendada (que ha señalado) es crear un CNAME que apunte al nombre de host de ELB (que no cambiará).
es decir, my-app.mycompany.com -> MyDomainELB-918273645.us-east-1.elb.amazonaws.com
Esto le permitiría integrar su aplicación escalable, detrás del ELB dentro de su dominio.
No estoy seguro de entender completamente por qué no puede crear un CNAME en su DNS o qué tiene que ver eso con dirigir el tráfico de correo electrónico, ¿puede explicarlo?
Una nueva característica en AWS (creo que se anunció en Re: Invent 2017) permite IP estáticas con Network Load Balancers (NLB). NLB solo puede manejar la capa 4 (TCP) y no las especificaciones HTTP (capa 7).
Puede asignar una dirección IP elástica por zona de disponibilidad.
Para obtener más información, consulte la publicación del blog de AWS o la documentación de NLB.
El “Classic Load Balancer” y el “Application Load Balancer” no admiten direcciones IP estáticas. Si necesita una función que solo estos proporcionan, debe recurrir a la CNAME
solución descrita anteriormente.
El soporte de AWS publicó recientemente un blog sobre este tema que aprovecha NLB para proporcionar IP estática al balanceador de carga clásico y de aplicaciones: https://aws.amazon.com/blogs/networking-and-content-delivery/using-static-ip- direcciones-para-balanceadores-de-carga-de-aplicaciones /
Resumen de la solución como se describe en la publicación.
Terminamos con un oyente TCP en un NLB que acepta tráfico y lo reenvía a un ALB interno. El ALB termina TLS, examina los encabezados HTTP y enruta las solicitudes según las reglas configuradas a grupos de destino con sus instancias, servidores o contenedores. La función AWS Lambda mantiene todo sincronizado al observar el ALB en busca de cambios de dirección IP y actualizar el grupo de destino NLB. Al final, tendremos algunas direcciones IP estáticas que son fáciles de incluir en la lista blanca y no perderemos ninguno de los beneficios de ALB. Tenga en cuenta que enviaremos todo el tráfico a través de dos balanceadores de carga.