Рассказываем, каким образом можно создавать резервные копии и насколько часто стоит это делать
Резервное копирование для вашего сайта
Сибирикс

Резервное копирование для вашего сайта

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

Резервное копирование предполагает создание полной копии сайта со всем контентом, настройками, базами данных. Такая копия называется бэкапом. Бэкапы нужно обязательно создавать перед техническими работами на сайте, его обновлением, переездом на новый сервер и т. д. Также желательно выполнять регулярное резервное копирование «на всякий случай», чтобы избежать потери данных из-за:
  • проблем с текущим сервером;
  • действий кибермошенников;
  • человеческого фактора (администратор или владелец сайта нажал не туда, что-то удалил или переставил).
Многие владельцы небольших компаний с небольшими же сайтами уверены, что восстанавливать сайт им не придется — мошенникам они не интересны, с сервером ничего не случится. Как показывает практика, лучше перестраховаться — например, в мае произошел массовый дефейс сайтов сегмента «.рф», и под раздачу попали многие сайты на 1С-Битрикс, вне зависимости от величины компании. К тому же, хакеры часто выбирают для своих атак именно малые организации, потому что их сайты, как правило, слабее защищены.

Класть все яйца в одну корзину также не стоит: хранить бэкапы на том же сервере, что и сам сайт, небезопасно. Даже крупнейшие дата-центры не застрахованы от форс-мажоров — например, в 2021 году в Страсбурге полностью сгорел ЦОД крупнейшего европейского провайдера OVH, что обрушило миллионы сайтов по всему миру — например, сайт страсбургского аэропорта, сервисы «Яндекса» и Google, портал Security Lab.

В общем, лучше один раз подстраховаться, чем потом жалеть о последствиях. Поэтому мы, например, рекомендуем делать ежедневный бэкап и хранить данные не менее 1−2 недель. Часто хостинг-провайдер предоставляет клиентам услугу резервного копирования, также можно настроить ежедневный бэкап в облако (например, у Битрикса опция доступна по умолчанию при активной лицензии), но лучше, чтобы у вас было сразу несколько резервных копий, и они хранились в разных местах.

Каким бывает резервное копирование?

Полное копирование

Полное резервное копирование (full backup) — это создание точной копии ресурса со всеми параметрами. То есть, даже если все данные сайта будут уничтожены, с помощью этой резервной копии можно будет восстановить ресурс так, что никто и не догадается, что он восстановлен из бэкапа. Конечно, создание такой копии требует значительных затрат ресурсов — и места на сервере, и времени, и нагрузки на сеть. Поэтому для сохранения изменений используются другие схемы копирования, но все они начинаются с создания полного бэкапа.

Дифференциальное копирование

При дифференциальном резервном копировании (differential backup) сохраняются только те данные, которые были изменены с момента полного копирования. Конечно, такая копия будет создана гораздо быстрее, чем полная. Но если делать дифференциальное копирование неоднократно, с каждым разом в бэкап будут добавляться новые данные, и он станет тяжелее. Для восстановления сайта понадобится последняя дифференциальная копия и полная копия.

Инкрементное копирование

При инкрементном резервном копировании (incremental backup) каждый бэкап будет содержать только изменения, внесенные после последнего резервного копирования — полного, дифференциального или предыдущего инкрементного. Инкрементный бэкап создается максимально быстро, не занимает много места и не создает значительной нагрузки на сеть. Но логично, что это и наименее надежный способ хранения информации — если основные данные будут уничтожены, то восстановить их по инкрементному бэкапу будет сложно. Нужно будет последовательно восстановить все инкрементные копии, созданные с момента полного копирования.

Существует также метод обратного инкрементного копирования: при внесении изменений все данные из полной копии перемещаются в новую копию, а сами изменения сохраняются в предыдущей. Таким образом, цепочка копий всегда будет начинаться с полной версии. Можно настроить копирование таким образом, чтобы по определенному расписанию полная копия объединялась с существующими инкрементами, создавая новый исходный бэкап — этот метод называется синтетическим копированием.

Непрерывное копирование

