如何在同一AWS账户的两个不同VPC中访问EFS文件系统?
如何跨不同VPC使用同一EFS文件系统?
问题描述
我拥有一个EFS文件系统,已在同一VPC下的us-east-1a和us-east-1b两个可用区创建了挂载点。现在需要在同一账户的另一个不同VPC中添加挂载点,但执行以下AWS CLI命令时出现错误:
aws efs create-mount-target --file-system-id fs-abcdef --subnet-id subnet-156fd195808k8l --security-groups sg-99b88u518a368dp错误信息:
An error occurred (MountTargetConflict) when calling the CreateMountTarget operation: requested subnet for new mount target is not in the same VPC as existing mount targets请问是否有办法在两个不同VPC中使用该EFS文件系统?
可行解决方案
EFS不支持直接在多个VPC创建挂载点,但可以通过以下两种方式实现跨VPC访问:
VPC对等连接(VPC Peering)
- 建立两个VPC之间的对等连接,配置双方路由表,让目标VPC子网能访问原VPC中EFS挂载点所在的子网
- 修改EFS挂载点的安全组,允许目标VPC的CIDR段访问NFS端口(2049)
- 目标VPC内的EC2实例直接挂载原VPC中EFS的DNS名称或挂载目标IP地址
AWS Transit Gateway
- 将两个VPC都关联到同一个中转网关,配置中转网关路由表实现VPC间流量互通
- 调整EFS安全组,允许目标VPC的CIDR段访问2049端口
- 目标VPC内的实例通过EFS的DNS名称挂载,中转网关会自动处理跨VPC流量路由
注意事项
- 两个VPC的CIDR段不能重叠,否则会引发路由冲突
- 确保EC2实例所在子网的路由表包含指向对等连接或中转网关的路由条目
- 跨VPC访问EFS不会额外影响文件系统性能,但需考虑VPC间的网络延迟
内容的提问来源于stack exchange,提问作者Eva
相关产品推荐
相关产品推荐

