David Edson González Carrillo
Les comparto el archivo funcionando
Leonardo Orejuela
Gracias! Funcionó perfecto!
Sergio Cortes
no me deja descargar el archivo me dice conexion perdida...
Despliega con seguridad tu proyecto en Elastic Beanstalk usando Python y Flask. Aquí verás cómo crear el entorno, realizar el primer deployment, adaptar tu código a WSGI (clave: renombrar a application.py y añadir application = app), y configurar escalado con load balancer, monitoreo y rollback. Todo directo, sin rodeos y listo para producción.
¿Cómo crear y desplegar una aplicación en Elastic Beanstalk?
Para iniciar, entra a la consola, abre All Services si está colapsado y ve a Elastic Beanstalk. Crea una nueva aplicación: asigna nombre, elige plataforma y arranca con la aplicación de ejemplo para que el entorno provisionado funcione de inmediato.
¿Qué plataformas y versiones puedes elegir?
Puedes seleccionar entre múltiples plataformas preconfiguradas: Docker, Java Enterprise con Tomcat, .NET en Windows con IIS, Go o Python. En el ejemplo se usa Python 3.6 sobre Elastic Beanstalk para una app con Flask.
¿Cómo empaquetar y mover versiones entre ambientes?
Sube un zip con tu código para cada deployment. Esto permite operar con ambientes de desarrollo, test y producción, y colaborar con QA de forma ordenada.
¿Qué cambios de código exige WSGI y Beanstalk?
La clave está en cumplir el estándar WSGI: Elastic Beanstalk busca un archivo llamado exactamente application.py que exponga un objeto application. Si no existe, marca incompatibilidad con WSGI aunque el resto esté correcto.
¿Cómo adaptar app.py a application.py?
El código es el mismo: solo cambia el nombre del archivo y añade la referencia WSGI.
# application.py (antes era app.py) # ... código existente de Flask ... application = app # línea clave para Elastic Beanstalk y WSGI
¿Qué hace la carpeta .evextensions?
Contiene la configuración para que Elastic Beanstalk conozca la app WSGI de Flask: ahí se indica que el archivo de entrada es application.py. Sin esto, no se ejecuta correctamente.
¿Cómo escalar, monitorear y recuperar versiones en Elastic Beanstalk?
Desde la configuración del ambiente puedes pasar de single instance a load balanced. El servicio crea por ti el load balancer, más instancias, permisos y conexiones, manteniendo la misma URL.
¿Cómo configurar un load balancer y autoescalado?
Define capacidad mínima y máxima, y las políticas para crecer o reducir según demanda.
¿Qué monitoreo y logs tienes disponibles?
Consulta salud, número de instancias, tiempo en ejecución y estado general. Activa métricas extendidas para más detalle.
¿Cómo hacer rollback rápido?
La consola guarda versiones históricas: puedes volver atrás si un deployment falla.
Además, podrás asignar un alias más claro con Route 53 y explorar almacenamiento en S3 y Glacier para tu código o archivos estáticos en las siguientes prácticas.
¿Te quedó alguna duda sobre el cambio a application.py, el escalado con load balancer o el rollback? Comparte tus preguntas y cuéntame qué parte te gustaría profundizar.
David Edson González Carrillo
Les comparto el archivo funcionando
Leonardo Orejuela
Gracias! Funcionó perfecto!
Sergio Cortes
no me deja descargar el archivo me dice conexion perdida...
Alexis Daniel Rea Perez
Mi solución fue la siguiente:
Felipe Carrión
Me funciono..aunque al bajar el zip no venia la carpeta .ebextension....Gracias.
Óscar Castañeda
Me funcionó gracias.
Qué raro se tuvo que agregar configuración extra a la marcada por el profesor.
@Felipe Carrión la carpeta .ebextension está oculta
Jonas Ivan Tsuchida
Creo que es hora de acualizar este curso.
Anthony Ismael Manotoa Moreno
Hola :)
Podrías dejarle la sugerencia a team@platzi.com
Anthony Yoel Matheus García
x2
Jose Ramos
RT: @davidegc Les comparto el archivo funcionando
Gracias a David por la ayuda! Descarguen ese archivo que si funciona.
Julio Leonardo Mendieta Rosales
Excelente aporte Jose Gracias
Jericsson Jesus Carvajal Guerrero
No funcionó
Kenia Maria Espinosa Alejandro
En mi caso, con Python 3.8 tuve usar Flask 2.0.3, para que funcionara, las versiones 1.X me causaron fallas.
Gilberto Pérez Garrido
Este es el error en 2022
Andrea Bocanegra
Muchas gracias por el aporte. Ya funciona 😀
Matias Gabino Santana Cabrera
Hola, voy a dejar por aca los pasos que seguí para que me funcione:
Alexis Daniel Rea Perez
Sigue sin funcionar, seguí estos mismo pasos y no sirvió. Gracias
Laura Camila Rodríguez Peña
Tienes que comprimir los 3 archivos:
Asegúrate de comprimir los 3 archivos y no la carpeta donde están los archivos
Cristhian (03122) Sipac
Les dejo aquí el zip que funciona. Gracias a la solución de @NovoPles (https://www.dropbox.com/s/0f5gnn3w1iy3737/aws-platzi-python.zip?dl=0)
Cristian David Franco Garcia
No se debe comprimir(.zip) el folder del proyecto. Debes comprimir directamente los archivos del proyecto.
Wilson Montenegro
Gracias, esta lista solo para subir.
Usuario anónimo
UserLa solución que a mi me funcionó fue la siguiente:
Alexander Muñoz Castro
Tampoco me funcionó
Anthony Josue Rojo
les comparto el archivo que funciona actualizado para aws actualizado a la fecha
Luis Gustavo Torres Lechuga
funciona
Cindy Sanchez
muchas gracias
Amazon EC2
EC2 son un conjunto de máquinas virtuales en línea que puedes utilizar para desarrollo, calidad o producción
chmod 400 <name-key> dar permisos a la key ssh -i <name-key> ec2-user@<ip> conectarse a la máquina ec2 sudo su volverse root
example
https://github.com/mauropm/aws-platzi-python
Permisos de super usuario
sudo su
Instalación de flask
pip install flask
ejecutar programa
python app.py
AWS Lambda
es un servicio informático que permite ejecutar código sin aprovisionar ni administrar servidores.
Elastic Beanstalk
es una plataforma donde en pocos pasos, obtienes un balanceador de cargas y tantas instancias EC2 como tu quieras.
Amazon S3 Es un repositorio de archivos rápido y perfecto para uso de una aplicación a la hora de crear, manipular y almacenar datos. Amazon Glacier Es un servicio de almacenamiento en la nube para archivar datos y realizar copias de seguridad a largo plazo.
Amazon CloudWatch
Observación de sus recursos y aplicaciones de AWS tanto en AWS como locales Amazon Cognito
Amazon Cognito proporciona autenticación, autorización y administración de usuarios para sus aplicaciones móviles y web. Los usuarios pueden iniciar sesión directamente con un nombre de usuario y una contraseña o a través de un tercero como Facebook, Amazon o Google.
DAVID EDUARDO BAEZ SANCHEZ
Muy interesante esta información. Deberían arreglar el curso, ya que no es fácil de seguir los ejemplos que envió el profe, si no es por los compañeros que arreglaron el paquete.
David González Vidal González Vidal
Por que me manda esto? lo he bajado tal cual y me manda error our WSGIPath refers to a file that does not exist.
Diego Forero
Team PlatziPuedes compartir el stack completo del error? bajaste los archivos de la rama de elastic beanstalk?
David González Vidal González Vidal
Lo baje tal cual, como zip y de hecho verifiqué los archivos y me manda lo mismo.
Alberto Gobbi
Profesor, qué pasó? Nos comimos la parte del contenido del archivo .zip, luego resulta que la carpeta y el archivo nuevo que se crearon no sirvieron para nada (.ebextensions y flask.config). Al final, la única forma de hacerlo funcionar fue creando un archivo requirements.txt tal como señaló @NovoPles
Salva Perez
La verdad que estoy muy decepcionado con este curso, no puede ser que este tan desactualizado, mas de 3 horas llevo intentando hacer andar lo dado en esta clase y no hay caso, ya intente absolutamente todo lo que esta en los comentarios y sigue sin andar. Supongo que Platzi no es una forma "Rapida" y "Facil" para aprender como dicen...
Julio Ignacio Oyarzun Cayuman
Gracias a todos quienes dieron la solución para que esto funcionara, un corazon para todos ustedes y un coscorron para el profesor xD
Jefferson Martínez
Efectivamente falta un paso importante en el video el cual es crear el archivo requirements.txt Este se puede crear ejecutando el comando pip freeze > requirements.txt y debe quedar sobre el mismo nivel del application.py
También se debe tener en cuenta que el comprimido debe ser .zip y que todos los archivos deben quedar en la raiz del mismo
Darvin Orozco
Hola, he tratado de implementar tu solución (creando el archivo requirements.txt), pero me sigue dando el error: "Your WSGIPath refers to a file that does not exist". ¿Tendrás tú la versión final del .zip que habrá que subir para que funcione? Saludos y gracias.
Carlos Andres Lozano Arroyo
Intenté tu solucion, aun así persiste el error, nos puedes compartir tu .zip
rusbel bermúdez rivera
Update Marzo 2021.
Descarga el repositorio, de application. py borra esto
if __name__ == "__main__": app.run("0.0.0.0",debug=False) #app.run("0.0.0.0",debug=True)
Crea el archivo requirements.txt para instalar las dependencias
flask
Selecciona estos tres items y haz un archivo zip
templates applications .py requirements.txt Todo debe estar bien ahora.
Daniel Jaramillo
exelente aporte me funcionò a la prefecciòn
Pablo Ochoa
Tengo el siguiente problema, cuando intento desplegar el zip, me indica lo siguiente
El intentar abrir la aplicación, este es el resultado
Brayan Urbina
En la configuracion del entorno puedes ir a ver el log de errores, ahi te indica que sucede
Gustavo Gonzalez Montero
Hola, ya lo solucioné! Fíjate en este comentario: https://platzi.com/comentario/2798706/
Elisa Zamarron Muñoz
¿Estos ambientes también se pueden apagar? ¿Cómo sé si me voy a pasar del uso free?
David Felipe Garay Pérez
probablemente cuando uses EB ya estés en una posición donde fijo vas a pagar por el servicio, pero para controlar costos puedes configurar hasta cuanto puede crecer (tal como se ve en el video), tambien puedes monitorizar o poner alarmas. Y si, puedes "apagarlos" en en las Actions