Бекапи на хостингу: чому ваша резервна копія може виявитись порожньою обіцянкою
Уявіть: п'ятниця, вечір, ви нарешті закрили ноутбук і пішли відпочивати. А в суботу вранці - порожній сайт. База даних зникла. Контент за три роки - випарувався. Ви заходите в панель хостингу, тиснете кнопку «Відновити з бекапу» і бачите напис, від якого холоне кров: «Остання резервна копія - 4 місяці тому. Розмір: 0 байт». Це не сценарій фільму жахів. Це реальна ситуація, яку я особисто спостерігав у клієнта з інтернет-магазином на 12 000 товарних позицій. Він втратив все. І знаєте, що найгірше? Він був впевнений, що бекапи працюють.
Сьогодні розберемо, чому резервні копії на хостингу - це не чарівна кнопка, а складний процес, у якому десятки точок відмови. І як зробити так, щоб ваш бекап врятував вас, а не перетворився на порожню обіцянку.
Чому «автоматичний бекап від хостера» - це ілюзія безпеки
Більшість хостинг-провайдерів пишуть на лендингу великими літерами: «Щоденні автоматичні бекапи включено!». І ви розслабляєтесь. Логіка проста: раз хостер обіцяє - значить все під контролем. Але давайте заглянемо в деталі.
Автоматичний бекап хостера - це страхова сітка з дірками розміром з вантажівку. Ось чому:
- Більшість shared-хостингів зберігають бекапи на тому самому фізичному сервері, де живе ваш сайт. Сервер згорів - згоріли і бекапи.
- Частота копіювання часто не щоденна, а раз на тиждень або навіть рідше - залежить від тарифу.
- Розмір бекапу обмежений. Якщо ваш сайт «потовстішав» понад ліміт - копія просто не створюється. Без жодного сповіщення.
- Відновлення часто доступне тільки через підтримку. А підтримка відповідає від 2 до 48 годин.
Я одного разу зателефонував у підтримку українського хостера і попросив показати список моїх бекапів. Знаєте, що мені відповіли? «У нас бекапи робляться, але ми не гарантуємо їхню цілісність і актуальність». Ось так. Без гарантій.
Сім помилок з бекапами, які вбивають сайти щодня
За 15 років роботи з веб-проєктами я зібрав колекцію бекап-катастроф. Ось найтиповіші помилки, які повторюються знову і знову:
- Ніколи не перевіряти бекап на відновлення. Ви робите копію щодня. Чудово. Але ви хоч раз пробували з неї відновитись? 43% бекапів виявляються пошкодженими або неповними при спробі розгортання - це статистика від Veeam за 2024 рік.
- Зберігати копії в одному місці. Бекап на тому самому сервері - це як тримати запасний ключ від квартири під килимком. Всі знають, де він лежить.
- Ігнорувати базу даних. Файли сайту скопійовано, а MySQL-дамп - ні. Результат: у вас є оболонка сайту без єдиного запису, товару чи коментаря.
- Не мати розкладу ротації. 30 бекапів за 30 днів - і раптом диск переповнений. Нові копії не створюються. Тиша.
- Робити бекап під час пікового навантаження. Копіювання великої бази о 14:00, коли на сайті 500 відвідувачів? Привіт, timeout і пошкоджений дамп.
- Покладатися тільки на хостера. Це як довірити всі свої гроші одному банку в країні, де немає системи гарантування вкладів.
- Не шифрувати бекапи. Резервна копія - це повний зліпок вашого сайту: паролі, персональні дані клієнтів, ключі API. Без шифрування це подарунок для хакера.
«Бекап, який ви не тестували - це не бекап. Це надія. А надія - погана стратегія в IT.» - Томас Лімончеллі, автор книги «Практика системного адміністрування»
Правило 3-2-1: золотий стандарт, про який всі чули, але ніхто не виконує
Правило просте як двері, але дисципліна його виконання вимагає залізної волі.
3 копії ваших даних. 2 різних типи носіїв. 1 копія - поза межами вашого основного дата-центру.
Як це виглядає на практиці для типового сайту на WordPress або OpenCart?
| Копія | Де зберігається | Тип носія | Частота |
|---|---|---|---|
| Основна | Сервер хостингу (автобекап) | SSD/HDD сервера | Щодня |
| Друга | Хмарне сховище (S3, Google Cloud, Backblaze) | Об'єктне сховище | Щодня |
| Третя | Локальний NAS або інший дата-центр | Окремий диск | Раз на тиждень |
Зверніть увагу: третя копія - це ваш «план Б на випадок апокаліпсису». Навіть якщо AWS впаде разом із вашим хостером (а таке бувало - згадайте інцидент OVH у 2021, коли фізично згорів дата-центр у Страсбурзі), у вас залишиться локальна копія.
Вартість такого підходу? Backblaze B2 коштує $0.005 за GB на місяць. Для сайту розміром 10 GB це $0.05 - п'ять центів. Менше, ніж чашка кави з автомата. А втрата даних для інтернет-магазину з оборотом 100 000 грн на місяць - це катастрофа на десятки тисяч.
Інструменти, які реально працюють: від плагінів до CLI-магії
Залежно від вашого рівня та типу сайту, є різні шляхи організувати надійне резервне копіювання.
Для WordPress:
- UpdraftPlus - найпопулярніший плагін. Безкоштовна версія вміє відправляти бекапи на Google Drive, Dropbox, S3. Налаштовується за 5 хвилин.
- BlogVault - платний, але з інкрементальними бекапами. Копіює тільки зміни, тому не навантажує сервер.
- WP-CLI + cron + rclone - для тих, хто не боїться терміналу. Команда
wp db exportзберігає базу,rclone syncвідправляє все в хмару.
Для VPS/виділених серверів:
- restic - сучасна утиліта з дедуплікацією і шифруванням «з коробки».
- borgbackup - ще один потужний інструмент, який стискає дані і зберігає лише різницю між версіями.
- Bacula / Amanda - enterprise-рішення для складних інфраструктур.
Ключовий момент: яким би інструментом ви не користувалися, поставте собі нагадування в календар - раз на місяць тестувати відновлення. Просто розгорніть бекап на тестовому середовищі і переконайтесь, що все працює. Це займає 15-30 хвилин, але одного дня збереже вам тижні роботи.
Скільки часу у вас є: RPO і RTO простою мовою
Є два терміни, які звучать як абревіатури з NASA, але насправді критично важливі для кожного власника сайту.
RPO (Recovery Point Objective) - скільки даних ви готові втратити? Якщо бекап робиться раз на добу, то у найгіршому випадку ви втратите роботу за 24 години. Для блогу це терпимо. Для магазину з 200 замовленнями на день - ні.
RTO (Recovery Time Objective) - як швидко ви зможете відновити сайт? 5 хвилин? Година? Доба?
| Тип проєкту | Оптимальний RPO | Оптимальний RTO | Рекомендований підхід |
|---|---|---|---|
| Особистий блог | 24 години | 4-8 годин | Плагін + хмара раз на день |
| Корпоративний сайт | 4-6 годин | 1-2 години | Автоскрипт + S3 кожні 6 годин |
| Інтернет-магазин | 1 година | 15-30 хвилин | Інкрементальний бекап + реплікація БД |
| SaaS-платформа | 5-15 хвилин | Менше 5 хвилин | Потокова реплікація + failover |
Визначте свої RPO і RTO до того, як щось трапиться. Це як план евакуації з будівлі - його малюють до пожежі, а не під час.
Темна сторона бекапів: що може піти не так навіть у параноїків
Ви все налаштували. Три копії, шифрування, щоденне тестування. Можна розслабитись? Не зовсім.
Є кілька сценаріїв, до яких варто підготуватися:
- Ransomware, що шифрує бекапи. Якщо зловмисник отримав доступ до сервера, він може зашифрувати не тільки сайт, а й локальні копії. Рішення - immutable backups (незмінні бекапи) в S3 з Object Lock.
- Тиха деградація даних. Файли бекапу на диску можуть пошкодитися через bit rot - фізичну деградацію носія. Рішення - контрольні суми і періодична верифікація.
- Людський фактор. Хтось із команди випадково видалив cron-задачу. Або змінив пароль від хмарного сховища і забув оновити скрипт. Бекапи тихо перестали працюватися два місяці тому. Рішення - моніторинг і алерти.
Налаштуйте простий alert: якщо бекап не з'явився у сховищі протягом 25 годин - вам приходить SMS або повідомлення в Telegram. Для цього достатньо скрипта на 10 рядків або безкоштовного акаунта в Healthchecks.io.
Ваш бекап - це ваша машина часу
Резервна копія - це єдина технологія, яка дозволяє вам подорожувати у часі. Серйозно. Зламали сайт учора? Відкотіться на позавчора. Оновлення плагіна поклало все? Поверніться на версію до оновлення. Але ця машина часу працює тільки якщо ви її заправили паливом, перевірили двигун і маєте запасний ключ.
Запитайте себе просто зараз: коли ви востаннє перевіряли, чи працює ваш бекап? Якщо відповідь «ніколи» або «не пам'ятаю» - закрийте цю статтю і зробіть це прямо зараз. Все інше може зачекати. А от ваші дані чекати не будуть.