Как настроить автоматическое создание резервных копий диска

в 12:21, , рубрики: Amazon EC2, Amazon Web Services, AWS, EC2

При пользовании AWS EC2, я обнаружил, что там нет готового интерфейса, для создания резервных копий диска, которые в AWS называются Snapshot.

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

Предлагаю свой вариант настроки в 10 шагов, без установки и настроки AWS Command Line Tools.

Предполагается что команды git и wget доступны.

Шаг 1

Открываем SSH и переходим в папку.

$ cd /usr/local/

Шаг 2

Копируем готовый код, который я создал и который находится на гитхабе в папку ec2.

$ git clone https://gist.github.com/9738785.git ec2

Шаг 3

И переходим в эту папку.

$ cd ec2

Шаг 4

Делаем файл backup.php исполняемым.

$ chmod +x backup.php

Шаг 5

Теперь надо открыть страницу релизов AWS PHP SDK на github, скопировать ссылку последнего релиза на зеленой кнопке скачать. И теперь скачиваем его на диск.

$ wget https://github.com/aws/aws-sdk-php/releases/download/2.6.0/aws.zip

Шаг 6

Распакуйте архив в папку aws.

$ unzip aws.zip -d aws 

Шаг 7

Отредактируйте файл backup.php. Нас интересуют строки с 5-12.

$dryrun     = FALSE;
$interval   = '24 hours';
$keep_for   = '10 Days';
$volumes    = array('vol-********');
$api_key    = '*********************';
$api_secret = '****************************************';
$ec2_region = 'us-east-1';
$snap_descr = "Daily backup";

Думаю что настройки понятны всем. Обязательно нужно указать регион. Если у вас несколько дисков, то можно их всех добавить в массив.

Шаг 8

Давайте проверим как он работает.

$ ./backup.php

Шаг 9

Откройте панель управления AWS и убедитесь что Snapshot был создан.

Шаг 10

Добавте задачу в крон. Причем не важно как часто она будет исполняться. Даже если вы поставите ее один раз в минуту, то создаваться snapshot будет только по указоному времени в настройках. Но естественно если в настройках вы указали 12 hours а задачу крон поставили раз в 24 часа, то это не будет работать. Нужно убедиться, что задача крона срабатывает соответственно настройкам. Для моего примера раз в 24 часа достаточно.

* 23 * * * /usr/local/ec2/backup.php

Автор: Serhioromano

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js