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

13

Вы ввели вводные резервные копии образов образов 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.Отключите существующий системный том от нового остановленного экземпляра и удалите. Присоедините вновь созданный том как системный том (/ dev / sda1) к остановленному экземпляру. Перезапустите новый экземпляр. Я проверял это пару раз, и мне кажется, что это работает.

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

Джон Майнер
источник

Ответы:

9

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

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

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

gareth_bowles
источник
Отличный момент.
Джон Майнер
4

Я генерирую снимок для каждого тома в моей учетной записи, используя скрипт 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
Н Абрамсон
источник
3
как вы удаляете старые снимки?
rmalayter
1
+1 за вдохновение. (Я написал несколько сценариев для своих собственных целей: serverfault.com/questions/275245/… )
Jonik
0

Вот скрипт, который создаст резервную копию 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
Ашиш Карпе
источник