El objetivo de este artículo es ofrecer una alternativa que permita implantar una infraestructura de alto rendimiento para plataformas Moodle basado en los servicios ofrecidos en Amazon.

Para ello, AWS ofrece un alojamiento en la nube en un entorno altamente escalable y confiable para Moodle. Para facilitar el trabajo dispone de funciones como grupos auto-escalables, balanceadores de carga elásticos y servicios de supervisión CloudWatch.

Permite desplegar plataformas Moodle pudiendo configurar el escalado de la infraestructura de manera que se puedan generar nuevas instancias de los servidores, o incluso apagarlos en caso de que no haga falta disponer de tantos, de forma automática. Esto permite cumplir con las necesidades de la demanda de una manera más óptima y rentable.

Aquí se presenta una arquitectura de referencia para la implantación de Moodle Learning Management System sobre AWS Cloud, con el objetivo de obtener altos niveles de rendimiento, escalabilidad, disponibilidad, seguridad y fiabilidad.

Esquema-Amazon

El diagrama precedente está formada por diferentes capas o niveles. Por un lado está el nivel Web, el cual está formado por instancias EC2. Este nivel, a su vez, pertenece a un nivel de disponibilidad que agrupa el nivel Web junto con instancias de base de datos, en este caso base de datos MySQL. Por último, los niveles de disponibilidad, junto con otros elementos permiten el correcto funcionamiento y comunicación entre los diferentes elementos, se agrupan formando la región AWS, que es el sistema definitivo que servirá la plataforma Moodle al usuario final.

A continuación se identifican y describen todos los elementos que forman parte de la arquitectura indicando su cometido:

  • Instancia EC2: Servidor Web. Servidores que se encargarán de responder a las peticiones recibidas.

  • S3FS Mounted share: Sistema de ficheros en el que se montan los repositorios de contenido S3 bucket en las instancias EC2.

  • DB Instance – RDS MySQL: Instancia base de datos MySQL.

  • S3 Bucket: Repositorio de contenidos. En él se almacena el contenido estático que se vaya a servir.

  • DynamoDB – Scalable HTTP Session Store: Base de datos encargada de gestionar las sesiones creadas en los diferentes servidores web, y de esta manera permitir que se puedan gestionar las peticiones desde cualquier instancia, independientemente a la instancia web en el que se generó la sesión.

  • Elastic LoadBalancer: Balanceador de carga. Se encarga de repartir las peticiones que llegan entre las diferentes instancias de los servidores web según la carga de trabajo de las mismas.

  • Amazon CloudFront: Cache de los contenidos estáticos. Evita estar haciendo peticiones a los servidores web y mejora el tiempo de respuesta.