Новости

Миграция на облачный VPS: чек-лист без простоев и потери данных

Проект растёт, нагрузка прыгает, старый VPS уже не тянет, а тарифы кусаются. Переход на облачный VPS — логичный шаг, но страх один: «а вдруг сайт ляжет или данные пропадут». Мы провели больше 30 таких миграций для белорусских стартапов и компаний — и каждый раз результат один: ноль простоев, ноль потерянных файлов.

Главный секрет — не скорость, а подготовка и правильная последовательность. Ниже — рабочий чек-лист, который мы используем сами. Всё протестировано на реальных проектах в 2026 году. Следуйте по шагам — и миграция пройдёт как обновление приложения.

Подготовка: делаем всё за 3–7 дней до старта

Сначала — полный бэкап. На старом VPS: tar -czf fullbackup-$(date +%F).tar.gz /var/www /etc /home /var/lib/docker/volumes

Скопируйте архив на локальный компьютер и в облачное хранилище (Yandex Disk или Google Drive). Проверьте восстановление на тестовом сервере — это обязательно.

Создайте точную копию окружения:

  • Запишите версии ОС, PHP/Node, Docker, баз данных.
  • Сделайте дамп всех БД: mysqldump или pg_dump.
  • Проверьте DNS TTL — поставьте 300 секунд минимум за сутки.

На новом облачном VPS разверните чистую систему и установите Docker + Compose (как в предыдущей статье). Добавьте те же SSH-ключи и firewall.

Протестируйте на staging: залейте копию сайта, поднимите Docker-стек и проверьте работу. Исправьте все расхождения (пути, порты, переменные). Это занимает 2–3 часа, но спасает от сюрпризов.

Из нашего опыта: 70 % проблем на миграции возникают именно из-за пропущенной подготовки. Один раз клиент забыл про .env-файл — пришлось откатывать. Не повторяйте.

Сама миграция: zero-downtime за 60–90 минут

В день X запускаем синхронизацию.

Сначала — rsync данных: rsync -avz —delete -e «ssh -p 2222» /var/www/ user@new-vps:/var/www/

Для Docker volumes: docker save $(docker images -q) | gzip > images.tar.gz scp images.tar.gz new-vps: docker load < images.tar.gz

Поднимите стек на новом сервере в тестовом режиме (ports на 8080). Проверьте работу.

Когда всё зелёное — меняем DNS: обновите A-запись на новый IP. Cloudflare или ваш регистратор покажет статус распространения.

Переключаем трафик:

  • На старом сервере поставьте nginx redirect 301 на новый домен (временно).
  • Запустите финальную rsync (займёт 2–5 минут).
  • Перезапустите Docker Compose на новом VPS с реальными портами.

Проверьте: curl -I ваш-домен. Если 200 OK — готово.

Для приложений без Docker используйте pm2 или systemd — принцип тот же. Мы так переносили даже крупные магазины на WooCommerce — сайт работал без единой секунды downtime.

После миграции: проверка и оптимизация

Первые 24 часа — мониторинг. Запустите Netdata и смотрите нагрузку. Проверьте логи на ошибки.

Обновите firewall, добавьте Cloudflare proxy и rate-limiting. Удалите старый сервер только через неделю — после полного подтверждения.

Оптимизируйте под облако: включите auto-scaling snapshots, настройте резервное копирование volumes в S3-совместимое хранилище.

Проведите нагрузочное тестирование: 2–3 раза запустите siege или k6. Убедитесь, что новый VPS держит в два раза больше трафика.

Мы всегда добавляем ещё один шаг — уведомление команды: «Сайт теперь на новом железе, всё работает быстрее». Это снимает лишние вопросы.

Выводы

Миграция на облачный VPS — не лотерея, а чёткий процесс из 12 шагов. Подготовка, zero-downtime rsync, DNS и проверка — вот и всё. За два часа вы получаете масштабируемый сервер, ниже цены и возможность расти дальше. Мы используем этот чек-лист на каждом проекте в Беларуси и не теряем ни одного клиента. Начните с бэкапа сегодня — завтра уже можно мигрировать.