【问题标题】:Fastest / best way copy data between S3 to EC2?在 S3 到 EC2 之间复制数据的最快/最佳方式?
【发布时间】:2010-10-19 10:46:56
【问题描述】:

我有相当大量的数据(~30G,分成~100个文件)我想在 S3 和 EC2 之间传输:当我启动 EC2 实例时,我想将数据从 S3 复制到尽可能快地使用 EC2 本地磁盘,当我完成处理后,我想将结果复制回 S3。

我正在寻找一种可以快速/并行地来回复制数据的工具。我有几个脚本被黑了,包括一个做得不错的脚本,所以我不是在寻找指向基本库的指针;我正在寻找快速可靠的东西。

【问题讨论】:

标签: amazon-s3 amazon-ec2


【解决方案1】:

我认为使用弹性块存储而不是 S3 来存储文件可能会更好。 EBS 类似于 S3 上的“驱动器”,可以安装到您的 EC2 实例中,而无需每次都复制数据,从而允许您在 EC2 实例之间持久保存数据,而无需每次都写入或读取 S3。

http://aws.amazon.com/ebs/

【讨论】:

  • 这是个好建议。 EBS 卷的一个缺点是它们只能安装在与卷在同一可用区中运行的实例上。例如。 us-east-1a 中的卷不能被 us-east-1b 中的实例使用。因此,如果不能或不想在该区域中运行实例(由于问题,或者只是容量不足),则无法使用该卷。
  • 这不是 EBS 的工作方式。 EBS 不是 S3 上的驱动器。 EBS 不会向 S3 读取/写入数据,除非在创建快照或从快照创建 EBS 卷时。
  • 我不是想说它 S3 上的驱动器,我的意思是它就像 驱动器 - 如果你想使用 S3 - 就像您使用驱动器的存储方式一样,EBS 非常适合。
  • 据我了解,EBS 可能会失败,而 s3 有备份。这可能是在决定使用 EBS 而不是 S3 之前应该考虑的另一件事。
【解决方案2】:

不幸的是,亚当的建议不会奏效,因为他对 EBS 的理解是错误的(尽管我希望他是对的,并且我经常认为自己应该这样工作)......因为 EBS 与 S3 无关,但它会只为您提供独立但可连接到实例的 EC2 实例的“外部驱动器”。您仍然需要在 S3 和 EC2 之间进行复制,即使两者之间没有数据传输成本。

您没有提及您的实例的操作系统,因此我无法提供量身定制的信息。我使用的一个流行的命令行工具是http://s3tools.org/s3cmd ...它基于 Python,因此,根据其网站上的信息,它应该可以在 Win 和 Linux 上运行,尽管我一直在 Linux 上使用它。您可以轻松地编写一个快速脚本,该脚本使用其内置的“同步”命令,其工作方式类似于 rsync,并在每次处理完数据时触发它。您还可以使用递归 put 和 get 命令仅在需要时获取和放置数据。

像 Cloudberry Pro 这样的图形工具也有一些适用于 Windows 的命令行选项,您可以设置计划命令。 http://s3tools.org/s3cmd 可能是最简单的。

【讨论】:

  • 好答案,但也许值得注意的是 s3cmd 不支持同步的 --delete 选项,这意味着如果您删除源上的某些内容,它仍将保留在目标上:(
  • 我需要使用我们的备份脚本来研究这一点。我可以发誓有某种方式 --delete 与同步一起工作。虽然,我确实记得需要一些摆弄才能做得恰到好处。到目前为止,该脚本在许多方面为我节省了时间!
  • 回复有点晚 - 我的回答不是建议使用 EBS 在 S3 和 EC2 之间进行复制,而是代替 S3。我会更新以澄清。
  • 虽然这并没有真正增加这个特别问题的答案,但值得注意的是,我检查了我们的脚本并且同步命令确实为 @golja 提供了 --delete 选项,正确的语法是 --delete-removed
【解决方案3】:

安装s3cmd包为

yum install s3cmd

sudo apt-get install s3cmd

取决于您的操作系统

然后用这个复制数据

s3cmd get s3://tecadmin/file.txt

ls 也可以列出文件。

更多细节见this

【讨论】:

    【解决方案4】:

    现在,AWS 命令​​行工具中有一个同步命令,应该可以解决问题:http://docs.aws.amazon.com/cli/latest/reference/s3/sync.html

    启动时: aws s3 同步 s3://mybucket /mylocalfolder

    关机前: aws s3 同步 /mylocalfolder s3://mybucket

    当然,细节总是很有趣,例如。它是如何并行的(你能不能让它更并行,并且更快地控制整个设置的虚拟性质)

    顺便说一句,希望你还在努力……或者有人在努力。 ;)

    【讨论】:

      【解决方案5】:

      对我来说最好的形式是:

      wget http://s3.amazonaws.com/my_bucket/my_folder/my_file.ext
      

      来自PuTTy

      【讨论】:

        猜你喜欢
        • 2014-01-27
        • 2012-03-28
        • 2018-11-10
        • 2016-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多