22

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

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

4

5 回答 5

33

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

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

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

于 2011-09-25T09:51:14.860 回答
3

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

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

关机前:aws s3 sync /mylocalfolder s3://mybucket

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

顺便说一句,希望你还在做这个……或者有人在做。;)

于 2016-04-27T05:51:39.660 回答
2

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

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

于 2009-04-14T20:19:14.677 回答
1

s3cmd包安装为

yum install s3cmd

或者

sudo apt-get install s3cmd

取决于您的操作系统

然后用这个复制数据

s3cmd get s3://tecadmin/file.txt

ls 也可以列出文件。

有关更多详细信息,请参阅

于 2014-03-13T13:03:55.673 回答
0

对我来说最好的形式是:

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

PuTTy

于 2017-01-12T14:40:00.877 回答