Hay 3 enfoques que pude encontrar para hacer esto. Cloud Formation simplemente lo automatizará, pero primero debe comprender lo que está sucediendo.
1.-Como @gabrtv mencionó usar VPC, esto se presta a dos opciones. 1.1-Dentro de una VPC use una puerta de enlace NAT para enrutar todo el tráfico dentro y fuera de la puerta de enlace. La puerta de enlace tendrá una IP elástica y tráfico de Internet y luego incluirá en la lista blanca la puerta de enlace NAT del lado del servidor. Busque la puerta de enlace NAT en la documentación de AWS.
1.2-Cree una conexión Virtual Private Gateway/VPN a sus servidores back-end en su centro de datos y enrute el tráfico a través de eso. 1.2.a-Crea tus instancias dentro de una subred privada DEDICADA. 1.2.b-Incluya en la lista de toda la subred de su lado, se permitirá cualquier solicitud desde esa subred. 1.2.c Asegúrese de que sus rutas en la Subred sean correctas.
(me estoy saltando 2 a propósito ya que es 1,2)
3.-La manera perezosa: Utilizar, AWS Opsworks que hacer dos cosas: primero : Asignar un fondo de recursos de direcciones IP elástico. 2º: Inicie las instancias LOAD bajo demanda y AUTO asigne una ip elástica del Pool. Para la segunda parte necesitará que las instancias de 24/7 sean su mínimo y las instancias de carga sean su MAX. AWS Opsworks ahora permite que las alarmas de Cloud Watch activen el inicio de la instancia, por lo que es muy similar a ASG. La única desventaja de Opsworks es que las instancias no finalizan sino que se detienen en su lugar cuando la carga baja y que debe "crear" instancias de antemano. Además, depende de Chef solo para iniciar sus instancias, pero es la única forma de obtener asignaciones automáticas de EIP a las instancias recién creadas que pude encontrar.
¡Salud!