将一个 VPC 中的 EBS 卷数据传输到另一个 VPC 中的 EFS

Posted

技术标签:

【中文标题】将一个 VPC 中的 EBS 卷数据传输到另一个 VPC 中的 EFS【英文标题】:Transfer EBS volume data in one VPC to an EFS in another VPC 【发布时间】:2017-02-15 20:09:28 【问题描述】:

我希望将应用程序从一个 vpc 迁移到另一个。目前,应用程序的 ec2 实例使用我从另一个 ec2 实例和 ebs 卷创建的 nfs。这些与应用程序相关的实例(Web 和应用程序)以及 nfs 实例驻留在一个 VPC 中(我们称其为 VPC“A”)。

我的问题是如何将 ebs 数据从 VPC“A”中的现有 nfs 传输到 VPC“B”中的 efs?此外,数据传输速率无关紧要,因此文件系统的性能模式仅定义为通用。谢谢!

【问题讨论】:

只使用rsync? 或者您可以停止流量足够长的时间以在 NFS 服务器上拍摄磁盘的 EBS 快照,然后从新 VPC 中的快照创建新卷,将其附加到实例,将其挂载到那里,在那里挂载EFS,然后复制文件?你有什么限制,涉及多少数据? 【参考方案1】:

在给出上述答案时不确定该答案在技术上是否可行,但如果提问者不同时运行两个应用程序(即复制数据而不是仅仅切换),则实现解决方案的方法要简单得多提供它的 VPC)。

我的公司正在切换到新的 VPC,因此我只想在新的 VPC 中提供数据。我没有将其复制到 EBS、卸载、重新安装、复制到 EFS,而是按照此处所述切换了安装点:

http://docs.aws.amazon.com/efs/latest/ug/manage-fs-access-change-vpc.html

如果您不需要实际复制数据,IMO 这会简单得多。

为了备份数据,AWS 概述了一个工作流程:

http://docs.aws.amazon.com/efs/latest/ug/efs-backup.html

【讨论】:

【参考方案2】:

听起来您的要求是将一个 VPC 中的 Amazon EBS 卷的内容传输到另一个 VPC。目前尚不清楚您的 NFS 服务器是从 EC2+EBS 托管,还是从 Amazon EFS 运行。我假设它是 EC2+EBS。

为您提供几个不同的选项(选择一个!):

创建 AMI: 创建运行服务器的 Amazon EC2 实例的 AMI。然后使用该 AMI 在 VPC B 中启动一个新实例。 移动磁盘:关闭 EC2 实例。分离 EBS 卷,将其附加到在 VPC B 中运行的不同实例。根据需要进行配置。 使用 EBS 快照: 对保存数据的 EBS 卷进行快照,从快照创建一个新的 EBS 卷(在所需的 AZ 中),将 EBS 卷附加到 VPC B 中的 EC2 实例。李>

但是,如果您的服务器在 Amazon Elastic File System (EFS) 上运行,那么您需要将数据复制到 EBS 卷,分离该卷并将其附加到VPC B,然后将数据从 EBS 卷复制到 VPC B 中的新 EFS 共享。

【讨论】:

对不起,如果我不够清楚。我的 NFS 从 EC2+EBS 托管。此外,您能否将 EBS 卷附加到不同 VPC 中的实例? 是的。 Amazon EBS 卷位于可用区中,但不限于任何特定 VPC。您可以简单地分离并重新附加到另一个实例。

以上是关于将一个 VPC 中的 EBS 卷数据传输到另一个 VPC 中的 EFS的主要内容,如果未能解决你的问题,请参考以下文章

将多个 ebs 卷附加到每个 ec2 实例

您可以将 AWS Multi-Attach EBS 卷挂载到 Terraform 中的自动扩展组吗?

如何将 EBS 卷与 ECS 容器一起使用

VPC 中的 Elastic Beanstalk 应用程序无法公开访问

将 EBS 卷附加到 AutoScalingGroup

EBS 层行为:按层还是按实例创建?