Cómo desplegar Flask en AWS con puertos y dependencias

Clase 11 de 36Curso Práctico de AWS Cloud

Resumen

Lanza con confianza un proyecto de Python en S2 usando Flask: desde clonar con Git y instalar con pip, hasta abrir el puerto 5000 en Security Groups para ver tu app en el navegador. Verás cómo evitar el típico error de conexión y cómo probar rutas dinámicas como /Hello.

¿Cómo preparar el entorno con git y flask?

Para iniciar, se clona el proyecto con Git y aparece un directorio nuevo con el código. Ahí se observan las dependencias de Flask y las rutas web definidas. El objetivo es instalar las dependencias y poner a correr el ejemplo.

  • Salir del editor y convertirse en root para instalar paquetes.
  • Usar el manejador de dependencias pip para instalar Flask.
  • Volver al usuario normal, limpiar la consola y ejecutar el proyecto.

Comando clave:

pip install flask

¿Qué rol cumplen pip y flask?

  • pip: manejador de dependencias de Python. Instala librerías requeridas por el proyecto.
  • Flask: dependencia principal para levantar el servicio web y definir rutas.

Al correr el ejemplo, el ambiente indica production y muestra que escucha en el puerto 5000, accesible “abierto a Internet” desde la perspectiva de Python.

¿Cómo exponer el servicio en el puerto 5000?

Luego de ejecutar, se toma la IP de la instancia en S2 desde la consola (ver instancias en ejecución) y se intenta acceder con IP:5000 en el navegador. Aparece el mensaje de que no se puede conectar. La causa es simple: las Inbound Rules del Security Group solo permiten Secure Shell (SSH) en el puerto 22.

¿Qué regla inbound debo añadir?

  • Editar el Security Group y añadir una regla TCP custom para el puerto 5000.
  • Origen: cualquier lugar para facilitar la prueba. Alternativa: My IP usando un sitio tipo what is my IP punto com.
  • Nota importante: con My IP, si tu conexión usa un módem por cable con IP pública compartida, puede fallar.

Tras guardar, el puerto 5000 queda abierto. Ahora, al ir a IP:5000, la app responde correctamente.

Puntos clave: - Abrir el puerto 5000 en Security Groups es imprescindible para pruebas externas. - SSH (22) no basta para servir contenido web. - Puedes verificar permisos desde la instancia: Security GroupsInbound Rules.

¿Cómo probar rutas y ajustar el puerto en el código?

El proyecto incluye rutas dinámicas. Un ejemplo útil es Hello: permite pasar un argumento (por ejemplo, “Platzi” o tu nombre) y la respuesta se personaliza.

  • Probar con: IP:5000/Hello/Platzi.
  • Útil para desarrollo o calidad al validar respuestas dinámicas.
  • El puerto por omisión es 5000, y se puede modificar en el código si lo requieres.

Buenas prácticas al trabajar con S2 y Flask: - Revisar dependencias y rutas al clonar con Git. - Instalar con pip desde root cuando se requiera. - Confirmar el estado “corriendo” y el puerto en la salida del servidor. - Abrir puertos necesarios en Security Groups antes de probar vía navegador.

¿Tienes dudas, errores al ejecutar o quieres compartir tu configuración de Security Groups? Deja tu comentario y con gusto revisamos tu caso y damos recomendaciones. Además, pronto veremos funciones Lambda: cómo se crean y cómo se ejecutan.