¿Cómo puedo hacer que un lambda llame a instancias ec2 a través de su dirección IP privada?
En pocas palabras, crear un bot de discordia para que mis compañeros de servidor de Minecraft inicien y detengan la instancia de AWS y manejen el apagado automático si no hay nadie en el servidor.
La función Lambda se encargaría de iniciar, detener, obtener la dirección IP pública actual asignada automáticamente y confirmar que el servidor se está ejecutando a través del protocolo de consulta de Minecraft (puerto UDP 25565).
Estoy tratando de hacer esto de la manera más rentable posible y quiero ver si puedo hacerlo sin una dirección IP elástica asignada. Como tendré más de un servidor de Minecraft que deberá iniciar. Y hay una tarifa si ese servidor está fuera de línea con una dirección IP elástica o si está utilizando más de 1 IP elástica.
Probé la misma función cuando el mismo servidor usaba una dirección IP elástica y funcionó como se esperaba. Ahora quiero saber si puedo hacer lo mismo con la dirección IP privada.
Respuesta1
Si aún no lo ha hecho, deberá conectar Lambda a la VPC en la que se ejecuta la instancia EC2. https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html
De forma predeterminada, las funciones Lambda solo pueden comunicarse con recursos en la Internet pública, por lo que la IP pública de la instancia EC2, las API de AWS, etc.
A partir de ahí, debe asegurarse de que el grupo de seguridad (SG) asignado a la instancia EC2 pueda recibir tráfico (entrante) del SG asignado a la función Lambda. Este sería el puerto UDP 25565 o el que necesites.
También debe asegurarse de que el SG asignado a la función Lambda pueda realizar conexiones salientes al SG asignado a la instancia EC2, nuevamente en el puerto UDP 2265 o lo que necesite. Esto es un poco más fácil ya que la política de salida suele ser muy abierta.
Para realizar pruebas, puede asignar el SG para la función Lambda a instancias EC2 diferentes; colocar la instancia que desempeña el papel de la función Lambda en las mismas subredes ayudará a validar aún más la configuración.