在 AWS EC2 机器之间复制数据

在 AWS EC2 机器之间复制数据

有时,为了进行一些调试或手动迁移,我需要将大量数据从一个 EC2 实例复制到另一个 EC2 实例。当数据量很小的时候,只需从实例 A scp 到我的机器,然后再 scp 到实例 B 就足够简单了,但对于大型负载来说,这是不可持续的。

我目前登录 AWS 实例的方法是通过 OpenVPN 隧道上的 SSH。EC2 机器上的 OS 用户实际上没有从一台机器到另一台机器的 SSH 选项。

我这里有几个选择。我可以生成一个 SSH 密钥,仅用于从一台机器 SSH 到另一台机器。或者我可能只在实例的子网内启用基于密码的登录(不确定这是否可行)。听起来都不是特别有吸引力或安全。

在这种情况下最佳做法是什么?我确信我不是第一个需要启用此类功能的人。

答案1

如果 EC2 实例基于 EBS,并且可以接受一定的停机时间,则可以对包含数据的 EBS 卷进行快照,基于该快照创建新的 EBS 卷,然后将其附加到另一个实例。请参阅创建 Amazon EBS 快照从快照还原 Amazon EBS 卷

另一个选择是通过复制s3相反,使用AWS CLI使用命令aws s3 cps3命令

另一个选择是亚马逊弹性文件系统,它允许您以类似于 NFS 的方式在 EC2 实例和本地服务器之间共享文件系统。截至 2018 年 9 月 15 日,此服务尚未在所有 AWS 区域提供。您可能需要咨询AWS 区域表检查它是否在您的目标地区可用。

请注意,这些选项都不需要实例能够相互访问,并且不需要 SSH 密钥。

答案2

我的这个脚本可以在两个远程点之间进行带加密的网络传输...

http://slashusr.com/scripts/tarnet

我在 AWS 添加快照传输支持之前就使用过它,现在仍然有时使用它在 AWS 和其他地方(例如我的非云专用服务器)之间切换。

相关内容