При непрерывном резервном копировании все изменения сохраняются автоматически или по определенному графику — например, раз в 2 часа. Это требует постоянного подключения к сети и к месту сохранения бэкапов. Непрерывное копирование подойдет для небольших регулярных изменений и «легких» проектов. Иначе — вам будет необходимо много места под резервные копии.

Как часто делать бэкапы?

Для оптимального сохранения всех данных и экономии ресурсов в каждой компании используются свои схемы резервного копирования, где сочетаются несколько типов бэкапов. Понятно, что проблематично делать полную копию сложного ресурса каждый день — это создает большую нагрузку на сеть и занимает много времени. Поэтому используются различные схемы создания бэкапов.

Наиболее простая схема — ежедневный инкрементный бэкап + еженедельная полная копия. Более усложненная версия — ежедневный инкремент + еженедельный дифференциальный бэкап + ежемесячное создание полной копии. Также можно создавать копии после определенных событий.

Ручное копирование применяется только для совсем простых ресурсов с небольшим количеством пользователей. В большинстве случаев, бэкапы создаются автоматически — с помощью специальных утилит или сервисов для копирования. В таких сервисах можно задавать расписание (по дням или в зависимости от событий), схему копирования, сценарии при сбоях, архивирование или удаление неактуальных копий.

Как составить план резервного копирования?

В любом случае, собираетесь ли вы делать копирование вручную или использовать для него специальное ПО, необходимо конкретизировать параметры создания бэкапа:
  1. Что копируем: контент, настройки системы, базы данных и т. д.
  2. Когда копируем: даты, периоды или события.
  3. Как копируем: виды бэкапов, в соответствии с расписанием.
  4. Куда копируем: список хранилищ с привязкой к типу копии и расписанию.
  5. Допустимое время восстановления по каждому объекту — максимальный период, в течение которого объект может не работать, и это не вызовет критических нарушений процессов.
  6. Допустимые потери данных по каждому объекту — максимальный период времени, за который могут быть утеряны данные, и это не вызовет критических нарушений.
  7. Как храним: количество допустимых копий, срок их хранения, действия после окончания срока (архивация, удаление, перенос на другой носитель и т. д.).
  8. Как проверяем целостность копирования и состояние бэкапов.
  9. Что делаем в случае форс-мажора: алгоритм восстановления ресурса.
  10. Кто несет ответственность за процесс и контролирует восстановление.

Необходимо регулярно проверять план восстановления и, при необходимости, вносить в него изменения.

Где сохранять резервные копии?

Варианта, по сути, два: физические носители или облако. Держать резервные копии под рукой — на локальном сервере или на внешнем жестком диске — может быть удобнее для владельца сайта. Так все данные находятся под контролем, не нужно переживать, что с облаком что-то случится или доступ к нему потеряется.

Но собственное оборудование тоже не застраховано от поломок, поэтому рекомендуем хранить данные сразу на нескольких носителях. Среди IT-специалистов распространено «правило трех бэкапов» — на локальном сервере, на съемном диске и в облаке.

При этом, бэкап сайта и оригинал должны находиться в разных местах — если сервер, где хранится информация, выйдет из строя, или его атакуют злоумышленники, то вы в один момент останетесь без всех данных.

С помощью каких инструментов выполняется резервное копирование?

Собственные скрипты

Если у вас достаточно ресурсов (то есть — собственных программистов или бюджета на найм привлеченных), вы можете разработать собственное решение по конкретным параметрам. Существуют готовые утилиты, с помощью которых можно создать свой инструмент для бэкапов. Это удобно тем, что вы можете воплотить все пожелания и создать решение конкретно под свой сайт. Однако с развитием сайта или с появлением новых ресурсов инструмент придется перерабатывать, он может превратиться в очень громоздкий и неудобный — особенно, если над ним будут работать разные команды.

Open-source решения

Это инструменты с открытым кодом — их можно перерабатывать под свои требования. Для этого тоже понадобится программист, который поможет трансформировать открытое решение под ваши задачи и грамотно его настроить. Среди популярных open-source инструментов для создания бэкапов — Amanda, Bacula, Duplicity, Borg, Rsnapshot. Все инструменты разные, предназначены для различных видов копирования — например, Rsnapshot создан для быстрого создания инкрементных бэкапов.

Встроенные инструменты

