Contenido del curso

Despliegue de app web en Elastic Beanstalk

Resumen

Desplegar una aplicación en AWS Elastic Beanstalk es una de las formas más rápidas de poner en producción un sitio web sin pelear con la infraestructura desde cero. Aquí verás cómo crear una aplicación, configurar su entorno y validar que funcione, usando como caso práctico Nexia Bank y un runtime en Python.

¿Qué es Elastic Beanstalk y por qué conviene usarlo?

Elastic Beanstalk es un servicio de cómputo de AWS que automatiza el aprovisionamiento de recursos para correr aplicaciones web. Tú subes el código y el servicio se encarga del servidor, el balanceo y el escalado.

Lo interesante es que mantienes el control total de la infraestructura por debajo: instancias EC2, IPs elásticas, grupos de seguridad y más. Detrás de escena, Elastic Beanstalk usa CloudFormation para apilar y orquestar todos esos recursos de forma automatizada [03:45].

¿Qué hace Elastic Beanstalk? Despliega aplicaciones web subiendo tu código y aprovisionando automáticamente la infraestructura necesaria (EC2, balanceadores, IPs), sin que tengas que configurar cada servicio manualmente.

¿Cómo se crea una aplicación en Elastic Beanstalk?

Lo primero es entrar a la consola de AWS, verificar la región (en el ejemplo, Ohio) y buscar Elastic Beanstalk dentro de la categoría de cómputo. Desde el menú lateral creas una nueva aplicación.

En la creación defines tres elementos básicos:

  • Nombre de la aplicación, por ejemplo Nexia Application.
  • Descripción opcional, como aplicación web.
  • Tags o etiquetas, útiles a futuro para automatizar tareas dentro del ambiente.

Una aplicación en Elastic Beanstalk es una colección lógica que agrupa entornos, versiones y configuraciones relacionadas a un proyecto específico. Es el contenedor donde vivirán uno o varios ambientes.

¿Qué diferencia hay entre aplicación y ambiente?

La aplicación agrupa, el ambiente ejecuta. Un environment es el conjunto de recursos de AWS que aprovisiona la infraestructura para correr una versión específica de tu aplicación.

Elastic Beanstalk te ofrece dos tipos de ambiente [01:48]:

  • Web server environment: ideal para sitios o aplicaciones que reciben requests HTTP.
  • Worker environment: pensado para procesos asíncronos, usa el servicio SQS para gestionar colas de tareas.

Para una aplicación web tradicional, el web server es la opción correcta.

¿Cómo configurar el entorno paso a paso?

La creación del ambiente se divide en seis pasos. Aquí lo importante es entender qué decides en cada uno.

Paso 1: plataforma y código fuente

Eliges una plataforma gestionada y el runtime. Beanstalk soporta Python, Node, Java, Go y Docker, entre otros. En el ejemplo se usa la última versión de Python disponible.

Luego cargas el código de tres formas:

  • Subir un archivo desde tu máquina local.
  • Apuntar a un bucket de S3.
  • Usar una versión existente ya cargada en Beanstalk.

Para la demo se usa la sample application que provee AWS, ideal para validar que todo funcione sin complicar el despliegue.

En presets de configuración tienes single instance (capa gratuita), single instance con instancias spot, alta disponibilidad o configuración personalizada. Para pruebas, la instancia única gratuita es suficiente.

Paso 2: roles y permisos

Se crea un rol de IAM para el ambiente Elastic Beanstalk y un instance profile para la EC2. También puedes asociar un key pair si quieres conectarte por SSH a la instancia.

¿Qué es un instance profile en AWS? Es un contenedor que entrega un rol de IAM a una instancia EC2, permitiéndole acceder a otros servicios de AWS con permisos específicos sin guardar credenciales en el servidor.

Un detalle importante: si reutilizas un nombre de rol que ya existe, el despliegue falla. Por eso conviene nombrarlo de forma única, por ejemplo añadiendo el prefijo NexiaBank [09:12].

Paso 3: red, base de datos y tags

Aquí configuras la VPC (puedes usar la default), las subredes (en la demo se usa US East 2A) y, opcionalmente, una instancia de base de datos definiendo motor, versión y tipo de almacenamiento. Si no la necesitas, la dejas en blanco.

¿Qué configuras en almacenamiento, monitoreo y capacidad?

Los pasos cuatro y cinco afinan el rendimiento y la observabilidad del ambiente.

En almacenamiento defines el volumen raíz. La demo usa General Purpose 3 SSD con 15 GB, dejando IOPS y throughput en valores predeterminados.

El monitoreo se conecta con CloudWatch en intervalos configurables (5 minutos en el ejemplo). También puedes desactivar IMDSv1 por seguridad y elegir el grupo de seguridad apropiado.

En capacidad decides:

  • Si quieres una instancia única o un balanceador de carga repartiendo tráfico entre zonas de disponibilidad.
  • Si usar instancias on-demand o spot (más baratas, pero interrumpibles).
  • El tipo de instancia y la AMI base.
  • La política de actualización: All at Once o Immutable.

En la sección de software puedes elegir el servidor web, Nginx o Apache, e integrar servicios adicionales como X-Ray, S3 log storage o logs de CloudWatch.

¿Cómo verificar que el despliegue funciona?

Después del submit, Beanstalk tarda unos minutos en provisionar todo. Cuando aparece el mensaje verde de éxito, el ambiente está listo.

En la consola encuentras varias pestañas útiles:

  • Eventos: muestra la creación de IPs elásticas, instancias y demás recursos.
  • Salud: respuestas HTTP 200, 300, 400 y 500.
  • Monitoreo: CPU, métricas de red y filtros por tiempo.
  • Logs y alarmas: para diagnosticar problemas.

Si dejaste el dominio en blanco, AWS genera uno automáticamente. Al hacer clic en esa URL deberías ver tu aplicación corriendo, en este caso la sample app de Python servida por Nginx.

¿Qué hago si Elastic Beanstalk falla al crear el ambiente? Revisa el mensaje de error en la pantalla de submit. Lo más común es que un nombre de rol IAM ya exista; cámbialo y reintenta desde el paso de revisión.

¿Por qué eliminar el ambiente al terminar la práctica?

Un ambiente activo consume instancias EC2, IPs elásticas y otros recursos que generan costos. Si solo estás practicando, lo recomendable es terminar el ambiente desde el menú de acciones y luego eliminar la aplicación.

AWS te pedirá confirmación antes de borrar todo, y el proceso desmonta los recursos en el mismo orden inverso en que se crearon.

Un tip final para tus prácticas: empieza con valores predeterminados para ver resultados rápido. Cuando ya domines el flujo, recién entonces afina base de datos, balanceador y monitoreo como lo harías en un caso real. ¿Qué aplicación te gustaría desplegar primero en Beanstalk? Cuéntalo en los comentarios.