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

Syncing remote folders from several machines to one AWS instance

我有 3 个 AWS P 实例处理一些繁重的东西并将结果保存到相关 /home/user/folder
我还有一个主服务器,其中包含我想从这 3 个实例收集结果的相同文件夹
每个实例都在整个任务的自己的部分工作,它们在子文件夹中的结果不重叠

每个实例都是 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 存储桶。这可能是最便宜的解决方案。您也不必担心 运行 磁盘不足 space。缺点是与安装的 NFS 驱动器相比,性能不会那么好。
  3. EBS 卷:将 EBS 卷附加到每个工作实例,以便它们将结果写入其中。完成后,分离卷并将它们附加到主服务器。这将是最快的,而且比 EFS 更便宜。如果您不能或不愿手动完成所有 detaching/attaching,您将需要编写一些脚本。
  4. 老派 NFS 共享:没有任何那些奇特的 AWS 首字母缩略词的普通 NFS 设置没有任何问题。 :-)

我会考虑使用 rclone 工具,它可以轻松配置共享 S3 存储桶。请注意 copy/sync 模式。根据您的实例类型,它可以增加高达几千兆的吞吐量。

Link 项目:rclone.org