AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 938698
Accepted
Philip Couling
Philip Couling
Asked: 2018-11-06 06:55:25 +0800 CST2018-11-06 06:55:25 +0800 CST 2018-11-06 06:55:25 +0800 CST

如何创建 AWS S3 存储桶的离线增量备份

  • 772

我正在寻找一种将 AWS 存储桶的每日备份作为增量备份的方法。这些将离线存储并远离 AWS。

对于其他存储系统(例如 NAS 驱动器),我使用每日rsync进行备份。使用 rsync 的--link-dest开关,我可以每天拍摄远程文件系统的完整快照。自上次备份以来未更改的任何文件都将硬链接到上次备份。这意味着每日完整快照仅占用增量备份的存储空间。

我想为亚马逊 S3 存储桶设置类似的东西。存储桶中有 20GB,但每天只有约 50MB 的变化。

请注意,这是备份 S3 存储桶的内容,而不是将其他内容备份到 S3 存储桶。

我可以看到如何使用 AWS CLI 工具进行完整备份。我看不到如何进行增量备份。

我想我可以(每天)将 S3 同步到本地硬盘,然后每天备份本地硬盘。这感觉非常笨拙。

编辑

这是一个简单的技术问题,而不是对备份安全性的一般讨论。但既然有人问我“你为什么需要这个”,我现在明白我需要解释备份的基本原则。

轶事:我最近目睹了第三方 IT 提供商因为沟通不畅而(完全)放弃了 S3 存储桶。这可能非常昂贵(最近的工作约 10 万英镑,总工作约 100 万英镑)。幸运的是,我们碰巧在本地笔记本电脑上也有副本,我们只花了 1000 英镑就为他们重建了内容。

它让我再次坚信,唯一有效的“备份”是在离线和离线存储的隔离系统上,并且具有有效实施时间锁定的媒体轮换。其他备份可以增强,提供更快速的恢复等...但是将所有 AWS 备份保存在您自己的 AWS 帐户上并不安全,因为...用户错误。

amazon-web-services
  • 2 2 个回答
  • 2239 Views

2 个回答

  • Voted
  1. MLu
    2018-11-06T10:40:51+08:002018-11-06T10:40:51+08:00

    注意:这是在提到离线备份之前对原始问题的回答。将其留在这里作为原始问题的答案:如何创建 AWS S3 存储桶的增量备份。

    第一个问题是为什么要备份 S3 存储桶?您要保护的问题是什么?

    • 请记住,S3 的持久性大约是 99.99999% - 您极不可能由于硬件故障而丢失对象,因此我们可以排除这种情况。

    • 如果您想确保可以恢复 S3 中意外覆盖的对象,您可以使用S3 版本控制- 这将保留文件所有旧版本的历史记录,您可以通过这种方式恢复。删除也一样。

    • 说到删除 - 您可以要求对 S3 删除使用 MFA作为另一层保护,例如出于合规性和审计原因。(谢谢蒂姆:)

    • 如果您需要在其他某个区域使用第二个 DR(灾难恢复)存储桶,以防万一您的主要区域离线,您可以使用S3 跨区域复制,它会在每次更改时自动将您的存储桶内容从一个区域镜像到另一个区域。

    • 如果以上都不能满足您的需求,您可能需要一个Lambda 函数来为您处理 S3 存储桶中的每个更改。这样,每次您在 S3 中写入/更新对象时,Lambda 都会备份到您的首选目的地。例如,这可用于在不同 AWS 账户之间镜像 S3 存储桶、镜像到其他云提供商或离线目的地(例如,镜像到您的本地服务器)。使用 Lambda,您可以在如何处理更改方面获得最大的灵活性。请参阅将 Lambda 与 Amazon S3 结合使用。

    • 如果这还不够,您可以随时使用aws s3 sync它来比较源存储桶和目标存储桶并仅复制已更改的内容。

    • (更新)对于离线备份

      • 您当然也可以使用aws s3 sync- 可以同步到磁盘/从磁盘同步,而不仅仅是在存储桶之间。
      • 或者,您可以开发更精细的解决方案,基于在创建/更新对象时捕获S3 事件,并在发生这种情况时立即将它们复制到您的离线存储中。它应该是一个非常简单的程序,位于您的服务器上,侦听 S3 事件或 SNS 消息并联系 S3 以获取更新的对象。

    这有很多可供选择。希望其中一些适合您的需求:)

    • 7
  2. Best Answer
    sysadmin1138
    2018-11-07T16:57:20+08:002018-11-07T16:57:20+08:00

    除此之外还有一种方法aws s3 sync,但它可能同样笨拙。你看,它归结为在 S3 存储桶上添加一个在 PUT 上触发的 Lambda 挂钩。理论上,这将允许您构建S3 存储桶的仅添加副本,因此不会复制任何 DELETE。有这方面的教程,但本质上是:

    1. 对象在桶中被操作。
    2. 给定操作的事件数据,触发 Lambda。
    3. 如果操作是 PUT,则您编写的代码会使用该对象执行操作。它忽略 DELETE。

    增量备份逻辑将由您编写。

    • 4

相关问题

  • 与 AWS 中的其他系统相比,CentOS 报告的总内存较低

  • 如何在 Amazon Linux 服务器上升级到 Java 1.8?

  • 了解 Amazon AWS 使用数据

  • 亚马逊提供的负载均衡服务体验如何?

  • ELB 中现有节点的 AWS 自动缩放问题

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve