将EBS快照复制到S3以获得低成本存储

目标:能够将EBS快照复制到S3,并将其视为任意对象,如果我愿意的话,可以将其下载到本地的本地机器上。

我明白,EBS快照实际上是由S3支持的 – 他们只是不在“正常”的存储桶中显示。 我所看到的用于复制快照的控制台和CLI机制似乎着重于将“快照”从一个区域复制到另一个“作为快照”,而不是S3作为“任意对象”复制。

从我读到的,EBS快照的$ / GB费用高于S3中的一个对象…所以如果我有一些快照,我想保持很长一段时间(但我赢了不需要任何时间),我想“归档”他们到S3作为对象…本质上:

  1. 将S3快照复制为对象
  2. 删除EC2中的快照
  3. 五六个月过去了
  4. 将S3中的对象复制为快照到EC2
  5. 从现在在EC2中显示的快照中创build一个卷

可以这样做吗?

亚马逊不提供这个function。

我现在已经创build了一个名为snap-to-s3的开源工具snap-to-s3完成这个工作。 它将快照变成一个临时的EBS卷,然后卷起,压缩并上传卷的分区到S3:

https://github.com/thenickdude/snap-to-s3

如果你喜欢,你可以select使用dd而不是tar来保存卷的每个字节。

一个不那么容易的伎俩:

  • 将EBS附加到另一台机器(未安装,只读)
  • 制作一个音量的dd图像
  • 移动dd图像到S3

为了恢复dd映像,请看如何将dd映像恢复到EBS卷

截至2016年8月11日,AWS快照每GB成本为0.05美元 ,降幅为47%。 标准S3仍然更便宜,每GB约0.03美元。 我想这个差距一定是pipe理开销。