La noche que mi servidor se rindió
Nunca olvidaré la sensación de angustia al ver mis sitios WordPress caer repentinamente — otra vez. Los visitantes se encontraban con páginas en blanco o mensajes de error. Las herramientas de monitoreo de uptime comenzaron a disparar alertas en medio de la noche. Mi nivel de estrés se disparó. ¿El culpable? Crashes repetidos del servidor en AWS, todos por un solo problema: 100% de uso de disco.
Si estás ejecutando un sitio WordPress (o varios) en una instancia AWS EC2 y notas tiempo de inactividad aleatorio, rendimiento lento o errores extraños, podrías estar en el mismo camino que yo. Pero la buena noticia es que puedes solucionarlo — y prevenirlo para siempre. Aquí está mi recorrido real de resolución de problemas.
Qué significa "100% de uso de disco" en AWS EC2 (y cómo detectarlo)
Cuando tu servidor Linux alcanza el 100% de uso de disco, cada servicio — desde Nginx/Apache hasta MySQL y PHP — comienza a fallar. Podrías ver:
- Sitios web que crashean repentinamente o se vuelven inalcanzables
- WordPress "error establishing a database connection"
- Imposibilidad de hacer SSH o ejecutar comandos básicos (incluso guardar archivos falla)
- Logs o herramientas de monitoreo mostrando "No space left on device"
- AWS CloudWatch mostrando fallos de escritura en disco o errores de I/O
Herramientas clave que usé para detectar el problema:
df -h(muestra uso de espacio en disco en formato legible)du -sh /*ydu -sh /var/*(encuentra carpetas grandes)- AWS EC2 Monitoring y alarmas de CloudWatch
- Logs de errores:
/var/log/syslog,/var/log/messages, logs de Apache/Nginx/MySQL
Consejo profesional: ¡Si puedes hacer SSH y ejecutar df -h, y ves / o /dev/xvda1 al 100%, has encontrado el problema!
Profundizando: Descubriendo la verdadera causa raíz
Para mí, la historia no terminó en "disco lleno." Necesitaba saber por qué. Esto es lo que descubrí:
- Archivos de respaldo: Respaldos antiguos y automatizados se acumulaban en
/var/www/temp— más de 14GB de archivos .zip y .tgz, ninguno de los cuales era necesario. - Cache y logs de WordPress: Algunos sitios tenían carpetas de cache infladas y enormes logs de errores.
- Sin proceso de limpieza: No había script ni política para eliminar archivos antiguos, así que el mismo ciclo se repetía cada pocas semanas.
- Monitoreo omitido: No había configurado alertas de espacio en disco de AWS CloudWatch, así que el problema llegó a "crítico" antes de que lo notara.
Lección: En un servidor multi-sitio, incluso unos pocos gigabytes de respaldos o logs pueden llevarte al 100% de uso de disco rápidamente.
La solución: Cómo liberé espacio y detuve los crashes
1. Identifica los que consumen disco
Haz SSH a tu instancia y descubre qué está consumiendo espacio:
df -h
sudo du -h --max-depth=1 / | sort -hr | head -20
sudo du -h --max-depth=1 /var/www | sort -hr | head -20
2. Elimina respaldos, logs y cache no utilizados
Limpia los grandes culpables. Para mí, estos comandos hicieron maravillas:
sudo rm -rf /var/www/temp/*
sudo rm -rf /var/log/*.gz
sudo rm -rf /var/log/*.1
sudo journalctl --vacuum-time=3d
sudo rm -rf /tmp/*
3. Confirma el espacio libre
Siempre verifica después de la limpieza:
df -h
El uso del disco bajó instantáneamente de 100% a 72% — y el servidor volvió a estar en línea.
4. Reinicia servicios si es necesario
A veces Apache, Nginx o MySQL necesitan un reinicio para recuperarse:
sudo systemctl restart nginx
sudo systemctl restart apache2 # (si usas Apache)
sudo systemctl restart mysql
5. Configura respaldos automatizados y limpieza
-
Snapshots semanales automatizados: Configuré AWS Data Lifecycle Manager (DLM) para crear un snapshot EBS semanal (y eliminar automáticamente los antiguos).
-
Limpieza regular: Agregué un cron job simple para eliminar todo en
/var/www/tempcada semana:0 3 * * 0 rm -rf /var/www/temp/* -
Alarmas de CloudWatch: Activé alertas de CloudWatch para uso alto de disco — ¡no más sorpresas desagradables!
Cómo prevenir el 100% de uso de disco en servidores WordPress de AWS
Si ejecutas WordPress (o cualquier aplicación web) en AWS EC2, esto es lo que recomiendo:
- Monitorea todo: Configura CloudWatch para alertarte cuando el uso de disco alcance 75%, 85% y 95%.
- Automatiza respaldos — pero rotarlos: Usa AWS Lifecycle Manager para snapshots EBS y establece una política de retención. Mueve los respaldos de WordPress/base de datos a S3 en lugar de almacenarlos localmente.
- Automatiza la limpieza: Usa cron jobs o scripts para limpiar regularmente archivos temporales, cache y logs.
- Escala si es necesario: Si tus sitios siguen superando el disco, considera un volumen EBS más grande o separa respaldos/medios en S3.
- Revisa plugins y cache: Plugins de respaldo o cache mal configurados pueden llenar discos rápidamente.
Conclusión: Del caos al control
Alcanzar el 100% de uso de disco en AWS puede ser una pesadilla, pero no tiene que derribar tu negocio. Con unas pocas verificaciones inteligentes, limpiezas y algo de automatización, puedes pasar de crashes constantes a total confianza. Mis blogs de WordPress ahora son estables, están respaldados, y duermo mejor por la noche sabiendo que AWS me respalda.
¿Has enfrentado problemas de disco en el servidor o quieres compartir tu propia solución? Deja un comentario o pregunta abajo — ¡ayudémonos mutuamente a mantener nuestros sitios en línea!