2017-04-22 150 views
-2

假設我有一些數據文件在EC2實例的塊存儲上積累了幾兆字節。從AWS EC2下載大文件的最快方法EBS

什麼是他們下載到本地計算機的最有效方法是什麼? scpftpnfshttprsync?通過中間s3桶?洪流通過多臺機器?任何特殊的工具或腳本在那裏爲這個特定的問題?

+1

對於足夠大的數據集,最快和最便宜的方法是實際運送存儲介質。參見[AWS Snowball](https://aws.amazon.com/snowball/)。 –

+0

的確,儘管我有一種感覺,當數據達到PB級時,這項服務更有用,因爲物理驅動器的發貨時間實際上與通過互聯網傳輸的時間相當。大約1兆兆字節可能還沒有那麼多。無論如何,看來,協議的選擇可能會將幾小時轉換爲幾天,反之亦然,因此這個問題。 –

+1

它仍然與10TB相關。查看傳輸10TB的帶寬成本,然後再以100 Mb/s的速度傳輸數據需要多長時間。由聯邦快遞發送的10TB驅動器具有驚人的帶寬,並且FedEx賬單針對帶寬很小。 –

回答

3

請遵循下列規則:

  • 移動作爲一個文件,焦油一切都變成一個單一的存檔文件。
  • 在與您的EC2/EBS相同的區域創建S3存儲桶。
  • 使用AWS CLI S3命令將文件上傳到S3存儲桶。
  • 使用AWS CLI將文件提取到本地或其他存儲位置。

這將是你最簡單,最有效的方法。

2

需要關於此用例的更多信息。我希望下面的概念是有幫助的:

  • HTTP - 速度快,易於實現,靈活和具有小的開銷。
  • Resilio(原BitTorrent的同步) - 快速,易於部署,分散的和安全的。可以處理傳輸中斷。如果兩個端點都在NAT後面,則可以使用。
  • rsync的 - 老學校,衆所周知的解決方案。可以恢復傳輸並快速同步大量數據。
  • 上傳到S3,並從那裏得到 - 上傳到S3快。 Next您可以使用HTTP(S)或BitTorrent來獲取本地數據。
+0

我並不完全確定我可以提供哪些附加信息。問題只是關於哪種方法是最快的方法,假設我準備花費幾個小時來設置系統。 雖然我不認爲這個答案對我有幫助。例如,如果我設置了HTTP,我認爲我需要並行下載?它與從S3並行或rsync下載相比如何?至於BitTorrent,我是否需要設置額外的機器來複制數據才能下載,從而達到任何意義? –

+0

一般來說,很難相信2017年的「如何從遠程網絡下載文件」這個問題真的沒有很好的標準答案。 –

+0

那麼,「最有效」並不是一個明確定義的標準。所有提到的解決方案都是有效的,但不同。對於Resilio,沒有額外的東西,只是雙方的客戶。 – Janusz

1

由於我並沒有真正得到令人信服的答案,我決定做一個小測試自己。下面是我得到的結果:

enter image description here

更多細節here