Genere una dirección IP saliente estática mediante una función de Lambda, Amazon VPC y una arquitectura sin servidor - Recomendaciones de AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Genere una dirección IP saliente estática mediante una función de Lambda, Amazon VPC y una arquitectura sin servidor

Creado por Thomas Scott (AWS)

Entorno: producción

Tecnologías: contenedores y microservicios; DevelopmentAndTesting

Servicios de AWS: AWS Lambda

Resumen

En este patrón se describe la forma de generar una dirección IP saliente estática en la nube de Amazon Web Services (AWS) mediante una arquitectura sin servidor. Su organización puede beneficiarse de este enfoque si quiere enviar archivos a una entidad empresarial independiente mediante el protocolo seguro File Transfer (SFTP). Esto significa que la entidad empresarial debe tener acceso a una dirección IP que permita que los archivos pasen por su firewall. 

El enfoque del patrón le ayuda a crear una función de AWS Lambda que utilice una dirección IP elástica como dirección IP de salida. Si sigue los pasos de este patrón, puede crear una función de Lambda y una nube privada virtual (VPC) que enrute el tráfico saliente a través de una puerta de enlace de Internet con una dirección IP estática. Para usar la dirección IP estática, debe adjuntar la función de Lambda a la VPC y sus subredes. 

Requisitos previos y limitaciones

Requisitos previos

  • Una cuenta de AWS activa. 

  • Permisos de AWS Identity and Access Management (IAM) para crear e implementar una función de Lambda y para crear una VPC y sus subredes. Para obtener más información, consulte Rol de ejecución y permisos de usuario en la documentación de AWS Lambda.

  • Si planea usar la infraestructura como código (IaC) para implementar el enfoque de este patrón, necesitará un entorno de desarrollo integrado (IDE) como AWS Cloud9. Para obtener más información, consulte ¿Qué es AWS Cloud9? en la documentación de AWS Cloud9.

Arquitectura

El siguiente diagrama muestra la arquitectura sin servidor para este patrón.

En el diagrama, se muestra el siguiente flujo de trabajo:

  1. El tráfico saliente deja NAT gateway 1 en Public subnet 1.

  2. El tráfico saliente deja NAT gateway 2 en Public subnet 2.

  3. La función de Lambda se puede ejecutar en Private subnet 1 o Private subnet 2.

  4. Private subnet 1 y Private subnet 2 enrutan el tráfico a las puertas de enlace NAT de las subredes públicas.

  5. Las puertas de enlace NAT envían tráfico saliente a la puerta de enlace de Internet desde las subredes públicas.

  6. Los datos salientes se transfieren desde la puerta de enlace de Internet al servidor externo.

Pila de tecnología

  • Lambda

  • Amazon Virtual Private Cloud (Amazon VPC)

 

Automatizar y escalar

Puede garantizar la alta disponibilidad (HA) mediante el uso de dos subredes públicas y dos privadas en distintas zonas de disponibilidad. Incluso si una zona de disponibilidad deja de estar disponible, la solución del patrón sigue funcionando.

Herramientas

  • AWS Lambda: AWS Lambda es un servicio de computación que permite ejecutar código sin aprovisionar ni administrar servidores. Lambda ejecuta su código solo cuando es necesario y escala de manera automática, desde unas pocas solicitudes por día hasta miles por segundo. Solo pagará por el tiempo de computación que consuma, no se aplican cargos cuando el código no se está ejecutando.

  • Amazon VPC: Amazon Virtual Private Cloud (Amazon VPC) le permite aprovisionar una sección aislada de forma lógica de la nube de AWS donde puede lanzar recursos de AWS en una red virtual que haya definido. Dicha red virtual es prácticamente idéntica a las redes tradicionales que se utilizan en sus propios centros de datos, con los beneficios que supone utilizar la infraestructura escalable de AWS.

Epics

TareaDescripciónHabilidades requeridas
Cree una nueva VPC.

Inicie sesión en la consola de administración de AWS, abra la consola de Amazon VPC y, a continuación, cree una VPC llamada Lambda VPC que tenga 10.0.0.0/25 como rango CIDR IPv4.

Para obtener más información, consulte Introducción a Amazon VPC en la documentación de Amazon VPC. 

Administrador de AWS
TareaDescripciónHabilidades requeridas
Cree la primera subred pública.
  1. En la consola de Amazon VPC, elija Subredes y, a continuación, elija Crear subred

  2. En Etiqueta de nombre, ingrese public-one.

  3. En VPC, elija Lambda VPC.

  4. Elija una zona de disponibilidad y regístrela. 

  5. Para el bloque CIDR de IPv4, introduzca 10.0.0.0/28 y, a continuación, seleccione Create subnet (Crear subred).

