Amazon EC2实例/卷的简单备份策略?


13

您已输入Amazon EC2 EBS支持的Windows映像010的介绍性备份...

我一直在不遗余力地为运行SharePoint Services的单个Windows 2008服务器找到一种简单的备份策略。这是一台具有一个数据量的服务器的EBS支持的映像。我不需要任何异国情调。我只需要“每日”备份(丢失一天的数据量并不是灾难性的)。

我们已经创建并保存了我们喜欢使用的EBS支持的AMI图像(Windows 2008)。我们仅通过创建新的EBS AMI映像开始进行备份。这确实很简单,但是正在运行的服务器在创建映像的前10 – 15分钟内处于离线状态–并不理想。

创建备份的标准方法似乎是创建连接到正在运行的实例的卷的快照。同样,它非常简单,并且服务器在快照生成期间仍然可用。明显的Catch-22是您不能简单地直接从快照启动新实例。

我知道如何将正在运行的实例捆绑到S3存储中,然后从S3存储桶中注册AMI。这确实使我能够捕获正在运行的实例的备份,并且如果正在运行的实例丢失,请从S3存储桶中注册AMI并启动新的AMI来恢复该实例,但是这确实令人费解,不得不这样做可以在AWS控制台和Firefox的S3 Organizer插件之间来回移动,以实现此目的。(请不要提及命令行方法,这是010级课程)。

通过玩转EBS支持的图像,以下方法似乎对我有效(全部在AWS控制台中完成):

1.对于备份,只需根据需要快照系统卷(/ dev / sda1)。2.如果丢失了正在运行的实例,请执行以下操作:a。从上一次快照备份创建新卷b。启动启动的AMI的另一个实例(必须有EBS支持)c。停止该实例。d。从新的停止实例中分离现有系统卷并丢弃。e。将新创建的卷作为系统卷(/ dev / sda1)附加到已停止的实例。f。重新启动新实例。我已经测试了几次,它似乎对我有用。

问题:这种方法有什么问题吗?

Answers:


9

您的方法听起来非常好-但我可以想出一种改进方法。

为了减少自上次备份以来数据丢失和EBS卷失败(不太可能,但仍然可能)的影响,您可以将数据存储在与系统文件不同的单独EBS卷上,并且比系统卷更频繁地备份数据卷。

使用当前的策略,您将丢失在上次备份到实例失败之间创建的所有数据。使用新方法,数据量将一直写入到实例故障之前,因此您可以在实例启动并运行后将其重新连接到新实例。


优点。
约翰·米纳


0

这是将为VPC中的所有ec2实例创建AMI备份的脚本

#!/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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.