Правило 3-2-1: простая схема, которая спасает данные

«У нас есть бэкапы» — самая частая фраза, которую мы слышим прямо перед тем, как выясняется, что восстановить данные не получается. Правило 3-2-1 — это короткая формула, которая отделяет настоящую защиту от иллюзии защиты. Её придумали не мы, ей десятки лет, но она работает и для маленького сайта, и для серверной компании.

Что означают три цифры

3 копии ваших данных: сам рабочий сайт плюс минимум две резервные копии. Одна копия — это не копия: если она единственная, любая её потеря оставляет вас ни с чем.

2 разных носителя. Копии не должны лежать на том же диске или в том же хранилище, что и оригинал. Умер диск — данные и «бэкап» на нём умерли вместе.

1 копия вне площадки (off-site). Хотя бы одна копия должна храниться физически в другом месте: другой дата-центр, облако, другой город. Это спасает при пожаре, затоплении или блокировке всей площадки.

Почему «бэкап на том же сервере» — не бэкап

Самая распространённая ошибка: копии складываются в соседнюю папку на том же сервере. Пока речь о случайно удалённом файле — помогает. Но реальные катастрофы бьют по всему серверу сразу: вышел из строя диск, сервер зашифровал вымогатель, хостинг заблокировал аккаунт. В этот момент «бэкап рядом» исчезает вместе с оригиналом. Правило 3-2-1 существует именно ради таких сценариев.

Как это выглядит на практике

Для небольшого бизнеса рабочая схема простая: рабочий сайт на сервере (копия 1), ежедневный бэкап на отдельное хранилище у того же или другого провайдера (копия 2, другой носитель), и еженедельная выгрузка в облачное S3-хранилище в другой стране (копия 3, off-site). Плюс автоматическая проверка, что все три задачи реально выполнились, а не просто были запланированы.

Цифры — половина дела

Даже идеальная схема 3-2-1 бесполезна, если копии ни разу не проверяли восстановлением. Копия имеет смысл только тогда, когда из неё действительно можно поднять рабочий сайт — и вы знаете, сколько времени это займёт. Поэтому к правилу 3-2-1 мы всегда добавляем четвёртый, неписаный пункт: регулярно пробовать восстановиться.

3-2-1 — это не про то, где лежат архивы. Это про то, что и как быстро вы сможете вернуть, когда что-то пойдёт не так.

Как это выглядит для небольшого проекта

Схема звучит солидно, но для сайта или небольшого магазина реализуется недорого и без всякой экзотики.

  • Первая копия — рядом, на сервере или у хостинга. Быстрая, нужна для мелких неприятностей: удалили не тот файл, обновление сломало вёрстку. Восстановление занимает минуты.
  • Вторая — в облачном хранилище у другого поставщика. Это та самая копия, которая спасает при отказе сервера или проблемах с хостингом.
  • Третья — редкая, с долгим сроком хранения. Раз в неделю или в месяц. Она нужна не от аварии, а от медленных проблем: заражение обнаружили через две недели, ошибку в данных заметили в конце месяца.

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

Чего правило не покрывает

Формула отвечает на вопрос «где хранить», но не отвечает на три других — не менее важных.

Как часто. Раз в сутки — разумный минимум для сайта. Но для магазина в сезон это означает потерю дня заказов. Базу данных нередко имеет смысл копировать чаще, чем файлы: она меняется постоянно, а весит немного.

Сколько хранить. Три последние копии — мало. Если проблема появилась неделю назад, все три уже содержат её внутри. Рабочая схема — несколько ежедневных, несколько еженедельных и пара ежемесячных.

Восстанавливается ли вообще. Самый главный вопрос, и правило 3-2-1 на него не отвечает никак. Копия, которую ни разу не разворачивали, — это надежда, а не резервная копия.

Отдельно про доступ и шифрование

Резервная копия сайта содержит всё: базу с клиентами, их адресами, телефонами и историей заказов. По сути это самый чувствительный файл в проекте — и хранится он часто в наименее защищённом месте.

Минимум, который стоит соблюдать: копии в облаке зашифрованы, доступ к хранилищу отдельный (не тот же самый, что к серверу), и выдан он не всем подряд. Для проектов с европейскими клиентами это ещё и вопрос соответствия правилам обработки персональных данных.

Коротко

Правило 3-2-1 — не догма, а способ проверить себя одним вопросом: если прямо сейчас исчезнет сервер вместе со всем, что на нём, — с чего мы начнём?

Если ответ есть и он не начинается со слова «наверное», схема работает.