Administrador de AWS
Cree la segunda subred pública.
  1. En la consola de Amazon VPC, elija Subredes y, a continuación, elija Crear subred

  2. En Etiqueta de nombre, ingrese public-two.

  3. En VPC, elija Lambda VPC.

  4. Elija una zona de disponibilidad y regístrela. Importante: no puede utilizar la zona de disponibilidad que contenga la subred public-one

  5. Para el bloque CIDR de IPv4, introduzca 10.0.0.16/28 y, a continuación, seleccione Crear subred.

Administrador de AWS
TareaDescripciónHabilidades requeridas
Cree la primera subred privada.
  1. En la consola de Amazon VPC, elija Subredes y, a continuación, elija Crear subred

  2. En Etiqueta de nombre, ingrese private-one.

  3. En VPC, elija Lambda VPC.

  4. Elija la zona de disponibilidad que contiene la subred public-one que creó anteriormente. 

  5. Para el bloque CIDR de IPv4, introduzca 10.0.0.32/28 y, a continuación, seleccione Create subnet (Crear subred).

Administrador de AWS
Cree la segunda subred privada.
  1. En la consola de Amazon VPC, elija Subredes y, a continuación, elija Crear subred

  2. En Etiqueta de nombre, ingrese private-two.

  3. En VPC, elija Lambda VPC.

  4. Elija la misma zona de disponibilidad que contiene la subred public-two que creó anteriormente. 

  5. Para el bloque CIDR de IPv4, introduzca 10.0.0.64/28 y, a continuación, seleccione Create subnet (Crear subred).

Administrador de AWS
TareaDescripciónHabilidades requeridas
Cree la primera dirección IP elástica.
  1. En la consola de Amazon VPC, elija IP elásticas y, a continuación, elija Asignar nueva dirección.

  2. Elija Asignar y registre el ID de asignación de la dirección IP elástica recién creada.

Nota: Esta dirección IP elástica se utiliza para su primera puerta de enlace NAT. 

Administrador de AWS
Cree la segunda dirección IP elástica.
  1. En la consola de Amazon VPC, elija IP elásticas y, a continuación, elija Asignar nueva dirección.

  2. Elija Allocate (Asignar) y registre el Allocation ID  (ID de asignación) de la dirección IP elástica recién creada.

Nota: Esta dirección IP elástica se utiliza para su segunda puerta de enlace NAT.

Administrador de AWS
TareaDescripciónHabilidades requeridas
Cree una puerta de enlace de Internet.
  1. En la consola de Amazon VPC, elija Internet Gateways (Puertas de enlace de Internet) y, luego, elija Create internet gateway (Crear puerta de enlace de Internet).

  2. Introduzca Lambda internet gateway como nombre y, a continuación, seleccione Crear puerta de enlace de Internet. Asegúrese de registrar el ID de la puerta de enlace de Internet. 

Administrador de AWS
Adjunte la puerta de enlace de Internet a la VPC.

Seleccione el puerta de enlace de Internet que acaba de crear y, a continuación, elija Actions, Attach to VPC (Acciones, Adjuntar a la VPC).

Administrador de AWS
TareaDescripciónHabilidades requeridas
Cree la primera puerta de enlace NAT.
  1. En la consola de Amazon VPC, elija NAT Gateways (Puertas de enlace NAT) y, luego, elija Create NAT Gateway (Crear puerta de enlace NAT).

  2. Introduzca nat-one  como nombre de la puerta de enlace NAT. 

  3. Seleccione public-one  como la subred en la que crear la puerta de enlace NAT. 

  4. En el tipo de conectividad, elija Pública.

  5. En Elastic IP Allocation ID (ID de asignación de IP elástica), elija el primer ID de la dirección IP elástica que creó anteriormente y asoció con la puerta de enlace NAT.

  6. Elija Crear una puerta de enlace de NAT.

Administrador de AWS
Cree la segunda puerta de enlace NAT.
  1. En la consola de Amazon VPC, elija NAT Gateways (Puertas de enlace NAT) y, luego, elija Create NAT Gateway (Crear puerta de enlace NAT).

  2. Introduzca nat-two  como nombre de la puerta de enlace NAT. 

  3. Seleccione public-two  como la subred en la que crear la puerta de enlace NAT. 

  4. En el tipo de conectividad, elija Pública.

  5. En Elastic IP Allocation ID (ID de asignación de IP elástica), elija el segundo ID de la dirección IP elástica que creó anteriormente y asoció con la puerta de enlace NAT.

  6. Elija Crear una puerta de enlace de NAT.

