使用AWS Snowball高效迁移数十亿小文件

发布时间 2023-08-08 11:37:42作者: tangjicheng

迁移大量小文件到云端可能会面临时间和成本的挑战,因为每个单独的文件迁移都会增加成本。为了解决这个问题,AWS开发了一个名为Snowball Uploader的脚本,可以帮助用户高效地迁移数十亿个小文件。

Snowball Uploader是一个Python3脚本,它与AWS SDK for Python (Boto3)和AWS Command Line Interface (CLI)一起工作,生成清单文件来识别要复制到Snowball设备的内容。然后,每个小文件都被批处理并以TAR格式归档。这个批处理功能使得减少时间和成本成为可能。为了确保你的文件传输的成功,Snowball Uploader还生成一个成功和错误日志来确认每个文件的转换。

在开始使用Snowball Uploader之前,你需要在一个连接到Snowball设备的工作站上安装以下项目:Snowball客户端、AWS CLI版本1.16.14+、Python 3.5(或更高版本)、Boto3和Snowball Uploader。然后,你需要根据你的需求修改snowball_uploder.py命令的6个参数。

在开始迁移文件到AWS Snowball之前,我们首先收集要转移到Snowball设备的源文件信息。我们使用这段代码来生成我的清单文件。清单文件将作为.txt文件生成在/tmp目录下,其中包含源文件的列表。

当执行snowball_uploader.py与cp_snowball参数时,它将文件传输到你的Snowball设备。当脚本运行时,注意这个脚本的输出,如日志、元数据和源(数据集)列表。

最后,文章比较了使用AWS CLI单独上传文件和使用Snowball Uploader上传文件的性能结果。根据上表,我们观察到使用Snowball Uploader比CLI有七倍的性能提升。然而,你的性能会根据你的环境、你的文件大小、文件数量和其他变量而变化。

总的来说,使用Snowball Uploader,你可以缩短你的数据迁移时间,从而降低迁移成本。因此,Snowball Uploader可以帮助你满足你的项目截止日期。例如,AWS帮助Lotte在两周内使用Snowball迁移了1.4亿个文件,以支持LotteON,这是韩国的一个在线购物商城。

使用Snowball Uploader脚本将你的小文件迁移到AWS,通过多次测试确保你的数据安全,然后再用它进行你的生产数据迁移。