Diez puntos clave para optimizar plataformas Moodle sobre AWS

Escrito por Diego Orozco en 2022-11-08T10:48:16+01:00

Topics: Corporate Learning , Cloud Transformation with AWS

Diez puntos clave para optimizar plataformas Moodle sobre AWS

Optimizando coste y rendimiento

Moodle es uno de los sistemas de gestión de aprendizaje —en inglés, Learning Management System (LMS)— más conocidos a nivel mundial, con más de 240 millones de usuarios de todo el mundo registrados. 

Esta solución permite a las organizaciones disponer de una plataforma propia y personalizable para la formación online, y es usada tanto en el sector educativo como en la formación corporativa.

Como muchos otros sistemas de información, uno de los principales retos que se presentan a los equipos de TI es el de encontrar el equilibrio entre coste y rendimiento en un escenario con demanda variable.

En especial, en grandes entornos educativos (universidades, escuelas públicas y privadas, empresas “TechEd”, etc.) y en grandes organizaciones y empresas con sistemas propios de formación continua, la plataforma ha de estar preparada para dar un rendimiento excelente en períodos con una elevada concurrencia de usuarios combinados con períodos de baja actividad.

En estos escenarios, el hecho de disponer de la plataforma instalada sobre un entorno de cloud público como AWS ofrece grandes ventajas y posibilidades, gracias, especialmente, a sus características de elasticidad y escalabilidad, combinadas con una excelente seguridad y alta disponibilidad.

A continuación, fruto de nuestra experiencia con plataformas Moodle sobre AWS, os compartimos diez puntos clave para optimizarlas y encontrar el equilibrio perfecto entre coste y rendimiento.

Cinco servicios AWS a tener en cuenta

Nuestros cinco primeros puntos clave están directamente relacionados con servicios AWS:

  1. Auto-Scaling Group (ASG): la funcionalidad de autoescalado de instancias permite la adecuación de los recursos de front-end (servidores web) necesarios para la carga real en todo momento, lo que optimiza el coste. Para conseguir un autoescalado eficiente en entornos Moodle, es muy importante elegir correctamente la métrica usada sobre las instancias para fijar los umbrales de autoescalado. Además, con la combinación adecuada de distintos tipos de instancias (reserved, on-demand y spot) y saving plans conseguiremos optimizar al máximo el coste.
  2. Bases de datos: las RDS multi-AZ (con distintos motores de BD disponibles) permiten ejecutar la mayoría de las acciones de mantenimiento de la BD sin pérdida de servicio, incluido un escalado en caliente. En entornos muy dinámicos y con un uso muy volátil de la BD, se puede considerar el uso de bases de datos serverless (Amazon Aurora), que permiten un escalado automático en función de la demanda.
  3. AWS CloudFront: este servicio de CDN de AWS nos ofrece diversos beneficios: supone una mejora de las latencias para entornos geográficos separados, representa de por sí un ahorro de costes y permite añadir medidas de seguridad, como por ejemplo AWS Shield o WAF, usado habitualmente de manera conjunta con CloudFront.
  4. Amazon ElastiCache for Redis: Moodle recomienda que la plataforma tenga dos servidores de caché; uno para sesiones y otro para objetos PHP. Para las últimas versiones de Moodle, recomendamos el uso de RedIs en vez de Memcached como solución de caché para obtener el mejor rendimiento.
  5. EC2 Graviton: el uso de AMIs generadas sobre instancias Graviton (en vez de las típicas x86) para las EC2 que conforman los front-end aportan un rendimiento superior con menor número de instancias y a un menor coste unitario, con lo que se puede conseguir en global un ahorro de más del 30 %.

Cuatro prácticas aconsejables

Nuestros siguientes puntos recomendados están relacionados con buenas prácticas en los procesos de configuración, pruebas y operación del servicio:

  1. Configuración de elementos Moodle: más allá de los servicios AWS, es esencial una correcta selección y configuración de los distintos elementos que conformarán el entorno Moodle (servidores web, configuración PHP, motor de base de datos, etc.).
  2. Pruebas de carga: su realización previa al paso a producción de la plataforma, simulando los casos de uso previstos para dicho entorno, es muy recomendable, puesto que nos permite la detección de puntos de la arquitectura que podrían representar un cuello de botella, la estimación del número de recursos necesarios (y por tanto, el coste) en función de la carga variable y la validación del correcto funcionamiento técnico y ajuste de umbrales de los componentes con autoescalado.
  3. Monitorización y seguimiento: la monitorización continua del entorno mediante Amazon CloudWatch y la posibilidad de consultar logs generados por los front-end del ASG de forma centralizada son piezas indispensables para garantizar la disponibilidad y el rendimiento óptimo de la plataforma.
  4. Automatización de despliegues: aunque no afecte directamente al rendimiento, la automatización de despliegues mediante el uso de herramientas DevOps, combinada con el uso de tecnología de infraestructura como código (IaC: CloudFormation, Terraform…) reducen drásticamente los tiempos de despliegue y el coste de las operaciones, ya que se eliminan posibles errores de gestión manual y se logra una mayor disponibilidad de la plataforma.

Y mejora continua…

  1. Evolución: la tecnología avanza a un ritmo imparable y la necesidad de optimizar costes para ser competitivos es una constante. Las arquitecturas están vivas. AWS genera continuamente nuevas opciones y servicios que permiten seguir optimizando las plataformas Moodle, un LMS en constante evolución tanto en sus versiones open-source como comerciales (Moodle Workplace).

Desde IThinkUPC, AWS Advanced partner y Moodle Premium partner, podemos ayudarte a implantar, administrar y optimizar tu plataforma Moodle sobre AWS.


aws advanced partner badge
Premium Moodle Partner

También podemos ofrecerte una solución Moodle en modalidad SaaS, “Powered by AWS”, totalmente gestionada por nosotros.

Si es de tu interés, contacta con nosotros.