将多台机器上的远程文件夹同步到一个AWS实例

问题描述

我有3个AWS P实例处理一些繁重的工作并将结果保存到相关的/home/user/folder
另外,我有一个主服务器,该服务器具有要从这三个实例中收集结果的相同文件
每个实例都在整个任务中发挥自己的作用,它们在子文件夹中的结果不会重叠

每个实例2 TB,因此,我希望每个实例出现后立即获得结果
这样,完成工作后,我就不会花半天的时间将结果复制到主服务器上

我认为解决此问题的一种方法是在每个实例上运行以下内容

*/30 * * * * rsync /home/user/folder ubuntu@1.1.1.1:/home/user/folder

假设所有实例都是AWS,是否还有其他更智能的方法来获得相同的结果?
我还考虑过(1)可分离存储和(2)在S3上存储,但是对于AWS来说,我可能会忽略这种工作流程中的一些隐患,尤其是在涉及数TB的数据和昂贵的实例时。

如何从远程实例收集处理后的数据?

解决方法

我对OP和注释中提到的某些选项以及我想到的其他选项的想法:

  1. EFS:创建一个EFS并将其作为NFS驱动器安装在所有实例上。这是最简单的方法,但可能花费最多。
  2. s3fs:让所有实例都使用s3fs装载相同的S3存储桶。这可能是最便宜的解决方案。您也不必担心磁盘空间不足。缺点是,与安装的NFS驱动器相比,性能不会那么好。
  3. EBS卷:将EBS卷附加到每个工作程序实例,以供他们将结果写入其中。完成后,分离卷并将它们附加到主服务器。这将是最快的,但仍比EFS便宜。如果您无法或不会手动完成所有分离/附加操作,则需要编写一些脚本。
  4. 老派NFS共享:没有任何花哨的AWS首字母缩写词的纯净原始NFS设置没有任何问题。 :-)
,

我会考虑使用rclone工具,该工具很容易为共享S3存储桶配置。请注意复制/同步模式。根据您的实例类型,它最多可以容纳几个千兆位吞吐量。

项目链接:rclone.org