La pérdida de datos en servidores de producción puede destruir la reputación de una empresa y causar enormes perjuicios financieros. Aunque los proveedores de VPS ofrecen snapshots de disco, contar con copias de seguridad independientes y almacenadas fuera del servidor de origen es una regla de oro de la infraestructura.
En esta guía, enseñamos cómo crear una rutina automatizada de copia de seguridad de archivos y bases de datos hacia el almacenamiento en la nube Amazon S3 (o cualquier object storage compatible, como MinIO o Backblaze).
1. Configurando las Credenciales (AWS CLI)
La herramienta recomendada para interactuar con S3 desde la terminal de Linux es AWS CLI.
Instalación y Configuración:
- Instale el paquete:
sudo apt install awscli -y - Cree una clave de acceso (Access Key y Secret Key) en la consola de AWS a través del servicio IAM, limitando los permisos únicamente a acciones en el bucket de copia de seguridad deseado.
- Configure las credenciales en el servidor Linux ejecutando:
aws configure
2. Escribiendo el Script de Copia de Seguridad
Cree un script en bash para automatizar el volcado (dump) de la base de datos (en este ejemplo, PostgreSQL) y la compresión de la carpeta de archivos estáticos.
#!/bin/bash
# Configuraciones
BACKUP_DIR="/tmp/backups"
BUCKET_NAME="mi-bucket-de-backup-seguro"
DATA=$(date +%Y-%m-%d-%H%M)
# Crear carpeta temporal
mkdir -p $BACKUP_DIR
# 1. Copia de Seguridad de la Base de Datos
pg_dump -U postgres mi_base_datos > $BACKUP_DIR/db_$DATA.sql
# 2. Compresión de los archivos de la aplicación
tar -czf $BACKUP_DIR/archivos_$DATA.tar.gz /var/www/mi-app
# 3. Envío cifrado a S3
aws s3 cp $BACKUP_DIR/db_$DATA.sql s3://$BUCKET_NAME/db_$DATA.sql --sse AES256
aws s3 cp $BACKUP_DIR/archivos_$DATA.tar.gz s3://$BUCKET_NAME/archivos_$DATA.tar.gz --sse AES256
# Limpieza de archivos locales temporales
rm -rf $BACKUP_DIR
3. Automatizando con Cron Job
Para ejecutar el script automáticamente todas las noches (a las 02:00 de la mañana):
- Abra las tareas programadas del sistema:
sudo crontab -e - Agregue la línea al final del archivo:
0 2 <em class="text-slate-400"> </em> * /home/usuario/scripts/backup.sh > /dev/null 2>&1
Conclusión
Contar con políticas de copia de seguridad automatizadas y almacenadas fuera de la infraestructura de origen es indispensable. Configurando el cifrado a nivel de S3 y monitoreando la ejecución de estos scripts, su negocio estará totalmente protegido contra eliminaciones accidentales, desastres de hardware o ataques cibernéticos.