En este artículo comparto cómo desplegué Moodle y WordPress en una única instancia EC2 de AWS, optimizando recursos y garantizando seguridad y rendimiento para entornos productivos.
El proceso comenzó seleccionando una instancia EC2 adecuada para aplicaciones web, con suficiente CPU y RAM para soportar ambas plataformas.
Configuré los grupos de seguridad AWS para permitir acceso SSH seguro y tráfico HTTP/HTTPS. Además, configuré volúmenes EBS persistentes para almacenamiento estable.
Instalé Apache y configuré dos Virtual Hosts independientes, uno para Moodle y otro para WordPress, aislando sus entornos.
Para las bases de datos, opté por MariaDB, creando usuarios específicos para cada aplicación con permisos limitados. Además, habilité skip-name-resolve para mejorar la seguridad y el rendimiento.
Implementé HTTPS usando Let’s Encrypt a través de certbot, automatizando la renovación de certificados.
Configuré redirecciones automáticas de HTTP a HTTPS y añadí headers HTTP seguros, como Strict-Transport-Security, X-Content-Type-Options y X-Frame-Options, para proteger contra ataques comunes.
Cada plataforma fue desplegada en su propio directorio con permisos estrictos para minimizar riesgos.
Configuré los archivos clave (config.php para Moodle y wp-config.php para WordPress), asegurando la conexión con sus respectivas bases de datos y ajustando parámetros de rendimiento.
Este enfoque modular y seguro permite alojar Moodle y WordPress en un único servidor AWS EC2, optimizando costos sin sacrificar estabilidad ni escalabilidad, y dejando el sistema listo para producción real.