【问题标题】:Fastest way to download large files from AWS EC2 EBS从 AWS EC2 EBS 下载大文件的最快方法
【发布时间】:2018-06-14 04:25:05
【问题描述】:

假设我在 EC2 实例的块存储上累积了几 TB 的数据文件。

将它们下载到本地计算机的最有效方法是什么? scp? ftp? nfs? http? rsync?通过中间的s3 存储桶?通过多台机器进行洪流?有针对这个特定问题的特殊工具或脚本吗?

【问题讨论】:

  • 对于足够大的数据集,最快和最便宜的方法是物理运送存储介质。见AWS Snowball
  • 没错,虽然我感觉这项服务在数据达到 PB 时更有用,在这种情况下,运送物理驱动器的时间实际上与通过 Internet 传输的时间相当。 1 TB 左右可能仍然没有那么。尽管如此,似乎协议的选择可能会将几个小时的传输变成几天的传输,反之亦然,因此提出了这个问题。
  • 它仍然适用于 10TB。查看传输 10TB 的带宽成本,然后以 100 Mb/s 的速度移动数据需要多长时间。 FedEx 发送的 10TB 驱动器具有惊人的带宽,而 FedEx 的费用对于带宽来说是很小的。

标签: amazon-web-services networking amazon-ec2 file-transfer


【解决方案1】:

由于我没有真正得到令人信服的答案,我决定自己做一个小测量。这是我得到的结果:

更多详情here

【讨论】:

  • 很难在您自己的答案中添加一些内容。感谢您的发现。我只想提一下,如果您有 许多 个小文件,您可能需要研究并行下载以充分利用可用带宽。但是,如果它们是大文件,由于开销较小,它不会有太大帮助。
【解决方案2】:

请遵守以下规则:

  • 作为一个文件移动,将所有内容 tar 到一个存档文件中。
  • 在与您的 EC2/EBS 相同的区域中创建 S3 存储桶。
  • 使用AWS CLI S3命令上传文件到S3桶。
  • 使用 AWS CLI 将文件拉取到您的本地或其他存储所在的任何位置。

这将是您最简单、最有效的方式。

【讨论】:

    【解决方案3】:

    需要有关此用例的更多信息。我希望以下概念对您有所帮助:

    • HTTP - 快速、易于实施、用途广泛且开销小。
    • Resilio(以前称为 BitTorrent Sync)- 快速、易于部署、去中心化且安全。可以处理传输中断。如果两个端点都在 NAT 之后,则有效。
    • rsync - 老派和众所周知的解决方案。可以恢复传输并快速同步大量数据。
    • 上传到 S3 并从那里获取 - 上传到 S3 速度很快。接下来您可以使用 HTTP(S) 或 BitTorrent 本地获取数据。

    【讨论】:

    • 我不确定我可以提供哪些额外信息。问题只是一般来说哪种方法最快,假设我准备花几个小时来设置系统。不过,我认为这个答案对我没有帮助。例如,如果我设置 HTTP,我认为我需要并行下载?与从 S3 并行或 rsync 下载相比如何?至于 BitTorrent,我是否需要设置额外的机器来复制数据,然后再下载才有意义?
    • 总的来说,2017 年“如何从远程网络下载文件”这个问题似乎真的没有很好的标准答案。
    • 嗯,“最有效”并不是一个明确定义的标准。所有提到的解决方案都是有效的,但又各不相同。对于 Resilio,没有额外的东西,只是双方的客户。
    • 通过效率我假设完成传输所需的总时间(假设接收大小没有带宽限制和合理的预算)。
    • Resilio 知道如何最大化我的传入带宽吗?在这方面它比 rsync 更好吗?中间 S3 存储步骤会加快速度吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多