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

时间:2009-04-14 20:13:36

标签: amazon-s3 amazon-ec2

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

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

5 个答案:

答案 0 :(得分: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可能是最简单的。

答案 1 :(得分:2)

到目前为止,AWS Command行工具中有一个sync命令可以解决这个问题:http://docs.aws.amazon.com/cli/latest/reference/s3/sync.html

启动时: aws s3 sync s3:// mybucket / mylocalfolder

关机前

: aws s3 sync / mylocalfolder s3:// mybucket

当然,细节总是很有趣,例如。它是如何并行的(并且你可以使它更加平行,并且更快的是整个设置的虚拟性质)

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

s3cmd 包安装为

yum install s3cmd

sudo apt-get install s3cmd

取决于您的操作系统

然后使用此

复制数据
s3cmd get s3://tecadmin/file.txt

也可以列出文件。

更多detils请参阅this

答案 4 :(得分:0)

对我来说,最好的形式是:

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

来自PuTTy