¿De qué trata el proyecto?
Este proyecto, desarrollado por Jorge López, consiste en el despliegue de una aplicación web en contenedores Docker sobre AWS Fargate, utilizando CloudFormation como herramienta principal para gestionar toda la infraestructura como código. El objetivo es demostrar cómo construir y automatizar una arquitectura escalable, segura y económica en la nube con servicios de AWS.
¿Cuál problema viene a resolver?
Muchos desarrolladores web se enfrentan a estos desafíos:
- Falta de experiencia en infraestructura como código (IaC) para automatizar entornos de producción.
- Complejidad en el despliegue de contenedores Docker en un entorno escalable y seguro.
- Necesidad de soluciones económicas para mantener aplicaciones web activas 24/7 con bajo presupuesto.
Este proyecto resuelve estos problemas al mostrar cómo desplegar una web funcional usando buenas prácticas de arquitectura moderna en la nube, sin necesidad de gestionar servidores manualmente.
¿Cuál es la solución?
Jorge desarrolló una solución cloud que permite:
- Desplegar una aplicación web de forma automatizada y reproducible usando CloudFormation.
- Ejecutar contenedores en un clúster Amazon ECS con AWS Fargate, sin gestionar servidores.
- Asegurar una arquitectura en red bien definida mediante Amazon VPC con subredes públicas y privadas.
- Usar Amazon Route 53 para gestionar dominios personalizados.
- Monitorear el rendimiento y registrar errores con Amazon CloudWatch.
- Almacenar las imágenes Docker de la aplicación en Amazon ECR.
La solución fue aplicada a una web de mascotas (gatos y perros), como ejemplo funcional, y fue optimizada para operar con un costo mensual aproximado de $2, si se mantiene activo todo el día.
¿Cómo fue construido?
El proyecto se implementó utilizando las siguientes tecnologías y servicios de AWS:
Infraestructura como código
- AWS CloudFormation: Para definir y desplegar toda la arquitectura, incluyendo VPC, subredes, ECS, roles IAM y balanceadores de carga.
Contenedores y ejecución
- Docker: La aplicación fue empaquetada en una imagen Docker.
- Amazon ECS con Fargate: Permite ejecutar contenedores sin necesidad de administrar servidores.
- Amazon ECR: Registro privado para almacenar la imagen Docker.
Red y acceso
- Amazon VPC: Configuración de subredes públicas y privadas para controlar el tráfico interno y externo.
- Amazon Route 53: Gestión de DNS para acceso personalizado a la aplicación.
Monitoreo
- Amazon CloudWatch: Seguimiento de logs y métricas en tiempo real para evaluar el desempeño de la aplicación y detectar errores.
Costos y escalabilidad
- Arquitectura pensada para ser escalable y económica, permitiendo operar por apenas $2 al mes, si se mantiene un uso básico constante.
Jorge destaca que este fue su primer acercamiento real a Docker y CloudFormation, aprendiendo a integrar sus conocimientos previos en redes con herramientas cloud para crear una arquitectura moderna, segura y eficiente.