使用腻子将 EFS 挂载到 Red Hat ec2 实例时无法解析 EFS 的 DNS 名称

Nax*_*axi 6 encrypting-file-system redhat amazon-ec2 amazon-web-services

我遇到了一个问题,我无法使用 DNS 名称在 red hat ec2 实例上安装我的 EFS。它抛出错误mount.nfs4: Failed to resolve server us-east-1a.fs-c2aXXXX.efs.us-east-1.amazon aws.com: Name or service not known

我正在遵循 AWS 提供的说明。我尝试了以下两种方法来做到这一点,并且都抛出了上述相同的错误。我可以确认 DNS 名称是正确的。

第一个---

mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport fs-c2aXXXX.efs.us-east-1.amazonaws.com:/ efs
Run Code Online (Sandbox Code Playgroud)

第二——

mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 $(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone).fs-c2a7XXXX.efs.us-east-1.amazonaws.com:/ /efs
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用 IP 而不是 DNS 名称,我就可以很好地安装它。所以下面的命令有效。

mount -t nfs4 -o 
nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport 10.38.X.XX:/ /efs
Run Code Online (Sandbox Code Playgroud)

只要我能够安装它,我就可以使用 IP 而不是 DNS。

现在我的问题是一旦我停止并再次启动实例,我的坐骑就消失了。即使在我将以下条目添加到/etc/fstab 之后 ,它也不会自动挂载。

10.38.X.XXX:/ /efs efs defaults,_netdev 0 0
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我解决 DNS 问题或告诉我如何使用 Ips 自动挂载吗?

在此先感谢 Guyz。

Lui*_*pez 13

如果您已经打开了所有安全组、网络ACL,确认您处于有效的AZ内,但仍然无法工作;您创建的 VPC 可能未启用 DNS 主机名,请验证您是否具有以下设置:

专有网络

您的账户附带的默认 VPC 已启用此功能,其他则没有。

  • 我不知道为什么私有 VPC 必须启用此功能,但启用此功能允许我的 ECS Fargate 服务解析该服务。 (2认同)

ken*_*kas 7

要从命令行附加到 EFS,请使用此模板作为模板,并替换fs-12345678为您的 ID:

$ sudo mount -t efs fs-12345678:/ /efs
Run Code Online (Sandbox Code Playgroud)

在您的中使用它/etc/fstab(不要.efs.us-east-1.amazonaws.com在其后添加)

fs-12345678:/ /efs efs vers=4.1,rw,tls,_netdev,relatime,acl,nofail 0 0
Run Code Online (Sandbox Code Playgroud)

fstab版本还开启了数据传输加密。查看资源以获取更多信息

资源

https://docs.aws.amazon.com/efs/latest/ug/mounting-fs.html https://docs.aws.amazon.com/efs/latest/ug/troubleshooting-efs-mounting.html#automount -失败