Despliegue de Aplicaciones Python en Elastic Beanstalk de AWS
Clase 15 de 36 • Curso Práctico de AWS Cloud
Resumen
¿Cómo poner nuestro proyecto en Elastic Beanstalk?
Aprovechar las herramientas de Elastic Beanstalk en AWS puede cambiar la forma en la que realizamos implementaciones. En esta clase te enseñaremos cómo proceder con este poderoso servicio que simplifica el despliegue de aplicaciones, utilizando plataformas preconfiguradas.
¿Cómo accedemos a Elastic Beanstalk desde la consola?
Para iniciar, es importante ingresar a la consola de AWS. Es posible que al quedarse colapsada la sección 'All Services', no encuentres inmediatamente Elastic Beanstalk; asegúrate de expandirla. Una vez localizado, podrás crear un nuevo sitio, dando un nombre a tu aplicación y seleccionando la plataforma adecuada. Elastic Beanstalk ofrece muchas configuraciones preconfiguradas para diferentes entornos, como Docker, Java Enterprise con Tomcat, .NET con Windows e IIS, Go, y más. En este caso, seleccionaremos Python y habilitaremos una aplicación de ejemplo.
¿Qué pasos seguir para modificar el código del proyecto?
El ajuste del código es esencial para que la aplicación funcione correctamente en Elastic Beanstalk. La modificación principal está relacionada con el archivo application.py
. Aquí deberás:
- Cambiar el nombre del archivo de
app.py
aapplication.py
. - Añadir
application =
en el código, lo que Amazon requiere para que reconozca el estándar WSGI al levantar la instancia.
Por ejemplo, al tener el código original:
app = Flask(__name__)
Deberás transformarlo a:
application = app
¿Cómo procede el entorno de creación?
Al crear el entorno, Elastic Beanstalk configurará automáticamente:
- Una instancia EC2 con permisos adecuados.
- Un grupo de seguridad que abrirá puertos esenciales como el 80 (HTTP) y el 443 (HTTPS), similares a pruebas anteriores con el puerto 5000.
¿Qué opciones de despliegue y rollback ofrece Elastic Beanstalk?
Elastic Beanstalk permite subir el código empaquetado en un ZIP al ambiente deseado ya sea de desarrollo, prueba o producción. Incluso puedes probar versiones antes de moverlas a producción, permitiendo al equipo de QA validar el funcionamiento.
La funcionalidad de rollback es clave. Puedes almacenar hasta mil versiones de tu aplicación, revirtiendo rápidamente a una versión anterior en caso de problemas.
¿Cómo configurar el balance de carga?
En la instancia básica, puedes optar por no usar un balanceador. Sin embargo, si se espera tráfico elevado, se puede activar esta opción, definiendo el número de servidores (por ejemplo, mínimo uno a cinco o más, según la demanda).
Puedes ajustar:
- Los criterios para añadir o quitar servidores.
- La capacidad de respuesta ante fallas.
- La cantidad de servidores que crecen al aumentar la carga.
¿Qué otras configuraciones se pueden realizar?
Elastic Beanstalk ofrece un amplio monitoreo del estado del servidor. Desde el uso de CPU hasta el ancho de banda, y si se requiere, permitir métricas más especializadas. Además, esta plataforma proporciona logs detallados de las instancias y una visión clara del estado de cualquier servidor en tiempo real.
Así, Elastic Beanstalk se convierte en una solución robusta para la gestión dinámica de recursos, optimizando el rendimiento de tu aplicación al ajustar automáticamente la infraestructura a las necesidades del tráfico. Con este conocimiento, puedes traer eficiencia a tus despliegues, confiar en una infraestructura autosuficiente, y concentrarte en el desarrollo efectivo de tus soluciones.