我有相当大量的数据(~30G,分成~100个文件)我想在 S3 和 EC2 之间传输:当我启动 EC2 实例时,我想将数据从 S3 复制到 EC2 本地磁盘尽快,当我完成处理后,我想将结果复制回 S3。
我正在寻找一种可以来回快速/并行复制数据的工具。我有几个脚本被黑了,包括一个做得不错的脚本,所以我不是在寻找指向基本库的指针;我正在寻找快速可靠的东西。
我有相当大量的数据(~30G,分成~100个文件)我想在 S3 和 EC2 之间传输:当我启动 EC2 实例时,我想将数据从 S3 复制到 EC2 本地磁盘尽快,当我完成处理后,我想将结果复制回 S3。
我正在寻找一种可以来回快速/并行复制数据的工具。我有几个脚本被黑了,包括一个做得不错的脚本,所以我不是在寻找指向基本库的指针;我正在寻找快速可靠的东西。
不幸的是,亚当的建议不会奏效,因为他对 EBS 的理解是错误的(尽管我希望他是对的,并且经常认为自己应该那样工作)......因为 EBS 与 S3 无关,但它只会给你独立但可连接到实例的 EC2 实例的“外部驱动器”。您仍然需要在 S3 和 EC2 之间进行复制,即使两者之间没有数据传输成本。
你没有提到你的实例的操作系统,所以我不能提供量身定制的信息。我使用的一个流行的命令行工具是http://s3tools.org/s3cmd ...它基于 Python,因此,根据其网站上的信息,它应该可以在 Win 和 Linux 上运行,尽管我使用它所有Linux 上的时间。您可以轻松地编写一个快速脚本,该脚本使用其内置的“同步”命令,其工作方式类似于 rsync,并在每次处理完数据时触发它。您还可以使用递归 put 和 get 命令仅在需要时获取和放置数据。
像 Cloudberry Pro 这样的图形工具也有一些适用于 Windows 的命令行选项,您可以设置计划命令。http://s3tools.org/s3cmd可能是最简单的。
到目前为止,AWS 命令行工具中有一个同步命令,应该可以解决问题:http: //docs.aws.amazon.com/cli/latest/reference/s3/sync.html
启动时:aws s3 sync s3://mybucket /mylocalfolder
关机前:aws s3 sync /mylocalfolder s3://mybucket
当然,细节总是很有趣,例如。它是如何并行的(你能不能让它更并行,并且更快地控制整个设置的虚拟性质)
顺便说一句,希望你还在做这个……或者有人在做。;)
我认为使用弹性块存储而不是 S3 来存储文件可能会更好。EBS 类似于 S3 上的“驱动器”,可以安装到您的 EC2 实例中,而无需每次都复制数据,从而允许您在 EC2 实例之间持久保存数据,而无需每次都向 S3 写入或读取。
将s3cmd包安装为
yum install s3cmd
或者
sudo apt-get install s3cmd
取决于您的操作系统
然后用这个复制数据
s3cmd get s3://tecadmin/file.txt
ls 也可以列出文件。
有关更多详细信息,请参阅此
对我来说最好的形式是:
wget http://s3.amazonaws.com/my_bucket/my_folder/my_file.ext
从PuTTy