2012-05-08 181 views
1

我刚刚完成将Amazone S3设置为我们网站的CDN。从现在开始,我们将直接在云端托管大量图片。很酷! - 但留给我一个关于备份的问题。早些时候,我们通过每天将图片上传到亚马逊一次来备份所有内容,但我真的不想备份到我托管文件的同一个地方。来自Amazon S3的备份

如何以最有效的方式从Amazone S3进行备份?

我已经考虑:

  • 把所有的S3文件到外部FTP服务器(这是昂贵的 存储和I将备份一遍又一遍相同的文件)。
  • 拉修改/添加S3文件到FTP服务器(我将需要监控 改变哪些文件/添加的,它需要的工作 的备份半天)
  • 文件拉到替代云服务(与上述相同)

任何解决方案,我不现在的?像Amazone s3的解决方案myrepono.com将会很酷。

干杯,彼得

+0

此网站是用于编程问题。备份策略是主题。 –

+5

没问题。检查了常见问题,并认为它包含在“程序员常用的软件工具”和“编程专业特有的实用,可回答的问题”中 - –

回答

3

其中麦后管理上,前提什么n Things的此刻并不是由Amazon S3解决的问题是对于删除或修改文件的历史记录或回收站中的任何概念。这样做的原因是没有解决亚马逊的脆弱性服务失败,但有人用访问凭据,以解决恶意的或意外删除的文件,并没有任何恢复选项。

这个单点故障仍然是AWS服务的弱点,甚至是具有快照功能(RDS,EC2,但不包括S3)的快照功能,它仍然是一个问题,因为具有访问权的恶意用户可能会删除快照同一个入口点。

您必须区分以下情况: 1)糟糕,基础架构失败,我丢失了我的文件! (S3不太可能) 2)糟糕,我(或客户)故意删除该文件,但我希望它回来! 3)糟糕,我的系统上的API脚本应该只删除一个文件,但是由于编程错误,它会循环遍历所有这些文件并将其全部删除! 4)糟糕,有人访问我的AWS账户并删除了我的文件!

根据S3的工作原理,1是非常低的担心。 2你可以通过使系统利用回收桶进行故意删除来编程。但现在3和4给你带来真正的实质性数据丢失,并且没有解决S3本身的解决方案。

所以,你要么希望这最后的两件事情不会发生,或者你是左保持S3的定期备份在其他地方,这在目前是非常麻烦的。

我认为最好的事情是亚马逊自动添加某种缺失保留为特征,这意味着任何删除任何类型的可逆转48小时或东西就不见了好了。

+1

+1冗余存储和数据备份是单独的问题。我想补充一点,S3桶都支持[版本](http://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html)和(HTTP [删除对象的多因素认证]://文档.aws.amazon.com/AmazonS3 /最新的/ dev/UsingMFADelete.html)。我见过的99%的数据恢复是“糟糕!我删除了这个,你能恢复吗?”品种。 – Fiver

+0

S3有一种版本文件的方法。 –

0

我愚蠢的答案,可以使用AWS的服务称为"AWS Import/Export",现在你可以备份到自己的硬盘

+0

谢谢。是不是我手动下载它的选项 - 或者将它保存到内部的硬盘中。 –

1

我不知道为什么你不想“备份与Amazon S3是托管解决方案时托管文件的位置相同。

如果你担心单一故障点,这里是亚马逊说,关于S3的可靠性和耐用性:

亚马逊S3提供了专为任务关键型和主要数据存储的高度耐用的存储基础设施。对象被冗余存储在Amazon S3 Region的多个设施中的多个设备上。为帮助确保持久性,Amazon S3 PUT和COPY操作在返回SUCCESS之前将数据同步存储在多个设施中。一旦存储,Amazon S3通过快速检测和修复任何丢失的冗余来维护对象的持久性。 Amazon S3还定期验证使用校验和存储的数据的完整性。如果检测到损坏,则使用冗余数据进行修复。此外,Amazon S3会计算所有网络流量的校验和,以在存储或检索数据时检测数据包的损坏情况。

Amazon S3的标准存储的是:

  • 与亚马逊S3服务等级协议的支持。
  • 旨在提供给定年份99.999999999%的耐用性和99.99%的可用性。
  • 旨在维持两个设施中的数据同时丢失。

Amazon S3通过版本控制提供了进一步的保护。您可以使用版本控制来保存,检索和恢复Amazon S3存储桶中存储的每个对象的每个版本。这使您可以轻松地从意外的用户操作和应用程序故障中恢复。默认情况下,请求将检索最近写入的版本。通过在请求中指定版本,可以检索旧版本的对象。存储率适用于存储的每个版本。

如果要增加冗余度,可以将数据存储在多个S3区域中。

现在,如果您确实想要在多个云存储提供商之间同步文件,则可以使用CloudBerry在多个云提供商之间同步数据。他们支持S3,Google存储,Azure博客存储和Rackspace云文件。 Pro:您支付该工具的一次性费用。 Con:你需要一个见证服务器来运行CloudBerry。

2

我非常有兴趣知道的主要问题,为什么你会不相信,你仍然需要移动到云,因为迟早以后大家会找云主存储和备份存储和其它备份存储后的备份解决方案(如需要)。我认为时间已经到了。

我的意思是,当你有存储到任何云存储的数据,你可以依靠存储服务提供商99.999999%的SLA。这些云服务用于复制多份数据,以满足SLA的要求和某个数据复制到不同的位置,以避免与方案相关的问题时,在一处完全关闭整个数据中心。当数据进行地理复制时,它实际上能够满足备份要求。

例如使用Windows Azure Blob存储:

  • 如果您使用的Windows Azure Blob存储你会得到你的数据总量6份
  • 3份在同一个数据中心
  • 3副本同一地理位置内的其他数据中心意味着

与Amazon S3您已经拥有基于版本得到数据的能力备份存储:

  • 你得到了什么添加上述
  • “王识贤”如果你想备份S3可以/每天每周使用Amazon RRS(精简冗余存储)来备份数据/每月(只有当你想太)在其它DC位置
  • “RRS”是被设计为保持在单一的设施数据的丢失。

最后,如果我真的想备份我的数据是已经在Amazon S3中,我想用“RRS”作为备份到我的S3数据,因为:

  • 已经是双数据中心备份
  • 亚马逊DC内同步功能将快速
  • 我不需要选择云存储
+0

嗨AvkashChauhan,很好的回答恕我直言。你能分享一些最佳实践来使用RSS来同步S3存储桶和另一个存储桶之间的数据吗?用s3synch?从EC2实例? – zetarun

+0

说亚马逊删除您的帐户(您的信用卡到期,有人登录到您的帐户,并要求删除或其他方法)。你失去了你的文件。 –