Скрипт для автоматизации создания и управления снимками EC2 EBS - PullRequest
3 голосов
/ 15 декабря 2010

Как лучше всего автоматизировать (ежедневные) моментальные снимки моих томов EBS (2) и управлять ими.

Под «управлением» я имею в виду, что я ищу сценарий, который не только создает ежедневные резервные копии (я предполагаю, что будет задействована работа cron), но также удалит снимки, которые старше x дней, чтобы избежать чрезмерное использование данных.

Я полагаю, что такие сценарии существуют где-то там, но я не могу их закрепить.

Ty

Ответы [ 4 ]

3 голосов
/ 08 октября 2012

Я использовал аналогичный инструмент с открытым исходным кодом на http://awsmissingtools.com - инструмент "ec2-automate-backup" при запуске следующим образом "тег ec2-automate-backup -s -t Backup-true -k14-p "создаст резервную копию всех томов EBS с тегом Backup = true и настроит удаление этих снимков через -k дней - вы можете сохранять снимки в течение 14 дней с помощью -k 14 или сохранять снимки в течение всего года с помощью -к 365.

1 голос
/ 15 декабря 2010

Я уверен, что есть другие реализации этого вида скрипта, но вот моя:

http://www.capsunlock.net/2009/10/deleting-old-ebs-snapshots.html

0 голосов
/ 22 апреля 2014

Я сталкивался со многими людьми, которые искали инструмент для администрирования снимков EBS.В Интернете я нашел несколько инструментов, но они были просто сценариями и неполными решениями.Наконец, я решил создать более гибкую, централизованную и простую в администрировании программу.

Идея состоит в том, чтобы иметь централизованную программу для управления всеми снимками EBS (локальными для экземпляра или удаленных пользователей)

Я создал небольшую Perl-программу, https://github.com/sciclon/EBS_Snapshots

Некоторые функции: * Программа работает в режиме демона или в режиме сценария (crontab)

  • Вы можете выбрать только локальное приложениетома или удаленные устройства

  • Вы можете определить файл журнала

  • Вы можете определить для каждого тома количество снимков

  • Вы можете определить для каждого тома частоту среди них

  • Частота и количество будут работать как «циклический перебор», когда они достигнут предела, удаляя самый старый снимок.

  • вы можете перенастроить за один шаг то количество, которое я имею в виду, если у вас есть 6 снимков и вы измените количество в 3, процесс автоматически перенастроит его.

  • Вы можете определить «рецепт»выполнение. Вы можете добавить свой код для выполнения перед выполнением снимка, например, вы хотели бы попытаться размонтировать том или остановить какой-либо сервис, или, возможно, проверить загрузку экземпляра.Родительский процесс будет ожидать код выхода, «0» означает успех, вы можете определить, продолжить или нет, в зависимости от кода выхода.

    • Вы можете определить выполнение «postscript» длявыполнить любой сценарий после создания снимка (например, по электронной почте с сообщением об этом)

    • Вы можете добавить «Защищенные снимки», чтобы пропустить определенный снимок, я имею в виду, что они будут в »только для чтения ", и они никогда не будут стерты.

    вы можете перенастроить скрипт" на лету ", когда он работает в режиме демона, скрипт принимает сигналы и IPC.

    Он имеет локальный кеш, чтобы не запрашивать API несколько раз.Вы можете добавить или изменить любую конфигурацию в файле конфигурации и перезагрузить ее, не прерывая процесс.

0 голосов
/ 26 марта 2014

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

Этот скрипт не только создаст резервную копию с заданным интервалом, но и удалит снимки, которые старше, чем указано.

  1. Откройте SSH соединение с вашим сервером.
  2. Перейдите в папку

    $ cd /usr/local/
    
  3. Клонируйте эту суть в ec2 папку

    $ git clone https://gist.github.com/9738785.git ec2
    
  4. Перейти в эту папку

    $ cd ec2
    
  5. Сделать backup.php исполняемым

    $ chmod +x backup.php
    
  6. Открыть выпускает проекта AWS PHP SDK github и копирует URL кнопки aws.zip.Теперь загрузите его на свой сервер.

    $ wget https://github.com/aws/aws-sdk-php/releases/download/2.6.0/aws.zip
    
  7. Распакуйте этот файл в каталог aws.

    $ unzip aws.zip -d aws 
    
  8. Редактировать backup.phpphp файл и установите все настройки в строке 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";
    
  9. Проверьте это.Запустите этот скрипт

    $ ./backup.php
    

    Тест - снимок создан.

  10. Если все в порядке, просто добавьте cronjob.

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