Простая стратегия резервного копирования для экземпляров / томов Amazon EC2?

Вы ввели вводные резервные копии образов образов Windows ECS, поддерживаемых Amazon EC2 010...

Я просматривал свой мозг, чтобы найти простую стратегию резервного копирования для нашего единственного сервера Windows 2008 с SharePoint Services. Это поддерживаемое EBS изображение одного сервера с одним томом данных. Мне не нужно ничего экзотического. Мне нужна только "ежедневная" резервная копия (потеря данных за день не катастрофична).

Мы создали и сохранили образ AMI с поддержкой EBS (Windows 2008), который нам удобно использовать. Мы начали создавать резервные копии, просто создав новый образ EBS AMI. Это действительно просто, но работающий сервер переводится в автономный режим в течение первых 10 – 15 минут создания образа - не идеально.

Казалось бы, стандартный способ создания резервных копий - создание моментальных снимков томов, подключенных к работающему экземпляру. Опять же, это довольно просто, и сервер остается пригодным для использования во время создания снимка. Очевидным Catch-22 является то, что вы не можете просто запустить новый экземпляр прямо из снимка.

Я знаю, как связать работающий экземпляр в хранилище S3, а затем зарегистрировать AMI из корзины S3. Это позволяет мне перехватить резервную копию работающего экземпляра и, если работающий экземпляр потерян, зарегистрировать AMI из корзины S3 и запустить новый AMI для восстановления экземпляра, но это кажется действительно запутанным и кажется нелепым для достижения этой цели переключайтесь между консолью AWS и плагином S3 Organizer для Firefox. (Пожалуйста, не упоминайте подход командной строки, это курс уровня 010).

Похоже, мне нравится работать с образами, поддерживаемыми EBS, следующий подход (все сделано в Консоли AWS):

1.Для резервного копирования просто сделайте снимок системного тома (/dev/sda1) по мере необходимости. 2. Если вы потеряете работающий экземпляр, выполните следующие действия: a.Создайте новый том из последней резервной копии моментального снимка b.Запустите другой экземпляр вашего начального AMI (должен быть поддержан EBS) c.Остановите этот экземпляр. d.Отключите существующий системный том от нового остановленного экземпляра и удалите. e.Прикрепите вновь созданный том как системный том (/dev/sda1) к остановленному экземпляру. Перезапустите новый экземпляр. Я проверял это пару раз, и мне кажется, что это работает.

Вопрос: что-то не так с этим подходом?

3 ответа

Ваш подход звучит очень хорошо - но я могу придумать, как его улучшить.

Чтобы уменьшить влияние потери данных с момента последнего резервного копирования и сбоя тома EBS (маловероятно, но все же возможно), вы можете хранить свои данные на отдельном томе EBS, чем ваши системные файлы, и выполнять резервное копирование тома данных чаще, чем системный том.,

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

Я генерирую снимок для каждого тома в моей учетной записи, используя скрипт bash

#!/bin/bash

ec2-describe-volumes | awk '{ print $2 }' | sort -u >  /tmp/ebs_volumes

for i in $(cat /tmp/ebs_volumes); do
   echo $i;
   ec2-create-snapshot $i;
done

Вот скрипт, который создаст резервную копию AMI для всех экземпляров ec2 в вашем VPC

#!/bin/bash
#Script to Automate AMI backup

echo "----------------------------------\n   `date`   \n----------------------------------"

aws ec2 describe-instances --filters Name=vpc-id,Values=vpc-xxx |   awk '{ print $8 }' | sort -n   | grep  "i-" > /tmp/instanceid.txt

echo "Starting the Daily AMI creation: "

 #To create AMI from instance-id 

for i in $(cat /tmp/instanceid.txt); do
        echo "Creating AMI for Instance id $i ......."


echo "instance-`date +%d%b%y`-$i" > /tmp/aminame.txt

aws ec2 create-image --instance-id $i --name "`cat /tmp/aminame.txt`" --description "This is created by ami-backup.sh" --no-reboot | grep -ir ami | awk '{print $4}' > /tmp/amiID.txt

echo  "AMI Name is: `cat /tmp/aminame.txt`\n"

done

echo done
Другие вопросы по тегам