2017-04-22 69 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