Некоторые хостинг-провайдеры предоставляют услугу резервного копирования — она доступна в панели управления. А в 1С-Битрикс можно воспользоваться облачным хранилищем для бэкапов. Но такие встроенные инструменты довольно ограничены по функционалу — нет гибких настроек по расписанию копирования, количеству копий, времени их хранения и т. д. К тому же, при создании бэкапа через хостинг он будет храниться на том же сервере, что и сам сайт. Поэтому, от встроенных инструментов отказываться не стоит, но вместе с этим нужно использовать и другие методы резервного копирования.

Плагины

CMS Joomla и Wordpress позволяют использовать плагины для резервного копирования. Популярные примеры для Joomla — Easy Joomla Backup и Akeeba Backup, для Wordpress — UpDraftPlus, Backup Buddy и BlogVault. Хорошие плагины для Joomla нужно поискать, а вот для Wordpress их более, чем достаточно — на любой вкус и кошелек.

Специальное ПО

Наиболее простой способ — обратиться к уже готовым сервисам, которые дают широкие возможности для настройки резервного копирования. Как правило, они платные, но с их помощью можно быстро и гибко настроить процессы создания бэкапов, а также они гарантируют своевременную техподдержку, если что-то пошло не так. Среди популярных инструментов: CodeGuard, WSR, Action Backup.

Облачные сервисы для создания бэкапов

Если с физическими носителями все понятно, то среди облачных сервисов важно выбрать по-настоящему надежные — те, которые будут защищены от кибермошенников и не «упадут» в самый неподходящий момент. После введения санкций некоторые облака стали недоступными — мы отобрали те, которые работают в России в данный момент.
Сервис может копировать физические серверы на Windows и Linux, а также виртуальные на Hyper-V или VMware. Обеспечивает гранулярное восстановление Active Directory, Exchange, SharePoint, SQL Server и Oracle, возможно восстановить отдельные объекты и базы данных. Поддерживает копирование зашифрованных со стороны клиента данных. Данные хранятся в ОД TIER-III Facility & Operation.

Стоимость: 1 руб/мес за 1 Гб, аренда сервера — от 800 руб/мес.
Облако позволяет делать быстрые бэкапы за счет особого алгоритма — сначала создаются снапшоты сайта (моментальные копии данных на определенный момент времени), а сам бэкап делается со снапшотов. Для каждой копии настраивается тройная репликация на разных серверах. Можно настроить расписание автоматического копирования или делать бэкапы вручную.

Стоимость: аренда сервера — от 800 руб/мес, полный расчет услуг можно посмотреть здесь.
Сервис предлагает автоматическое ежедневное копирование в ночное время, чтобы не загружать сеть. Копии при этом будут храниться от 2 дней до месяца. По умолчанию, услуги сервиса доступны пользователям виртуальных серверов Mix Telecom, но со сторонними пользователями компания тоже готова работать.

Стоимость: для сторонних пользователей рассчитывается индивидуально, для пользователей Mix Telecom — от 290 руб (за одну виртуальную машину и виртуальный диск на 1 ГБ, с глубиной хранения копий 2 дня).
Сервис сохраняет данные в облаке, которое поддерживается серверами ЦОД уровня TIER III. Можно настроить абсолютно любую частоту резервного копирования, при этом, система сама гибко контролирует скорость передачи данных, чтобы не создавать повышенную нагрузку на сервер. Для сложных проектов можно настроить особые политики распределения мощности.

Стоимость: от 301 руб/мес (при единовременной оплате за год), есть тестовый период.
Сервис дает финансовую гарантию на сохранность данных. Для бэкапов используется объектное хранилище с S3-совместимым API, которое легко интегрируется с внешними сервисами. Облако аттестовано в соответствии со 152-ФЗ («О персональных данных»). ЦОДы сервиса обладают уровнем TIER III и находятся на территории РФ.

Стоимость: зависит от объема диска и количества резервных копий, рассчитать можно с помощью калькулятора.

В заключение

Повторим еще раз «правило трех бэкапов» (физический сервер + съемный диск + облако) и примем тот факт, что восстанавливать утерянную информацию намного дороже, чем побеспокоиться о своевременном резервном копировании. Так что, планируя разработку сайта, сразу включите в бюджет затраты на этот процесс.