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 Groups → Inbound 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.
Cómo desplegar Flask en AWS con puertos y dependencias
Yo lo instale siguiendo estos pasos ya la tengo lista pronto lo usare para un proyecto ... quizas les sirva de apoyo, este fue instalado en aws ubutu server 16.044
Para verificar que se haya instalado apache escribimos en la url de nuestro navegador el dominio, IP o DNS de nuestra instancia.
En el navegador colocar la direccion ip publica: https://ip_publica
Deberia mostrar una pagina donde muestrara datos de UBUNTU APACHE
Importante: SI NO muestra nada puede que no tenga habilitado en el grupo de seguridad de AWS (instacias) el puerto 80 y 443, verificar que este habilitado.
Paso 2. Instalar MySQL
sudo apt-get install mysql-server
Paso 3. Instalar PHP
$ sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql
$ sudo systemctl restart apache2
Paso 4. Verificar que se allá instalado PHP
En nuestra terminal corremos el siguiente comando para crear y editar el archivo info.php
$ sudo nano /var/www/html/info.php
Dentro del archivo generamos el siguiente script
<?php
phpinfo();
?>
Por ultimo tecleamos en la URL de nuestro navegador la IP de nuestro servidor.
http://ip_publica/info.php
y nos debe de aparecer una pantalla mostrando los datos de php, cualquier aporte es util.
Me paso que no lograba configurar el grupo de seguridad de la consola aws, por si les sirve es cuestión de agregar dos reglas de TCP Personalizadas, una con ipv4 y otra con ipv6 (ambas para el puerto 5000)
Hola, espero que ya lo hayas resuelto, pero para el registro y la posteridad, no sales del usuario root, solamente te cambias de usuario con "su", por ejemplo: su ec2-user (su = switch user)
Es muy importante ejecutar el comando “python ” y dejarlo ahí, no presionar el “Ctrl + C” porque entonces detienes el servicio, luego si haces lo de las reglas y luego abres el navegador como se menciona en el vídeo.
lo mas probable es que estes ejecutando el proyecto en la terminal en primer plano es decir mientras tienes la terminal abierta y si la cierras o pierdes conexion el proceso se termina.
Se siente genial que todo corra bien, ¿verdad? Excelente curso y mejor clase aún impartida por el profe Mauro.
Cuando ejecutas Flask pierdes el promt de la consola de nuestra instancia. Para mandarla a segundo plano podemos hacer lo siguiente.
1.- Presionamos las teclas CTRL + Z
2.- Escribimos el comando bg %1
3.- Nos saldrá un mensaje parecido a este:
~/aws-platzi-python$ bg %1[1]+ python app.py&
Ya tendremos ejecutando nuestro servidor web con Flask y ademas podremos seguir trabajando con la consola de nuestro servidor.
En el caso de que queramos pararlo. Podemos buscar el proceso con el comando:
Lo que nos interesa a nosotros es el primer número que sale. Ya que es el PID (Identificador de nuestro proceso de Flask) de nuestro proceso llamado "python app.py"
Para "matarlo" (finalizar proceso) podemos ejecutar:
kill -913673
Ese segundo número debe ser el PID varia dependiendo de cada uno. En mi caso es 13673 pero vosotros deberéis copiar el PID que os haya dado resultado en el comando anterior.