我正在寻找Amazon EC2实例的备份解决方案。 我发现了这个:http://www.n2ws.com我想知道是否还有其他的。
谢谢
PS:可以使用亚马逊解决方案自动备份RDS数据库,但EC2实例没有任何内容......有吗?
答案 0 :(得分:10)
我几个月来一直在使用Skeddly来自动备份附加到我的EC2实例的EBS卷。
到目前为止,我真的很开心。我喜欢我可以定义要备份的实例的方式:只备份具有特定标记的实例。我只需要将此标记添加到我要备份的实例中。每次添加实例时都无需在Skeddly中进行任何更改。 我必须在Skeddly中定义2个动作:一个用于备份实例,另一个用于删除旧快照。我收到电子邮件通知我行动(备份和到期)是否成功。
答案 1 :(得分:7)
如果您想要一个100%AWS解决方案来自动备份EC2实例,那么就有一个:AWS lambda。
使用以下内容创建基于Python的lambda:
import boto3
BACKUP_VOLUMES = [
'vol-xxxxxxxx'
]
def lambda_handler(event, context):
ec2 = boto3.resource('ec2')
for volume in BACKUP_VOLUMES:
ec2.create_snapshot(VolumeId=volume, Description='Automated backup')
并为其配置一个事件源,以便它每天运行。繁荣,没有麻烦,可靠的自动EC2备份,不需要其他实例来驱动它们和cron作业,或第三方服务。使用SES API,您也可以从该lambda发送电子邮件确认。
PS:确保lambda的IAM角色有权对EC2快照进行操作,例如:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents",
"ec2:CreateSnapshot",
"ec2:DeleteSnapshot",
"ec2:DescribeSnapshots"
],
"Resource": "*"
}
]
}
答案 2 :(得分:6)
如果通过“EC2 Instances”您的意思是“使用EBS驱动器的EC2实例”,那么您可以通过AWS控制台和AWS API获得EBS的快照功能。
来自EBS Docs:
Amazon EBS还提供了创建时间点快照的功能 卷,持久存储到Amazon S3。这些快照可以是 用作新Amazon EBS卷的起点和保护 数据为长期耐久性。可以使用相同的快照 根据需要实例化多个卷。可以复制这些快照 跨AWS区域,可以更轻松地利用多个AWS区域 用于地理扩张,数据中心迁移和灾难 回收
亚马逊不提供有关快照的任何计划或保留类型策略,但有一些第三方工具可利用AWS API。
答案 3 :(得分:3)
答案 4 :(得分:3)
我工作的公司几乎从一开始就使用亚马逊的S3,EBS和EC2。在完成第4天后失去2台(1台开发和1台生产)虚拟服务器并计划在第二天晚上在EC2上放松之后,这变得非常明显。总而言之,我们没有找到一个非常小巧,轻量级且几乎可以根据任何情况配置的独立应用程序。
使用AWS .NET SDK,我们能够在不到一天的时间内编写上述应用程序,然后在我们内部的Windows Server 2008 R2服务器上使用任务计划程序。我们已经完成了多个场景并确定了以下计划:每周创建EC2实例图像,每天创建EBS快照。根据我们与客户签订的合同,我们在60天后删除了超过31天的EC2实例,并根据我们的合同输入了EBS快照,该客户之前使用独立应用程序进行了刻录,该应用程序应该在其自己的内部调度代码上运行备份/机制。它从未跑过,在设置之后没有人看过它。随着应用程序的成熟,我们计划为我们的开发人员提供简单的电子邮件服务(SES)备份摘要/日志电子邮件,并使用简单队列服务(SQS)来记录流程。
希望这有帮助。
答案 5 :(得分:2)
您找到的云保护管理器产品(www.n2ws.com)确实支持完整EC2实例的自动备份,而不是单独备份EBS卷,以及RDS快照。它还具有您要查找的计划,数据保留策略和自动警报选项以及AWS的其他备份相关功能。
无法找到为EC2实例提供类似自动备份的其他第三方产品,但是某些云管理控制台允许快照调度&创建数据保留政策。
答案 6 :(得分:2)
对于关键应用程序,备份解决方案应该不仅仅是安排快照。
您可以期待应用程序支持,备份策略和强大的恢复选项等功能。
您可以在我的帖子中阅读:
http://www.n2ws.com/blog/tier-1-application-backup-on-amazon-cloud.html
它来自n2ws网站,也引用了CPM产品。
答案 7 :(得分:2)
这是基于AWS Lambda Boto3的脚本,它将实例备份到AMI图像并且工作得很棒:
import boto3, collections, datetime, sys
ec = boto3.client('ec2')
def lambda_handler(event, context):
reservations = ec.describe_instances(
Filters=[
{'Name': 'tag-key', 'Values': ['backup', 'Backup']},
]
).get(
'Reservations', []
)
instances = sum(
[
[i for i in r['Instances']]
for r in reservations
], [])
print("Found %d instances that need backing up" % len(instances))
to_tag = {}
for instance in instances:
try:
retention_days = [
int(t.get('Value')) for t in instance['Tags']
if t['Key'] == 'retention'][0]
except IndexError:
retention_days = 7
create_time = datetime.datetime.now()
create_fmt = create_time.strftime('%Y-%m-%d_%H-%M-%S')
AMIid = ec.create_image(InstanceId=instance['InstanceId'], Name="backup of " + instance['InstanceId'] + " dated " + create_fmt, Description="Lambda-created AMI of instance " + instance['InstanceId'] + " from " + create_fmt, NoReboot=True, DryRun=False)
to_tag[retention_days] = AMIid['ImageId']
print("Retaining AMI %s of instance %s for %d days" % (AMIid['ImageId'],
instance['InstanceId'],
retention_days)
)
print(to_tag.keys())
for retention_days in to_tag.keys():
delete_date = datetime.date.today() + datetime.timedelta(days=retention_days)
delete_fmt = delete_date.strftime('%m-%d-%Y')
print("Will delete %d AMIs on %s" % (len(to_tag[retention_days]), delete_fmt))
ec.create_tags(
Resources=[to_tag[retention_days],],
Tags=[
{'Key': 'DeleteOn', 'Value': delete_fmt},
]
)
它被from here取代并适用于Python 3.强烈推荐!
答案 8 :(得分:1)
排序。您可以定期对EBS卷进行快照。虽然UI中没有任何内容可以自动为您执行此操作,但API允许您执行此操作。您可以滚动自己的备份脚本,也可以搜索已公开发布的备份脚本。
答案 9 :(得分:1)
这是自动AMI备份的脚本脚本!它将在您的VPC中找到所有实例的instance-id并创建AMI备份!
#!/bin/bash
#Script to Automate AMI backup
echo "----------------------------------\n `date` \n----------------------------------"
aws ec2 describe-instances --filters Name=vpc-id,Values=vpc-1c927479 | awk '{ print $8 }' | sort -n | grep "i-" > /tmp/instanceid.txt
#echo "instance-`date +%d%b%y`"-i-29efe0e4 > /tmp/aminame.txt
echo "Starting the Daily AMI creation: "
#echo -e "Starting the Daily AMI creation: `cat /tmp/aminame.txt`\n"
#To create AMI of defined instance
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"
echo done
done
echo done
答案 10 :(得分:1)
我忘记了Cloudwatch的推出,但它绝对允许你schedule automated EBS snapshots。
Pol使用AWS Lambda的答案仍然具有相关性。关于Scheduling EBS Snapshots和Deleting old snapshots ,有很多博文答案 11 :(得分:0)
有一个名为Scalr的开源项目我刚开始使用了大约一个星期,它具有的功能使您能够安排自动快照/备份您的EBS卷。 Scalr实际上是一个云管理解决方案,拥有许多我尚未玩过的精彩功能,但我很期待它。
有一个付费版本,但我现在只是在免费的开源版本上放弃了。 Scithr安装程序在Github上可用:https://github.com/Scalr/installer-ng Scalr源代码也在Gitub上:https://github.com/Scalr/scalr 安装说明在Scalr wiki上:https://scalr-wiki.atlassian.net/wiki/x/0Q8b
答案 12 :(得分:0)
您可以使用AutomatiCloud备份EC2卷和RDS实例。 AutomatiCloud允许您定义备份计划,并在您可以配置的保留期后进行清理。它还会在成功/失败的情况下发送电子邮件通知。 它是免费的! www.automaticloud.net
免责声明:我是作者
答案 13 :(得分:0)
备份所有aws ec2实例的简便方法是使用noovolari。它允许您安排定期备份,具有文件级恢复功能,并允许您以非常简单的方式恢复以前的快照。它还为5个ec2实例提供无限制免费套餐,这不会造成伤害。
我们已经在一些基础设施上使用它一段时间了,它完美无缺。