Voy a tener varias instancias EC2 en un grupo de autoescalado Elastic Beanstalk en una subred predeterminada en una VPC. La aplicación en estas instancias de EC2 necesita conectarse a un servicio de terceros que utiliza una lista blanca de direcciones IP para permitir el acceso. Por lo tanto, necesito una o más direcciones IP estáticas que puedo dar a este proveedor de servicios para que puedan agregarse a la lista blanca. Tengo entendido que la única forma de obtener una IP estática es obtener una dirección IP elástica. Y solo puedo asociar Elastic IP con una instancia de EC2 a la vez; no puedo asociarla con toda mi subred o puerta de enlace de Internet (¿es esto correcto?). Entonces, ¿necesito una IP elástica para cada instancia de EC2, para que cada instancia se pueda incluir en la lista blanca por separado? ¿Cómo funcionaría eso si el escalado automático agrega otra instancia? ¿Debería tener una instancia EC2 con una IP elástica, y enrutar todo el tráfico saliente a través de esa instancia? Si es así, ¿esa instancia debe ser únicamente para este propósito o puede ser una de las instancias que ejecuta mi aplicación?
fuente
Entiendo que este es un hilo viejo: para alguien que tiene un caso de uso similar ahora, AWS nat-gateway sería una mejor solución.
fuente
No tengo suficiente reputación para comentar las respuestas anteriores, pero quería agregar alguna información que necesitará saber si utiliza una puerta de enlace NAT para lograr esto. Cuando crea una puerta de enlace NAT, selecciona una subred y una dirección IP elástica.
Al principio, acabo de agregar la puerta de enlace NAT a la misma subred en la que estaban mi balanceador de carga elástica y las instancias EC2. Luego, debe agregar la puerta de enlace NAT a su tabla de rutas. Agregué la puerta de enlace NAT como destino para la IP de mi servidor de base de datos externo con el que estaba tratando de contactarme. Esto dio como resultado que las aplicaciones alojadas en mi beanstalk elástico se agotaran. Esto se debe a que intentaban conectarse a esa base de datos externa a través de NAT. Llegaron al NAT, y luego el NAT trató de comunicarse con mi servidor a través de Internet, y lo buscó en la tabla de rutas de la subred en la que estaba, que apuntaba hacia sí mismo, creando un bucle.
La solución es, antes de crear su puerta de enlace NAT, crear una nueva subred solo para NAT para que NAT tenga su propia subred y tabla de rutas. En la tabla de rutas de NAT, dirija todo el tráfico a la puerta de enlace de Internet. En su tabla de ruta principal, apunte su IP externa a la NAT. Luego, cuando sus instancias EC2 intenten conectarse a su IP externa, las buscarán en la tabla de rutas principal (o cualquier tabla de rutas que haya definido para las subredes en las que se encuentran sus instancias), y encontrarán la NAT. Luego, su NAT buscará esa IP en su propia tabla de rutas y buscará Internet.
fuente