Proyecto | Aprende AWS: Cómo simular arquitecturas de nube con LocalStack y Docker | Cristian Castro

Comparte

Cristian Castro, egresado del programa AWS re/Start, ha desarrollado un proyecto que demuestra cómo replicar entornos empresariales de computación en la nube de forma local. A través de su solución, Cristian logró simular y desplegar una arquitectura web completa orientada a la recomendación de videojuegos free-to-play, utilizando herramientas de virtualización y contenedores para emular el comportamiento real de la infraestructura de Amazon Web Services sin generar costos de facturación.

¿De qué trata el proyecto?

El proyecto consiste en el diseño y despliegue local de una aplicación web basada en WordPress montada sobre una infraestructura de red que simula detalladamente una VPC (Virtual Private Cloud) de AWS. El sistema aloja una plataforma de recomendación de videojuegos con un formulario dinámico que permite a los usuarios interactuar y enviar sugerencias, validando la comunicación segura, el enrutamiento de tráfico y la persistencia de datos dentro de un entorno controlado en la máquina del desarrollador.

¿Qué problema viene a resolver?

Al aprender o diseñar arquitecturas en la nube, los desarrolladores y estudiantes a menudo se enfrentan a la barrera de los costos asociados al consumo de recursos reales en AWS o a las restricciones de la capa gratuita, como ocurre con Amazon RDS que no siempre permite configuraciones avanzadas sin cargos adicionales. Además, experimentar directamente en la nube pública sin dominar la configuración de redes internas e Internet Gateways puede generar brechas de seguridad o configuraciones erróneas. Este proyecto resuelve este problema demostrando que se pueden realizar pruebas de concepto complejas de redes y servidores de manera idéntica a la nube, de forma local, segura y 100% gratuita.

¿Cuál es la solución?

La solución consiste en una plataforma web totalmente funcional integrada en una arquitectura híbrida simulada. El tráfico se gestiona mediante una emulación de Amazon Route 53 para dirigir las peticiones del navegador hacia una estructura de red dividida en dos segmentos: una subred pública, que expone de forma segura el servidor web frente a internet, y una subred privada estrictamente aislada para almacenar los datos. Para la interacción con el usuario, la web incluye un formulario conectado que procesa la información recibida (nombre, juego, plataforma y comentarios) y la almacena de manera exitosa a nivel interno.

¿Cómo fue construido?

El proyecto se edificó utilizando una combinación estratégica de herramientas de emulación local y comandos de la interfaz de línea de comandos de AWS (AWS CLI) enfocados en el siguiente stack:

  • Entorno de Simulación Principal: LocalStack corriendo en conjunto con Docker para emular el comportamiento de las APIs de AWS en la máquina local.
  • Redes y Conectividad (VPC): Creación manual mediante comandos CLI de una VPC con su bloque CIDR, dividida en una subred pública (asociada a un Internet Gateway y una tabla de enrutamiento personalizada) y una subred privada.
  • Seguridad Perimetral: Configuración de Security Groups con reglas de tráfico de entrada estrictas; habilitando puertos 22 (SSH), 80 (HTTP) y 443 (HTTPS) para el segmento público, y restringiendo el acceso del segmento privado únicamente a las conexiones internas provenientes de la subred pública.
  • Cómputo (Simulación de EC2): Un contenedor Docker configurado con un servidor web Apache, módulos de PHP y el CMS WordPress para procesar la lógica del negocio.
  • Base de Datos (Simulación de RDS): Un contenedor Docker independiente con el motor MySQL, orquestado mediante Docker Networks para enlazarse de forma aislada con la capa de WordPress a través de las directivas del archivo.
  • Observabilidad y Planeación: El diseño arquitectónico queda preparado conceptualmente para la integración de buckets de Amazon S3 para recursos estáticos, autenticación multifactor (MFA), Amazon CloudWatch y alertas de presupuesto (AWS Budgets).