После всем известных событий (24 февраля 2022 года) появилась весомая проблема для тех, кто держал резервные копии на облаках Amazon. Много лет всё работало как часы, бэкапы бэкапились, если было нужно - восстанавливались, деньги списывались. Настройка в ISPmanager 5(6) резервирования в S3 была элементарной.
И вот пришла блокировка нашего пластика, закинуть деньги в Amazon стало либо невозможно, либо очень сложно. Сначала я потратил время на поиск обходных путей оплаты, так как с Amazon меня всё устраивало, но увы даже сложного решения я не нашел. Например, сервис bakoff по итогу заблокировали, так как было слишком много платежей из РФ. И в какой то момент я решил искать альтернативу, при том что в ISPmanager есть тип хранилища - S3 совместимое. Недолго поискав, я пришел к тому, что у Yandex Cloud есть всё необходимое для замены S3, а именно - Object Storage (тут цены - https://cloud.yandex.ru/docs/storage/pricing).
Дальше я буду рассказывать как настроить ISPmanager 6 для резервного копирования в Yandex Cloud Object Storage. (Когда-то аналогичный гайд я делал для ISPmanager 4). Итак, поехали...
1. Для начала настроим всё, что необходимо на стороне Yandex. Переходим по ссылке https://auth.cloud.yandex.ru/. Если не авторизованы - авторизуемся. Создаем своё первое облако.
2. После создания попадаем в консоль, и теперь нам нужно создать платёжный аккаунт (к слову, стоимость по моим подсчетам выходит ниже чем в S3). Все скриншоты данного шага будут в галереи (нужно листать). Заполняем контактные данные, email, телефон и обязательно пластиковую карту (у меня прошла виртуальная mastercard из Tinkoff, но я думаю МИР точно работает). В процессе привязки карты спишут 11 рублей и вернут обратно сразу же.
3. После создания платежного аккаунта можно включить пробный период. Даётся он на 60 дней или 3000 р (дают 4000р, но на object storage доступно только 3000). После истечения пробного периода, надо вручную перейти на платную версию.
4. Возвращаемся в консоль и добавляем Сервисный аккаунт. Этот аккаунт необходим как раз для загрузки резервных копий, аналог есть в Amazon S3. Задаём имя аккаунта и обязательно роль. Я задал роль storage.admin, но есть и другие роли. Про разницу ролей можно почитать в хэлпе - https://cloud.yandex.ru/docs/iam/concepts/access-control/roles. Возможно вполне достаточно роли storage.editor.
5. Теперь надо создать ключи для сервисного аккаунта. Эти ключи будут использоваться дальше для настройки бэкапа в ISPmanager, поэтому их нужно сохранить.
- заходим в сервисный аккаунт;
- выбираем 'Создать новый ключ';
- создать статический ключ доступа;
- вводим описание и создаём ключи;
- копируем в текстовый файл идентификатор ключа и секретный ключ.
6. Теперь нам нужно создать "бакет". То есть выделить область для хранения наших бэкапов (аналогично S3). Делаем хранилище публичным и холодным. Есть два типа хранилища: Стандартное и Холодное. Холодное в отличие от Стандартного используется тогда, когда доступ к данным нужно не часто, и соответственно такой тип хранилища дешевле.
На это настройка на стороне Yandex закончена, переходим в ISPmanager
1. Переходим в резервные копии и выбираем "Настройка резервного копирования".
2. Заполняем данные:
- Тип хранилища - S3 совместимое
- URL хранилища - http://storage.yandexcloud.net
- Идентификатор ключа - берем из yandex (сохраняли в файл на шаге 5)
- Секретный ключ - берем из yandex (сохраняли в файл на шаге 5)
- Корзина (bucket) - если всё хорошо, то должна подгрузиться наша корзина, которую создавали на шаге 6, её и выбираем.
- Место адресации корзин - поддомен (варианта два, можно почитать разницу, но насколько я понял в yandex используется именно поддомен).
- Блок ограничения заполняем на своё усмотрение.
На этом всё, дожидаемся начала создания бэкап, обычно происходит ночью, и проверяем, всё ли успешно прошло. Дополнительно можно настроить, что делать со старыми файлами, чтобы бакет не перегружался. Лично я настроил, что файлы старше 90 дней удаляются, таким образом я контролирую размер своей корзины - настраивается это в параметрах бакет (жизненный цикл). Тип expiration означает удаление любых объектов из бакета.
Спасибо что дочитали до конца! Если будут вопросы, задавайте в комментариях, попробуем решить.