Administrador de AWS
TareaDescripciónHabilidades requeridas
Crear la tabla de enrutamiento de la subred pública.
  1. En la consola de Amazon VPC, elija Route Tables (Tablas de enrutamiento) y, a continuación, elija Create route table (Crear tabla de enrutamiento).

  2. Introduzca public-one-subnet el nombre de tabla de enrutamiento y, a continuación, elija Crear tabla de enrutamiento.

  3. Seleccione la tabla de enrutamiento public-one-subnet, elija Edit routes (Editar rutas), y luego elija Add route (Agregar ruta).

  4. Especifique 0.0.0.0  en el cuadro Destination (Destino) y seleccione el ID del puerta de enlace de Internet en la lista Target (Objetivo).

  5. En la pestaña Subnet associations (Asociaciones de subred), elija Edit subnet associations (Editar asociaciones de subred), seleccione la subred public-one  con el rango CIDR 10.0.0.0/28 y, a continuación, elija Save associations (Guardar asociaciones).

  6. Seleccione Guardar cambios.

Administrador de AWS
Crear la tabla de enrutamiento de la segunda subred pública.
  1. En la consola de Amazon VPC, elija Route Tables (Tablas de enrutamiento) y, a continuación, elija Create route table (Crear tabla de enrutamiento).

  2. Introduzca public-two-subnet el nombre de tabla de enrutamiento y, a continuación, elija Crear tabla de enrutamiento.

  3. Elija la public-two-subnetroute table (tabla de enrutamiento), elija Edit routes (Editar rutas) y luego elija Add route (Agregar ruta).

  4. Especifique 0.0.0.0  en el cuadro Destination (Destino) y seleccione el ID del puerta de enlace de Internet en la lista Target (Objetivo).

  5. En la pestaña Subnet associations (Asociaciones de subred), elija Edit subnet associations (Editar asociaciones de subred), seleccione la subred public-two  con el rango CIDR 10.0.0.16/28 y, a continuación, elija Save associations (Guardar asociaciones).

  6. Seleccione Guardar cambios.

Administrador de AWS
Crear la tabla de enrutamiento de la subred privada.
  1. En la consola de Amazon VPC, elija Route Tables (Tablas de enrutamiento) y, a continuación, elija Create route table (Crear tabla de enrutamiento).

  2. Introduzca private-one-subnet el nombre de tabla de enrutamiento y, a continuación, elija Crear tabla de enrutamiento.

  3. Elija la private-one-subnetroute table (tabla de enrutamiento), elija Edit routes (Editar rutas) y luego elija Add route (Agregar ruta).

  4. Especifique 0.0.0.0  en el cuadro Destination (Destino) y seleccione la puerta de enlace de NAT en la subred public-one de la lista Target (Objetivo).

  5. En la pestaña Subnet associations (Asociaciones de subred), elija Edit subnet associations (Editar asociaciones de subred), seleccione la subred private-one 10.0.0.32/28 con el rango CIDR y, a continuación, elija Save associations (Guardar asociaciones).

  6. Seleccione Guardar cambios.

Administrador de AWS
Crear la tabla de enrutamiento de la segunda subred privada.
  1. En la consola de Amazon VPC, elija Route Tables (Tablas de enrutamiento) y, a continuación, elija Create route table (Crear tabla de enrutamiento).

  2. Introduzca private-two-subnet el nombre de tabla de enrutamiento y, a continuación, elija Crear tabla de enrutamiento.

  3. Elija la private-two-subnetroute table (tabla de enrutamiento), elija Edit routes (Editar rutas) y luego elija Add route (Agregar ruta).

  4. Especifique 0.0.0.0  en el cuadro Destination (Destino) y seleccione la puerta de enlace de NAT en la subred public-two de la lista Target (Objetivo).

  5. En la pestaña Subnet associations (Asociaciones de subred), elija Edit subnet associations (Editar asociaciones de subred), seleccione la subred private-two  con el rango CIDR 10.0.0.64/28 y, a continuación, elija Save associations (Guardar asociaciones).

  6. Seleccione Guardar cambios.

Administrador de AWS
TareaDescripciónHabilidades requeridas
Crear una nueva función de Lambda.
  1. Abra la consola AWS Lambda y, a continuación, elija Create a function (Crear una función) 

  2. En Información básica, inserte Lambda test en Nombre de la función y, a continuación, elija el idioma que prefiera en Tiempo de ejecución.

  3. Elija Crear función.

Administrador de AWS
Agregue la función de Lambda a su VPC.
  1. En la consola de AWS Lambda, seleccione Funciones y, a continuación, elija la función que creó anteriormente. 

  2. Elija Configuración y, a continuación, elija VPC.

  3. Elija Editar y, a continuación, elija Lambda VPC y ambas subredes privadas.

  4. Elija el Grupo de seguridad predeterminado para realizar las pruebas y, a continuación, seleccione Guardar.

Administrador de AWS
Escriba el código para llamar a un servicio externo.
  1. En el lenguaje de programación que prefiera, escriba el código para llamar a un servicio externo que devuelva su dirección IP.

  2. Compruebe que la dirección IP devuelta coincide con una de sus direcciones IP elásticas.

Administrador de AWS

Recursos relacionados