EC2 服务器异地备份的方法?

EC2 服务器异地备份的方法?

我们在 Amazon VPC 上运行了十几个 Ubuntu Linux 网络服务器生产实例。这些实例通过 Puppet 引导和管理。大多数管理都是通过 AWS 控制台完成的。

我们的 AWS 凭证非常安全。主账户几乎不需要,具有强密码和双因素身份验证。一些受信任的管理员可以通过自己的 IAM 账户访问大多数服务,同样具有强密码和双因素身份验证。一些 IAM 账户对于特定目的(例如将文件写入 S3)的访问权限非常有限。其他员工对任何高级凭证的访问都非常有限。总体而言,有人获得控制台或 API 访问权限的可能性似乎很低。

最近的代码空间的失败有人获得了 AWS 控制台的高级访问权限并删除了实例和卷EBS Snapshots 实际上使得 Code Spaces 无法恢复其业务,这迫使我研究离线/异地(即超出我们主 AWS 账户的范围)备份数据的方法。

我如何确保我们的客户数据不会被那些获得我们的 AWS 凭证访问权限的人或 AWS 的某些灾难所破坏?应该是自动化、稳定、价格合理的。

经过几个小时的搜索,我似乎找不到“简单”的方法。将 EBS 快照复制到另一个 AWS 帐户似乎是不可能的。我无法将 EBS 快照导出到 S3 对象。我可以通过从第三方服务器提取来 rsync 所有重要数据,但我需要编写脚本来处理诸如服务器数量变化、保留、错误处理等问题。这似乎需要做很多工作。我找不到现成的软件来实现这一点。

我们当前的备份策略包括每晚自动对所有卷进行 EBS 快照,以及将压缩的 MySQLdump 上传到 S3。所有源代码和 Puppet 代码都是从外部版本控制部署的,但我们客户的文件和 MySQL 数据库仅存储在 EBS 卷及其快照上,即 AWS 生态系统内部。

答案1

很多人往往会过度思考这个问题。只需将这些服务器想象成部署在托管数据中心或公司数据中心中。在这种情况下,您将如何备份它们?

很可能是通过连接到磁带库或 VTL 的“传统”备份产品(Netbackup、Amanda、BareOS 等)。

您应该考虑为 AWS 基础设施做这件事。建立备份服务器和磁带库亚马逊之外某处并将其用作您的“世界末日”恢复方法。

磁带是最可靠的数据存储机制之一,与所有其他云备份系统不同,它不会受到 CodeSpaces 所发生的情况的影响。您的备份数据确实离线,您可以将磁带保存在您选择的安全位置 - 办公室的防火保险箱或当地银行租用的保险箱。从云存储提供商获得这种保护是不可能的。

您已经拥有配置管理。(耶!)因此,如果发生灾难,您将能够以相当快的方式重建服务器,因此磁带备份(或 VTL)将主要用于您的数据. 数据库,上传的文件等。这些内容未包含在你的 puppet 清单中。

如果这不是一个选择,那么下一个最好的选择就是创建一个完全独立用于备份的 AWS 帐户。在该帐户中,为 S3 创建具有仅上传权限的 IAM 凭证,然后从生产环境中使用该凭证推送备份。确保这些凭证与生产凭证保存在完全不同的位置,以限制它们同时受到损害的可能性。

相关内容