Tutorial de migración de VPS desde DigitalOcean a Hetzner sin interrupciones

·

·

Tutorial Completo: Migración de VPS desde DigitalOcean a Hetzner sin Interrupciones

Guía paso a paso para trasladar tus servicios, datos y configuraciones con cero downtime

1. Introducción y Consideraciones Previas

La migración de un servidor virtual privado (VPS) es una tarea crítica y sensible para cualquier administrador de sistemas. El objetivo principal de esta guía es detallar cada paso de forma seriamente documentada y precisa, cubriendo desde la evaluación inicial hasta la puesta en producción en el nuevo proveedor, asegurando cero interrupciones.

  • Proveedor Origen: DigitalOcean
  • Proveedor Destino: Hetzner Cloud
  • Servicios involucrados: Aplicaciones web, bases de datos SQL/NoSQL, DNS, certificados SSL, tareas programadas, usuarios y permisos.

2. Preparación del Entorno

2.1 Evaluación de recursos

Antes de iniciar, verifica que la configuración del VPS en Hetzner satisfaga o supere los recursos (CPU, RAM, almacenamiento, ancho de banda) del VPS en DigitalOcean.

Recurso DigitalOcean Hetzner Cloud
vCPU 2 2–4
RAM 4 GB 4 GB
Disco 80 GB SSD 80 GB SSD

2.2 Acceso y credenciales

  • Crea o verifica tu clave SSH en DigitalOcean: ~/.ssh/id_rsa.pub.
  • Asegúrate de agregar la misma clave pública en tu proyecto de Hetzner Cloud (Guía SSH Keys Hetzner).
  • Comprueba accesos con:
    ssh root@IP_DROPLET ssh root@IP_HETZNER

3. Copia de Seguridad Completa

Realiza un backup íntegro de archivos y bases de datos antes de cualquier operación:

  1. Comprimir directorios esenciales:
    tar czvf /root/backup_app_(date %F).tar.gz /var/www /etc/nginx /etc/apache2
  2. Exportar bases de datos MySQL/MariaDB:
    mysqldump -u root -p –all-databases > /root/all_databases.sql
  3. Opcional: Snapshot de DigitalOcean (en caso de emergencia).

4. Configuración de Red y Firewall

4.1 Ajustes de red en Hetzner

  • Asigna una IP flotante (opcional para failover).
  • Configura el firewall con reglas mínimas:
    ufw allow 22/tcp
    ufw allow 80,443/tcp
    ufw enable

4.2 Pruebas de conectividad

Verifica ping y puertos:

ping IP_HETZNER
nc -zv IP_HETZNER 22 80 443

5. Transferencia de Datos y Archivos

Se recomienda usar rsync por su capacidad de sincronización incremental y compresión:

rsync -avz –delete -e ssh -p22 root@IP_DROPLET:/var/www/ /var/www/
rsync -avz –delete -e ssh -p22 root@IP_DROPLET:/etc/nginx/ /etc/nginx/

Paralelamente, transfiere tus copias de seguridad:

scp /root/backup_app_2023-12-01.tar.gz root@IP_HETZNER:/root/

Descomprime y verifica permisos:

tar xzvf /root/backup_app_2023-12-01.tar.gz -C / chown -R www-data:www-data /var/www

6. Migración de Bases de Datos

6.1 MySQL/MariaDB

  1. En Hetzner, instala el motor de BD y configura usuarios/contraseñas.
  2. Importa el volcado:
    mysql -u root -p < /root/all_databases.sql
  3. Verifica tablas e índices.

6.2 Otras Bases de Datos

PostgreSQL, MongoDB, Redis y otros requieren pasos similares de dump/restore consulta su documentación oficial en PostgreSQL o MongoDB.

7. Configuración de Servicios y Aplicaciones

Revisa y adapta los archivos de configuración (Nginx, Apache, PHP-FPM, Node.js, etc.):

  • Actualiza rutas de archivos y credenciales de BD.
  • Reimporta certificados SSL (Lets Encrypt):
    certbot certonly –standalone -d tu-dominio.com
  • Reinicia servicios:
    systemctl restart nginx php7.4-fpm

8. Migración DNS y Cero Downtime

  1. Reduce el TTL (time-to-live) de tus registros DNS a 300 segundos con 24 horas de antelación.
  2. Crea los mismos registros apuntando a la IP de Hetzner (A, AAAA, MX, CNAME).
  3. Verifica propagación con:
    dig short tu-dominio.com @8.8.8.8
  4. Sincroniza datos por última vez (rsync incremental).
  5. Cambia registros DNS oficialmente. Gracias al TTL bajo, la transición se completará en pocos minutos.

9. Pruebas y Validación Final

  • Comprueba logs de error en /var/log/nginx/ y /var/log/syslog.
  • Ejecuta pruebas funcionales de la aplicación: formularios, login, subida de archivos.
  • Mide rendimiento y latencia (ping, curl, ApacheBench).

10. Limpieza y Retirada de Recursos

  • Verifica que todo funciona en Hetzner.
  • Desactiva o elimina el VPS en DigitalOcean para evitar costos duplicados.
  • Guarda tus snapshots finales y documenta la nueva configuración.

Conclusión

Con este procedimiento detallado, la migración de DigitalOcean a Hetzner se efectúa de manera diligente y segura, reduciendo el riesgo de caídas inesperadas. La clave radica en la planificación, las pruebas continuas y el mantenimiento de backups actualizados. ¡Éxito en tu migración sin interrupciones!



Leave a Reply

Your email address will not be published. Required fields are marked *