AWS EC2、RDS 和 S3 的离线/在线备份指南

AWS EC2、RDS 和 S3 的离线/在线备份指南

我在 AWS 账户中拥有一些附加了 EBS 卷的 EC2 实例(Linux 和 Windows)、一些 MySQL 数据库和 S3 存储桶。我处于以下情况:

  • 大约 6 个月内我都没有时间做这个项目。暂时休息一段时间后我一定会回来继续做这个项目
  • 在此期间,我正在寻找可以大幅减少 AWS 费用的备用选项。
  • 我可以访问离线存储,其容量超过我拥有的所有 EBS 卷的总和(Windows 共享)
  • 在此期间,我预计对数据执行 2 个操作。在暂停开始时从 EC2/S3/RDS 备份,并在暂停结束时将备份还原回 AWS 帐户,即我不会尝试从备份中提取文件等。

我正在寻找有关如何通过以下考虑实现这一目标的指导:

  • 成本——存储成本低。
  • 易于使用 - 这些备份需要恢复到同一个 AWS 账户。
  • 配置备份 - 我可以重新配置所有 EC2 实例等,但备份配置的方法是理想的
  • 备份和恢复时间——显然越快越好

我理解会存在权衡(例如时间与离线/在线备份或时间与成本)等等。但备份时间是我愿意最灵活考虑的因素。

我曾看到过关于使用 s3 glacier 或snapshot to s3options 的建议,但不清楚哪个会花费更多。

假设下面是我拥有的服务器

  • 2 - Linux r4.xlarge Centos 实例,每个实例附加 1000GB 卷
  • 1- Windows m4.large 实例,附加 500GB 卷
  • 1 个 500GB 的 RDS MySQL 实例
  • 2 个 S3 存储桶,每个存储桶约 300 GB

答案1

我做了一个快速计算这意味着您当前的基础设施成本约为每月 940 美元,但不包括带宽。假设为 1000 美元。

我假设您的卷大小是实际数据。这是相当多的数据,而且由于 AWS 带宽非常昂贵,因此数据量确实会对您的选择产生影响。如果您的数据较少,计算结果可能会有所不同,从而使下载数据更具成本效益 - 但仅适用于相对较少的数据量。

我将重点关注降低成本,而不是轻松/快速启动基础设施。我还假设 us-east-1/弗吉尼亚州。

让我们逐个解决此服务

S3

600GB 存储空间的 S3 每月仅需花费 14 美元,因此几乎不值得做任何事情。您的选择如下:

  • 存储在 S3 IA 类(7.50 美元/月)
  • 存储在 S3 Glacier Deep Archive 类中(0.60 美元/月)
  • 下载到本地存储(下载费用为 52 美元,因此比六个月的 S3 贵)

推荐:S3 Glacier Deep Archive 类

EC2/EBS

关闭实例是显而易见的,所以我会查看 EBS。

  • EBS 快照至 S3:2.5TB 每月 125 美元
  • 下载驱动器内容:带宽 227 美元
  • 压缩并存储在 S3 深度存档类中:每月 2.53 美元

S3 深度存档再次获胜

远程数据传送系统

  • RDS 备份:500GB @ 0.095 美元/GB,即每月 47.50 美元
  • 将数据备份/转储到平面文件(例如 mysqldump),存储在 S3 中:0.50 美元/月

S3 Glacier 检索成本

批量层检索成本为 0.0025 美元/GB。您有大约 3.6TB,因此成本约为 9 美元。

概括

基本上,Glacier Deep Archive 是所有数据的最佳选择。关闭 EC2 / RDS 实例、复制 / 存档数据、删除实例 / 卷 / 快照 / RDS 备份,您的账单将从每月约 1000 美元降至约 3.63 美元。

S3 深度存档的最大缺点是,无论数据在里面保存多长时间,至少要收取 6 个月的费用。Glacier 级的费用是深度存档的 4 倍,但至少要 90 天。下一个级别是 IA 级,费用是深度存档的 3 倍,总共比深度存档贵 12 倍。

请注意,我没有考虑 S3 API 请求成本。如果您上传的大型文件数量较少,这些成本通常相对较低,尤其是如果您设置了多部分块大小更高。

s3 =
  max_concurrent_requests = 20
  max_queue_size = 1000
  multipart_threshold = 64MB
  multipart_chunksize = 128MB

移动数据还可能产生一些带宽费用。如果有人指出任何重要问题,我会将其添加到我的答案中。

相关内容