Быстрое Выполнение Резервного Копирования На Amazon S3

Я устал испытывать определенные опасения по поводу сохранности данных на выделенном сервере, наблюдая за тем, что происходит с хостерами в последнее время.

3FN, Agava, Hosting.UA, MakHost - тенденция очень плохая.

В итоге McHost стал последней каплей, и чтобы не оказаться в числе тех, кто «уже делает бэкапы», я перенес свою систему резервного копирования серверов на Amazon S3. Получилось довольно быстро и прозрачно.

Хочу поделиться с общественностью простейшей реализацией.

  1. Прежде всего, помня, что услуга платная, рассчитываем затраты.

    Давайте воспользуемся калькулятор , любезно предоставлено Amazon. Выберите в меню слева Амазонка S3 , снимите галочку с БЕСПЛАТНО ВХОДЯЩЕЕ и заполните необходимые поля (там все предельно просто).

    После заполнения нажмите кнопку Добавить в счет и изучите цену в окне справа.

    Так, например, при хранении 100 ГБ данных, загрузке 20 ГБ в месяц и скачивании 2 ГБ в месяц мы платим около 17 долларов, что для меня вполне приемлемая цена за спокойствие.

    Если нужные вам объемы на порядок меньше (что, подозреваю, так и будет), то комиссия становится равной нескольким долларам.

    Рискну предположить, что это не сильно ударит по бюджету.

    Если вы думаете так же, идите дальше.

  2. Подпишитесь на Amazon Simple Storage Services (S3) На страница услуги нажимать Зарегистрируйтесь на Amazon S3 .

    Если у вас нет учетной записи Amazon Web Services, выберите Я новый пользователь , в противном случае введите пароль своей учетной записи в предоставленной форме.

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

    Следующей страницей будет сама регистрация в S3: снова вводим почтовый адрес, принимаем соглашение и попадаем на страницу с информацией о тарифах и выбором способа оплаты.

    Введите данные своей кредитной карты и платежный адрес.

    Еще раз смотрим на заполненную форму и нажимаем Завершить регистрацию .

    Теперь все, что вам нужно сделать, это подождать немного, пока вы не получите электронное письмо, подтверждающее, что ваша учетная запись активирована и доступна.

  3. Получаем ключи доступа к сервису Пойдем раздел безопасности аккаунта и в пункте Access Credentials -> Access Keys видим нужный нам ключ для авторизации (пара Access Key ID - Secret Access Key).

    Он понадобится нам при настройке резервного копирования на сервере.

  4. Установка утилиты для работы с S3 Для Debian и Ubuntu в репозиториях есть:

    apt-get install s3cmd

  5. Выполняем первоначальную настройку утилиты Под пользователем, от которого в дальнейшем будем выполнять резервное копирование:

    s3cmd --configure

    Введите ключ доступа, секретный ключ, пароль шифрования и путь к программе GPG. Мы выбираем использовать HTTPS и прокси или нет. После ввода всех настроек конфигуратор предложит протестировать соединение.

    Соглашаемся и после успешного прохождения теста соглашаемся сохранить настройки в файл конфигурации.

    Теперь s3cmd готов к использованию.

  6. Подготовка S3 Создаем хранилище, так называемое ведро:

    # s3cmd --acl-private --bucket-location=EU mb s3://mybucketname Bucket 'mybucketname' created

    --acl-private - доступ только для нас --bucket-location=ЕС — ведро создается в европейском хранилище (оно будет ближе к Москве, где у меня есть сервер).

    Если вам ближе США, то вместо ЕС пишем US. имя моего ведра — имя хранилища должно быть уникальным среди всех (а не только ваших) хранилищ.

    Мы проверяем:

    # s3cmd la Bucket 'mybucketname':

  7. На самом деле, мы делаем резервную копию s3cmd имеет режим работы а-ля rsync, что очень удобно в случае простого резервного копирования:

    s3cmd --acl-private --bucket-location=EU --guess-mime-type --delete-removed sync /local/backup/dir/ s3://mybucketname/backupfolder

    Что есть что: Первые два параметра описаны выше.

    --guess-mime-type — выберите тип контента MIME на основе расширения.

    --delete-удалено — удалить файлы в хранилище, если они были удалены из локальной папки.

    Далее идет локальная папка, в которой лежат бэкапы на сервере (вы же делаете локальные бэкапы, да?) и папка, в которую бэкапить на s3 (если ее еще нет, то она создастся автоматически).

    Подставляем нужные вам параметры, запускаем, проверяем, что все скачалось куда нужно:

    s3cmd ls s3://mybucketname

    УПД: Размер файла в S3 не должен превышать 5 Гб.

    Если ваша система резервного копирования создает файлы большего размера, то ее придется немного модифицировать, например, пропустив архивы через сплит. Спасибо ночной туман за освещение этой проблемы.

  8. Добавьте в свою систему запуск команды синхронизации для создания локальных резервных копий или просто в cron (как сделал я).

  9. ВЫГОДА!
Как восстановить данные? Чтобы восстановить все данные из S3, в команде синхронизации меняем местами источник и цель, не забывая убрать удаление недостающих файлов:

s3cmd sync s3://mybucketname/backupfolder /local/backup/dir/

Синхронизация происходит в обратную сторону и вуаля, все данные снова на локальном диске.

Или, чтобы восстановить один файл, мы используем команду get:

s3cmd get s3://mybucketname/backupfolder/backup.tar.gz /local/backup/dir/

УПД2: Спасибо за карму, перенёс в системное администрирование.

Теги: #Системное администрирование #Резервное копирование #backup #amazon s3 #s3cmd

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.