Это практическое руководство по резервному копированию на VPS, размещённом в Беларуси. Объясню, зачем хранить копии локально и вне сервера, какие схемы выбрать для малого бизнеса и как вернуть работу сервиса после сбоя без паники.
Базовая стратегия: правило 3-2-1 и локальная специфика
Пример: небольшое кафе в Минске ведёт сайт для меню и онлайн‑заказов, а также использует POS на VPS. Потеря данных сайта снижает число заказов, потеря POS — выручку за смену. Для таких бизнесов подойдёт правило 3-2-1: три копии, на двух разных носителях, одна копия вне основного сервера.
Как сделать: настраивайте ежедневные инкрементальные бэкапы базы и файлов + еженедельный полный бэкап. Храните одну копию на S3‑совместимом хранилище в том же дата‑центре Беларуси для скорости восстановления и одну копию на удалённом объект‑хранилище или другом VPS в другой локации. Для локального Object Storage посмотрите предложение по Nextcloud и S3‑совместимое Object Storage на белорусском VPS.
Инструменты и автоматизация на VPS
Пример: интернет‑магазин в Гомеле с OpenCart и 50 заказами в сутки. Ручное копирование файлов займёт время и будет ошибочным. Автоматизация решает проблему регулярно и предсказуемо.
Как сделать: выберите инструмент (restic, borg, duplicity). Настройте ключи и инициализацию репозитория, создайте скрипт, который:
- дампит базу (mysqldump или pg_dump),
- архивирует медиа и конфиги,
- запускает инкрементальный бэкап в репозиторий,
- удаляет старые снапшоты по политике хранения.
План восстановления: восстановление без паники
Пример: салон красоты в Гродно обновил плагин на сайте и потерял базу клиентов. Быстрое восстановление важно, чтобы вернуть записи и купоны клиентов.
Как сделать: опишите шаги восстановления в коротком документе и прогоняйте тестовый откат раз в месяц. Последовательность простая:
- Остановить сервисы, которые пишут в базу.
- Восстановить последний доступный дамп базы.
- Развернуть файлы медиа из инкремента, начиная от полного снапшота.
- Проверить логи и целостность данных, запустить сервисы.
Безопасность и хранение ключей
Пример: бухгалтерия в Бресте хранит счета и акты. Неправильные права на бэкап‑репозиторий ставят под угрозу конфиденциальность документов.
Как сделать: шифруйте резервные копии на этапе архивации или используйте шифрование клиента в инструментах (restic/duplicity). Храните ключи в отдельном менеджере паролей или в защищённой секции на другом сервере с ограниченным доступом. Ограничьте доступ к скриптам бэкапа по sudo и используйте учетные записи с минимальными правами.
Резервирование инфраструктуры: локальный и гибридный подход
Пример: сервис бронирования номеров в Барановичах использует VPS и публичное облако для отчётности. Одного хоста недостаточно для устойчивости бизнеса в период роста нагрузки.
Как сделать: комбинируйте хранение бэкапов на VPS и в публичном облаке или другом дата‑центре. Для гибридной архитектуры пригодится сценарий: быстрый доступ к бэкапам в локальном дата‑центре для срочного восстановления и удалённая копия для защиты от локальных аварий. См. идеи по архитектуре в статье про гибридное размещение: VPS в Беларуси плюс публичное облако.
Типичные ошибки
- Нет регулярного тестирования восстановления; бэкап есть, но восстановление не работает.
- Хранение всех копий только на одном VPS; одна поломка — потеря всех данных.
- Отсутствие шифрования и управления ключами; доступ к бэкапам открыт слишком широко.
- Неправильные политики хранения: важные данные удаляются раньше времени.
- Мониторинг бэкапов отсутствует: скрипт упал, уведомление не настроено.
3 шага, которые можно сделать на этой неделе:
- Настроить ежедневный дамп базы и выгрузку на S3‑совместимое хранилище.
- Написать простой скрипт восстановления и выполнить тест отката на копии, не в проде.
- Внедрить шифрование бэкапов и ограничить доступ к ключам.