Бэкап 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: бакет и ключи
- Войдите в панель Beget S3.
- Создайте бакет (например
wordpress-backup), выберите регион. - В разделе API создайте Access Key + Secret Key и сохраните secret сразу (повторно часто не показывают).
UpdraftPlus + S3-compatible
Плагин: UpdraftPlus (бесплатной версии для выгрузки в S3-совместимое хранилище обычно хватает).
- Плагины → Добавить → UpdraftPlus → Установить → Активировать.
- UpdraftPlus → Настройки → облачные хранилища → S3-совместимые (Generic S3 / S3-Compatible).
- Параметры для Beget:
- Endpoint:
https://s3.storage.beget.com - Access Key / Secret Key из панели Beget
- Bucket: имя бакета
- при необходимости путь/префикс, например папка
backups
- Endpoint:
- Нажмите тест подключения. Ошибка 403: ключи/права; wrong endpoint: опечатка URL или path-style vs virtual-host (в плагине иногда есть переключатель).
Создание бэкапа
Вручную
- UpdraftPlus → «Резервное копирование / Восстановление».
- «Создать резервную копию».
- Отметьте БД, плагины, темы, uploads (и остальное по необходимости).
- Запустите и дождитесь статуса «отправлено в S3».
По расписанию
- В настройках UpdraftPlus откройте расписание.
- Задайте частоту для файлов и отдельно для БД (часто БД чаще, полный media реже).
- Убедитесь, что remote storage = ваш S3.
- Ограничьте число хранимых копий, чтобы бакет не рос бесконечно.
WP-Cron зависит от трафика сайта. На сервере надёжнее системный cron на wp cron event run --due-now или прямой URL cron, иначе «ежедневный» бэкап на тихом сайте сдвинется.
Восстановление
Из панели S3
В Beget S3 найдите архивы Updraft (обычно набор файлов: db, plugins, themes, uploads) и скачайте локально, если WP недоступен.
Через UpdraftPlus
- На рабочем (или свежеустановленном) WordPress с тем же UpdraftPlus подключите S3.
- «Резервное копирование / Восстановление» → список копий → «Восстановить».
- Выберите компоненты (БД отдельно от файлов, осознанно: перезапись контента).
- Дождитесь конца; проверьте сайт, постоянные ссылки, права на uploads.
Если сайт мёртв: поднимите чистый WP, поставьте UpdraftPlus, пропишите S3, подтяните копию. Либо залейте архивы вручную в wp-content/updraft/ и восстановите оттуда.
Альтернативы: CLO и Yandex
CLO S3
CLO даёт S3-API: бакет, ключи, в UpdraftPlus тот же тип «S3-compatible», endpoint из документации CLO. Логика как у Beget, отличаются URL и биллинг.
Yandex Object Storage
В Yandex Cloud создаёте бакет Object Storage, статический ключ сервисного аккаунта, endpoint вида https://storage.yandexcloud.net (и регион/параметры path-style по доке Yandex). В UpdraftPlus снова S3-compatible.
Оптимизация и безопасность
- Lifecycle в бакете: удалять или переводить в холодный класс объекты старше N дней.
- Шифрование: на стороне бакета (SSE) и/или шифрование бэкапа в UpdraftPlus (Premium/доп. опции). Не храните secret key в git.
- Ключи: отдельные credentials только для бэкапа, без лишних write на чужие бакеты; ротация при утечке.
- Проверка: раз в квартал полное restore на staging. «Зелёный» статус загрузки ≠ восстанавливаемый архив.
- Дополнительно с сервера:
rclone syncuploads + дамп mysqldump в тот же бакет как второй контур.
Beget S3 с Android (Zimly Backup)
Для просмотра и копирования объектов с телефона удобно open-source Zimly Backup (в исходнике встречалось Simple File Manager Backup) с F-Droid:
- Установите приложение с F-Droid.
- Добавьте хранилище: URL
https://s3.storage.beget.com, Access Key, Secret Key, бакет. - С телефона можно листать объекты, качать нужный архив, не заходя в веб-панель.
Мобильный клиент не заменяет политику бэкапов, но помогает быстро убедиться, что свежий дамп на месте.
Кратко
- S3 (Beget / CLO / Yandex) + UpdraftPlus: рабочая схема off-site бэкапа WordPress;
- endpoint Beget:
https://s3.storage.beget.com, private bucket, тест из плагина; - расписание + лимит копий + lifecycle;
- restore проверяйте на копии сайта, не только «успешный upload»;
- с телефона: Zimly Backup с F-Droid для контроля бакета.