在AWS EC2机器之间复制数据

有时候,为了做一些debugging或者手动迁移,我需要将大块数据从一个EC2实例复制到另一个。 当数据的大小很小时,从实例A到我的机器,然后scp到实例B,但是对于不可持续的大型有效载荷,它足够简单。

我目前的loginAWS实例的方法是通过SSH通过OpenVPN隧道。 我在EC2机器上的操作系统用户没有真正的从一台机器到另一台机器的SSH选项。

我在这里有几个选项。 我可以生成一个SSH密钥,只用于从一台机器SSH到另一台。 或者,也许我可以启用基于密码的login只在实例的子网(不知道这是甚至可行的)。 既不是特别有吸引力也不安全

在这种情况下最好的做法是什么? 我相信我不是第一个需要启用这样的东西的人。

如果EC2实例是基于EBS的,并且某些停机时间可以接受,则可以对包含数据的EBS卷进行快照,根据该快照创build新的EBS卷,并将其附加到其他实例。 请参阅创buildAmazon EBS快照和从快照恢复Amazon EBS卷 。

另一个select是通过s3使用命令aws s3 cp或s3cmd使用AWS CLI进行复制。

此外, 亚马逊弹性文件系统最近宣布。 尽pipe(截至2015年7月22日),它仍处于预览阶段,仅在美国西部(俄勒冈州)地区才有。

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

我的这个脚本可以在两个远程点之间进行networking传输WITH ENCRYPTION …

http://slashusr.com/scripts/tarnet

在AWS添加了对快照传输的支持之前,我还是使用了它,并且有时还会在AWS和其他地方(如我的非云专用服务器)之间使用它。