Сегодня я хотел бы рассказать вам о небольшой, но полезной утилите под названием «regru‑snapshoter».
Это инструмент, который позволяет создавать снимки виртуальных машин на платформе REG.RU.
Что такое REG.RU
REG.RU - это крупный российский регистратор доменных имен и хостинг-провайдер. Он предоставляет широкий спектр услуг для веб-хостинга, включая виртуальные машины (VPS). Нравится мне своей стабильностью работы и большими аптаймами.
Целеполагание
Написать «regru‑snapshoter» меня сподвигло отсутствие альтернатив резервного копирования виртуальных машин у этого хостинг-провайдера.
Хостер предлагает всего два варианта резервных копий:
Услуга бэкапов виртуальных машин, к сожалению, практически не настраивается. Вы получаете 4 резервные копии в месяц, которые можно восстановить только на этот же хост.
Вторая услуга - снепшоты или снимки виртуальных машин, более привлекательна.
Снимок виртуальной машины - это полная копия ее состояния в определенный момент времени. Эту услугу можно использовать на столько часто, на сколько мне нужно, и хранить столько времени, сколько нужно. Я же планировал хранить каждый день на протяжении недели.
Кроме того, снепшоты делаются ресурсами хоста, а не вашей VM.
Что по деньгам
Сейчас, стоимость снепшота стоит 5 руб\мес за 1 ГБ
Мы хотим хранить 7 таких снепшотов в ротации, значит стоить это будет x7 = 3500 руб\мес
4-ре резервные копии этого же сервера стоят 1500 руб\мес
Если цены нас устроили
Утилита «regru‑snapshoter» была создана для автоматизации процесса создания снимков виртуальных машин на платформе REG.RU. Она использует API REG.RU для создания снимков и сохранения их в облачном хранилище.
Проще говоря - создаем новый снимок и удаляем старый
В качестве названия снепшота сейчас используется имя сервера, с которого делается снимок
Как использовать regru‑snapshoter
# Клонируем репозиторий
git clone git@github.com:rasperepodvipodvert/regru-snapshoter.git
# Переименовываем env файл и добавляем свой ключик, который можно получить по ссылке:
# https://developers.cloudvps.reg.ru/getting-started/authentication.html
mv regru-snapshoter/env regru-snapshoter/.env
# Устанавливаем питонячие зависимости
cd regru-snapshoter && python3 -m pip install -r requirements.txt
# Добавляем IDшники виртуальных машин в файл vm_list.txt и запускаем на исполнение
python3 index.py
Примерная схема резервного копирования:
- запускаем скрипт каждый день, ставим TIME_DELTA = 7 - получаем 7 дней резервных копий
- запускаем раз в неделю, ставим TIME_DELTA = 30 дней - получаем 4-ре копии в месяц, почти как те же самые бэкапы
Восстановление из резервной копии
Само восстановление из резервной копии сводится к тому, чтобы поднять рядом еще одну VM, слить с нее все, что нужно и удалить.
Процесс этот довольно не плохо написан в документации, по этому я на нем останавливаться долго не буду.
Из плюсов такого подхода можно выделить то, что ваши доступы на новом сервере будут действовать старые, настраивать ничего не придется, а можно и вовсе использовать его как новый прод-сервер если на текущем все поломалось
Заключение
regru‑snapshoter - это простой, но полезный инструмент для автоматизации создания снимков виртуальных машин на платформе REG.RU. Он может быть особенно полезен для тех, кто регулярно создает снимки для резервного копирования или восстановления данных. Если вы используете REG.RU для хостинга виртуальных машин, я рекомендую попробовать эту утилиту и посмотреть, как она может упростить вашу работу.
Если вдруг эту статью почитают в REG.RU — ребята, правильно делать снепшоты на основе предыдущего снимка, тем самым экономя деньги своих клиентов. Научитесь, пожалуйста, это делать!