最快/最好的方式在S3到EC2之间复制数据?

Par*_*and 22 amazon-s3 amazon-ec2

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

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

Tyl*_*ler 33

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

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

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


Ada*_*son 2

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

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

  • 这是一个很好的建议。EBS 卷的一个缺点是它们只能安装在与该卷位于同一可用区中运行的实例上。例如,us-east-1a 中的卷不能被 us-east-1b 中的实例使用。因此,如果无法或不愿意在该区域中运行实例(由于问题或仅仅是容量不足),则无法使用该卷。 (3认同)
  • EBS 不是这样工作的。EBS 不是 S3 上的驱动器。EBS 不会向 S3 读取/写入数据,除非创建快照或从快照创建 EBS 卷。 (2认同)