Amazon S3存储数百万个文件



我正在努力寻找最具成本效益的方法来做到这一点,将感谢任何帮助:

  • 我有上亿的文件。每个文件小于1MB(通常为100KB左右)
  • 到目前为止,总共超过5tb的数据,并且每周都会增长
  • 我无法合并/连接文件。文件必须按照
  • 格式存储
  • 查询和下载要求是基本的。每月约100万份文件可供选择和下载
  • 我不担心S3存储或数据检索或数据扫描成本。

我的问题是,当我上传1亿个文件时,这是否算作每个文件的一个PUT请求(意思是每个对象一个)?如果是这样,仅仅是上传数据的成本就将是巨大的。如果我上传一个包含一百万个文件的目录,这是一个PUT请求吗?

如果我在prem上压缩1亿个文件,然后上传压缩文件,并使用lambda解压缩。这算一个PUT请求吗?

建议吗?

您说您有"数亿个文件",那么我假设您有4亿个对象,即40TB的存储空间。请作相应调整。我已经把我的计算结果展示出来,以便人们可以帮助找出我的错误。

初始上传

Amazon S3中的PUT请求在$0.005 per 1,000 requests上收费。因此,4亿个看跌期权将花费2000美元。(.005*400m/1000)

如果您希望将它们全部创建为单独的对象,则无法避免此成本。

未来的上传成本相同,$5/million.

<存储/strong>

标准存储成本为$0.023 per GB,因此存储4亿个100KB对象将花费$920/月。(.023*400m*100/1m)

存储成本可以通过使用成本更低的存储类来降低。

GET请求是$0.0004 per 1,000 requests的,所以每个月下载100万个对象将花费40c/月。(.0004*1m/1000)

如果数据传输到Internet,则应用$0.09 per GB的数据传输成本。下载100万个100KB对象的数据传输成本为$9/月。(.09*1m*100/1m)

你似乎最害怕的是上传几亿的初始成本每百万件物品的成本为5美元。

然而,存储也会很高,每百万对象的成本为2.3美元/月(4亿对象为920美元/月)。持续的成本可能会使初始上传的成本相形见绌。

一些是:

  • 将数据存储在本地(磁盘存储是100美元/4tb,所以400m文件将需要1000美元的磁盘,但您将需要额外的驱动器冗余),
  • 将数据存储在数据库数据库没有"PUT"成本,但您需要为运行数据库付费。这个可以计算出较低的成本。
  • 文件中的数据(您说您不希望这样做),但以一种易于拆分的方式。例如,通过标识符标记记录以方便提取。
  • 使用不同的存储服务,例如数字海洋,他们似乎没有"PUT"成本。

最新更新