S3 и WordPress: бэкапы в Beget S3, UpdraftPlus, CLO и Yandex

Бэкап WordPress «на том же диске, что и сайт» плохо спасает от смерти VPS, ransomware и ошибочного rm. S3-совместимое хранилище (Beget, CLO, Yandex Object Storage) держит копии отдельно: Access Key + бакет + UpdraftPlus (или rclone). Ниже настройка Beget S3, ручной и по расписанию бэкап, восстановление, альтернативы и доступ с Android через Zimly Backup.

Зачем S3 для бэкапов

  • Отдельный контур: падение сервера сайта не стирает копии в бакете.
  • Масштаб: гигабайты media без расширения диска VPS.
  • API: один и тот же протокол для плагинов, rclone, скриптов.
  • Оплата по объёму: платите за занятое место и трафик, а не за «лишний» SSD навсегда.

Важно: бакет с публичным list/get без ACL это риск утечки дампов. Делайте private bucket, отдельные ключи только с нужными правами, по возможности lifecycle на старые архивы.

Beget S3: бакет и ключи

  1. Войдите в панель Beget S3.
  2. Создайте бакет (например wordpress-backup), выберите регион.
  3. В разделе API создайте Access Key + Secret Key и сохраните secret сразу (повторно часто не показывают).

UpdraftPlus + S3-compatible

Плагин: UpdraftPlus (бесплатной версии для выгрузки в S3-совместимое хранилище обычно хватает).

  1. Плагины → Добавить → UpdraftPlus → Установить → Активировать.
  2. UpdraftPlus → Настройки → облачные хранилища → S3-совместимые (Generic S3 / S3-Compatible).
  3. Параметры для Beget:
    • Endpoint: https://s3.storage.beget.com
    • Access Key / Secret Key из панели Beget
    • Bucket: имя бакета
    • при необходимости путь/префикс, например папка backups
  4. Нажмите тест подключения. Ошибка 403: ключи/права; wrong endpoint: опечатка URL или path-style vs virtual-host (в плагине иногда есть переключатель).

Создание бэкапа

Вручную

  1. UpdraftPlus → «Резервное копирование / Восстановление».
  2. «Создать резервную копию».
  3. Отметьте БД, плагины, темы, uploads (и остальное по необходимости).
  4. Запустите и дождитесь статуса «отправлено в S3».

По расписанию

  1. В настройках UpdraftPlus откройте расписание.
  2. Задайте частоту для файлов и отдельно для БД (часто БД чаще, полный media реже).
  3. Убедитесь, что remote storage = ваш S3.
  4. Ограничьте число хранимых копий, чтобы бакет не рос бесконечно.

WP-Cron зависит от трафика сайта. На сервере надёжнее системный cron на wp cron event run --due-now или прямой URL cron, иначе «ежедневный» бэкап на тихом сайте сдвинется.

Восстановление

Из панели S3

В Beget S3 найдите архивы Updraft (обычно набор файлов: db, plugins, themes, uploads) и скачайте локально, если WP недоступен.

Через UpdraftPlus

  1. На рабочем (или свежеустановленном) WordPress с тем же UpdraftPlus подключите S3.
  2. «Резервное копирование / Восстановление» → список копий → «Восстановить».
  3. Выберите компоненты (БД отдельно от файлов, осознанно: перезапись контента).
  4. Дождитесь конца; проверьте сайт, постоянные ссылки, права на uploads.

Если сайт мёртв: поднимите чистый WP, поставьте UpdraftPlus, пропишите S3, подтяните копию. Либо залейте архивы вручную в wp-content/updraft/ и восстановите оттуда.

Альтернативы: CLO и Yandex

CLO S3

CLO даёт S3-API: бакет, ключи, в UpdraftPlus тот же тип «S3-compatible», endpoint из документации CLO. Логика как у Beget, отличаются URL и биллинг.

CLO S3: панель объектного хранилища

Yandex Object Storage

В Yandex Cloud создаёте бакет Object Storage, статический ключ сервисного аккаунта, endpoint вида https://storage.yandexcloud.net (и регион/параметры path-style по доке Yandex). В UpdraftPlus снова S3-compatible.

Yandex Object Storage: бакет и доступ

Оптимизация и безопасность

  • Lifecycle в бакете: удалять или переводить в холодный класс объекты старше N дней.
  • Шифрование: на стороне бакета (SSE) и/или шифрование бэкапа в UpdraftPlus (Premium/доп. опции). Не храните secret key в git.
  • Ключи: отдельные credentials только для бэкапа, без лишних write на чужие бакеты; ротация при утечке.
  • Проверка: раз в квартал полное restore на staging. «Зелёный» статус загрузки ≠ восстанавливаемый архив.
  • Дополнительно с сервера: rclone sync uploads + дамп mysqldump в тот же бакет как второй контур.

Beget S3 с Android (Zimly Backup)

Для просмотра и копирования объектов с телефона удобно open-source Zimly Backup (в исходнике встречалось Simple File Manager Backup) с F-Droid:

  1. Установите приложение с F-Droid.
  2. Добавьте хранилище: URL https://s3.storage.beget.com, Access Key, Secret Key, бакет.
  3. С телефона можно листать объекты, качать нужный архив, не заходя в веб-панель.

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

Кратко

  • S3 (Beget / CLO / Yandex) + UpdraftPlus: рабочая схема off-site бэкапа WordPress;
  • endpoint Beget: https://s3.storage.beget.com, private bucket, тест из плагина;
  • расписание + лимит копий + lifecycle;
  • restore проверяйте на копии сайта, не только «успешный upload»;
  • с телефона: Zimly Backup с F-Droid для контроля бакета.

Источники и ссылки


Комментарии загружаются…