簡體   English   中英

Amazon S3 存儲數百萬個文件

[英]Amazon S3 Store Millions of Files

我正在嘗試找到最具成本效益的方法,將不勝感激任何幫助:

  • 我有數以百萬計的文件。 每個文件都在 1MB 以下(通常為 100KB 左右)
  • 總共超過 5 TB 的數據 - 截至目前,這將每周增長
  • 我無法將文件合並/連接在一起。 文件必須按原樣存儲
  • 查詢和下載要求是基本的。 每月要選擇和下載大約 100 萬個文件
  • 我不擔心 S3 存儲或數據檢索或數據掃描成本。

我的問題是,當我上傳數百萬個文件時,這是否算作每個文件一個 PUT 請求(意味着每個對象一個)? 如果是這樣,僅上傳數據的成本將是巨大的。 如果我上傳一個包含一百萬個文件的目錄,那是一個 PUT 請求嗎?

如果我 zip 在 prem 上有 1 億個文件,然后上傳 zip,並使用 lambda 解壓。 這算作一個 PUT 請求嗎?

有什么建議嗎?

你說你有“數以百萬計的文件”,所以我假設你有 4 億個對象,40TB 的存儲空間。 請相應調整。 我已經展示了我的計算,以便人們可以幫助識別我的錯誤。

初始上傳

Amazon S3 中的 PUT 請求$0.005 per 1,000 requests收費。 因此,4 億個 PUT 將花費2000 美元 ( .005*400m/1000 )

如果您希望將它們全部創建為單獨的對象,則無法避免此成本。

未來上傳的成本將相同,為每百萬美元 5 美元

貯存

標准存儲成本$0.023 per GB ,因此存儲 4 億個 100KB 對象的成本為每月 920 美元 ( .023*400m*100/1m )

使用成本較低的存儲類可以降低存儲成本。

使用權

GET 請求是$0.0004 per 1,000 requests ,因此每月下載 100 萬個對象將花費40c/月 ( .0004*1m/1000 )

如果將數據傳輸到互聯網,則數據傳輸費用$0.09 per GB 下載 100 萬個 100KB 對象的數據傳輸成本為 9 美元/月 ( .09*1m*100/1m )

分析

您似乎最擔心以每百萬個對象 5 美元的成本上傳數百萬個對象的初始成本

但是,存儲也會很高,每百萬個對象的成本為 2.30 美元/月(4 億個對象的成本為 920 美元/月)。 這種持續的成本可能會使初始上傳的成本相形見絀。

一些替代方案是:

  • 將數據存儲在本地(磁盤存儲為 100 美元/4TB,因此 4 億個文件需要 1000 美元的磁盤,但您需要額外的驅動器來實現冗余),或者
  • 將數據存儲在數據庫中:數據庫沒有“PUT”成本,但您需要為運行數據庫付費。 可能會降低成本。 或者
  • 合並文件中的數據(您說您不想這樣做),但要以一種可以輕松拆分的方式進行。 例如,通過標識符標記記錄以便於提取。 或者
  • 使用不同的存儲服務,例如Digital Ocean ,它們似乎沒有“PUT”成本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM