В тарифе хостинга написано «ежедневные резервные копии», и кажется, что сайт под защитой. Но хостинг хранит эти копии у себя, и авария может уничтожить их вместе с сайтом. Есть и второй риск: сайт ни разу не пробовали восстановить из копии, и никто не знает, получится ли.
От обоих рисков защищают правило 3-2-1 и пробное восстановление. Если не хочется разбираться самим, в конце статьи есть шесть вопросов для хостинга или подрядчика.
Что значит 3-2-1
Для сайта правило читается так [1]:
- 3 экземпляра сайта: сам сайт и две резервные копии.
- 2 разных места хранения, например сервер сайта и отдельное хранилище копий. Тогда одна поломка не заденет все копии сразу.
- 1 копия у другой компании, лучше в другом городе. Авария у хостинга до неё не дотянется.
Что копировать и где хранить копии
Из чего состоит копия сайта
Копия сайта не сводится к одной папке с файлами. Для полного восстановления нужны четыре части:
- База данных. В ней товары, цены, заказы, заявки и личные кабинеты. Для магазина это самая ценная часть.
- Файлы сайта. Код, шаблоны, картинки и документы, которые загружали сотрудники и посетители.
- Настройки домена и почты. Это записи DNS, адресной книги интернета. По ним посетители попадают на ваш сервер, а письма доходят до вашего почтового ящика. Записи видны в кабинете регистратора или хостинга, в разделе о DNS. Сохраните снимок экрана с ними или попросите подрядчика выгрузить их в файл. Заодно отметьте, у какой компании работает ваша почта.
- Список доступов. Запишите, где зарегистрирован домен, где работают хостинг, почта и хранилище копий. Отметьте, на кого оформлен каждый аккаунт. Пароли записывайте в менеджер паролей: эта программа хранит их в зашифрованном виде.
Без списка доступов вернуть сайт бывает невозможно. На Хабр Q&A, сайте вопросов и ответов для разработчиков, владелец интернет-магазина спросил, можно ли восстановить его сайт [2]. Исходного кода у него не было, логина и пароля от хостинга тоже. А фирма, которая делала сайт, его уже не хранила.
Ответ, отмеченный решением, оказался коротким: разработчик не обязан хранить ваш проект [2].
Где лежат копии
Рабочий сайт стоит на сервере хостинга. Первая резервная копия лежит в хранилище того же хостинга, из неё быстро возвращают сайт после неудачного обновления или случайного удаления. Вторую копию хранят у другой компании, лучше в другом городе. Аккаунт этого хранилища оформляют на вашу фирму и защищают отдельным паролем.
Если хранилище у другой компании умеет запрещать удаление до конца срока хранения, включите этот запрет. Тогда копию не сотрёт даже тот, кто украдёт пароль от хранилища. Взломщики, которые шифруют данные ради выкупа, добираются и до резервных копий [3].
Когда копия у хостинга пропадает вместе с сайтом
Для быстрого возврата после ошибки копия у хостинга удобна. Но есть три случая, когда она не поможет.
Сервер удалили вместе с копиями
Один владелец сайта рассказал на Хабре, как остался без сервера. Хостинг удалил его через 7 дней после просрочки оплаты [4]. Пропали и копии. Владелец платил за них отдельно, но лежали они во внешнем хранилище того же хостинга [4].
Спасло только то, что хранилось вне хостинга. На компьютере владельца нашлась копия базы почти четырёхмесячной давности, а видео лежали в отдельном хранилище [4]. Остальное он собирал из страниц, которые сохранил поисковик. Сайт снова заработал через 4 дня после удаления [4].
Взломали панель или сервер
Кто получил пароль от панели хостинга, у того под рукой и сайт, и копии в том же аккаунте. Удалить или зашифровать он может всё сразу. Поэтому копию у другой компании хранят в отдельном аккаунте с другим паролем.
Сгорел дата-центр
В ночь на 10 марта 2021 года в Страсбурге горели дата-центры OVH, крупного европейского хостинга [5]. Одно здание сгорело полностью, соседнее частично [5]. Вернуть сайт после такого пожара можно только из копии, которая лежит в другом городе.
Бывает, что копия у хостинга лежит в том же здании, что и сервер. Например, Timeweb Cloud в описании своей услуги пишет, что копии хранятся в дата-центре, где работает сервер клиента [6]. Для защиты он советует добавлять внешние копии [6].
Как часто снимать копии и сколько их хранить
Частоту задаёт один вопрос: сколько последних изменений вы готовы потерять. Сайт вернётся из копии таким, каким был в момент её снятия. Заказы и правки, сделанные позже, придётся восстанавливать вручную.
Магазину и сайту, где каждый день появляются заявки или новые материалы, нужна ежедневная копия. Базе магазина хватит полной копии раз в сутки и нескольких промежуточных днём [7]. Промежуточная копия сохраняет только изменения с прошлого раза, поэтому снимается быстро.
Отдельную копию снимают перед каждым обновлением сайта или сервера. Если обновление что-то сломает, сайт вернут из этой копии.
Взлом часто замечают не сразу. Об этом говорят данные Mandiant, американской компании, которая расследует взломы. В 2024 году половину взломов в мире обнаружили только через 11 дней и позже [8]. Если копии хранятся всего неделю, к этому дню во всех может оказаться вредоносный код. Поэтому копии стоит хранить не меньше 30 дней [7].
Как проверить, что копия рабочая
Раз в квартал сайт нужно восстанавливать из копии с нуля, на пустом сервере [7]. Это делает подрядчик или администратор сайта, а вы читаете его отчёт. Проверка идёт в четыре шага:
- Он берёт копию недельной давности. Так сразу видно, что копии действительно хранятся хотя бы неделю.
- Восстанавливает из неё сайт на отдельном сервере. Действующий сайт при этом не трогает.
- Открывает главную страницу, каталог и вход в панель управления. Отправляет пробную заявку и проверяет, дошла ли она.
- Засекает время от начала работ до открытой страницы и записывает его в отчёт вместе с датой.
Записанное время и есть ваш настоящий срок восстановления.
Когда одной копии мало
Копия хранит данные, но принимать посетителей не умеет. Пока новый сервер настраивают из копии, сайт не открывается, и заявки уходят к тем, у кого он открыт. Пробное восстановление покажет, сколько часов это займёт у вас.
Если для вашего дела это слишком долго, нужен резервный сайт. Это второй работающий сайт у другой компании в другом городе. Его регулярно обновляют, а при аварии переводят на него посетителей. Восстанавливать сайт из копии в этот момент не нужно.
Если авария уже случилась, начните со статьи о первом часе после сбоя.
Шесть вопросов хостингу или подрядчику
Задайте их письмом в поддержку хостинга или подрядчику, который ведёт сайт. В хорошем ответе есть город, дата или число.
- Где лежат копии? В ответе ждите название компании и город. Если копии в том же дата-центре, что и сайт, пожар или отключение света заденет их вместе.
- Как часто их снимают? Сайту с заказами нужна копия хотя бы раз в сутки и отдельная перед каждым обновлением.
- Сколько дней их хранят? Недели мало, взлом могут заметить позже. Просите хранить копии не меньше 30 дней.
- Когда сайт последний раз восстанавливали из копии и сколько это заняло? Если называют дату и число часов, копию проверяли.
- У кого есть доступ к копиям? Хорошо, если удалить их нельзя тем же паролем, которым входят в панель сайта.
- Есть ли копия вне хостинга и на кого оформлено хранилище? Хотя бы одна копия должна лежать у другой компании. Аккаунт хранилища оформляют на вашу фирму.
Коротко
- Кроме самого сайта, нужны две копии: у хостинга и у другой компании, в аккаунте на вашу фирму.
- Копию сайта с заказами снимают каждый день и перед каждым обновлением, а хранят не меньше 30 дней.
- Раз в квартал сайт восстанавливают из копии на отдельном сервере и записывают, сколько это заняло.
- Пока основной сайт не работает, принять заказ на сайте может только резервный сайт. Копия этого не умеет.
В сопровождение Kreona Lab входят ночные копии сайта за последние 30 дней. Перед каждым обновлением мы снимаем отдельную копию. Наша программа проверки заходит на сайт каждые 5 минут, днём и ночью. Если он дважды подряд не открылся, она пишет вам и инженеру. Абонемент «Защита» стоит от 5 900 ₽ в месяц.
Копии лежат на сервере, оформленном на вас. За него вы платите хостингу, отдельно от абонемента. Советуем взять такой сервер у другой компании, а не у вашего хостинга. Тогда авария у хостинга копии не заденет. Сервер подберём мы и до оплаты скажем, сколько он стоит в месяц.
Резервный сайт нужен, если сутки без сайта для вас слишком долго. Иначе хватит ночных копий. Подключение стоит от 19 900 ₽ для лендинга и от 29 900 ₽ для магазина. К нему нужен абонемент «Защита»: без абонемента резервный сайт не обновляется. За второй сервер вы платите хостингу. Ночные копии тогда лежат на резервном сервере, у другой компании в другом городе. С резервным сайтом программа проверяет основной каждую минуту из двух городов. При аварии она сама переводит посетителей на резервный за 10 минут, днём и ночью. Переключение проверяем при вас, учебной тревогой. Остальные цены собраны на странице цен.