我正在尝试将EFS与EC2挂接,我所做的是在专用子网上创建EFS,在公共子网上创建EC2。专用子网和公用子网位于不同的可用区域,例如us-east-1和us-east-2。
如果将EC2和EFS都放置在公共网络中,我就能将它们连接起来。根据官方的AWS文档
”确保在同一目录中有一个Amazon EFS挂载目标 可用区作为Amazon EC2实例”
我不想将EFS放在公共子网中。
将EFS安装到EC2时,出现以下错误消息:
sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport fs-b3XXXXXXXXXXXXXXXXX.amazonaws.com:/ /mnt/wordpress
mount.nfs4: Failed to resolve server fs-b3XXXXXXXXXXXXXXXXX.amazonaws.com: No address associated with hostname
VPC的dhcp和dns相关设置都已打开。
答案 0 :(得分:1)
我不想将EFS放在公共子网中。
那很好。您不应该这样做,尽管从技术上讲这并不重要,因为EFS端点即使位于公共子网中也仍然是私有的。
但是,如果您在VPC中只有两个子网(一个公共子网,一个私有子网),则几乎可以肯定它们应该位于同一可用区中。跨越AZ边界的流量每GB计费,这就是为什么您永远不要尝试跨区域边界安装EFS的原因。该错误似乎正在保护您免受自身侵害。
如前所述,在没有令人信服的理由的情况下,您可能不应该拥有一个子网,一个可用区和另一个子网,因此进行修复是一个解决方案。另一种解决方案是在正确的区域中简单地添加一个新的专用子网。 EFS跨区域内的子网边界没有问题,并且在这种情况下不会产生带宽费用。