我无法将 EFS 挂载到 EC2 实例。它失败并显示"连接超时"错误。
使用的步骤:
-
使用 SSH 连接到 Amazon EC2 实例
-
创建了 EFS
-
在 EFS 中使用 DNS 名称尝试将 EFS 挂载到实例上(使用默认安全组(
sudo mount fs-0a9a08a3.efs.us-west-2.amazonaws.com://usr/local/mousetrap/remote
我该如何解决这个问题?
本指南用于将 EFS 挂载到 Ubuntu 18:
- 确保 EFS 与您的 EC2 位于同一安全组中。
- 在该安全组中,允许
ingress
、键入NFS
、TCP 端口2049
以及源公共或内部 IP。 - 运行
sudo apt-get install nfs-common
- 运行
sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport <your-efs-id>.efs.<zone>.amazonaws.com:/ /efs
- 运行
df -h
以查看您的 EFS 是否正确安装。 - 运行
sudo vim /etc/fstab
并添加以下内容:<your-efs-id>.efs.<zone>.amazonaws.com:/ /efs nfs4 nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 0 0
.这是为了确保它在重新启动后自动挂载。
为了将 EFS 附加到 EC2 实例,您需要确保所需的软件包可用。按照以下步骤安装并挂载 EFS 所需的软件包。
sudo yum install -y amazon-efs-utils
# For centos:-
sudo yum install -y nfs-utils
# For Ubuntu:-
sudo apt-get install nfs-common
sudo mkdir efs
sudo mount -t efs fs-2c222222:/ efs
# For encrypted EFS:
sudo mount -t efs -o tls fs-2c222222:/ efs
fs-2c222222:/ /home/ec2-user/mongodb efs defaults,_netdev 0 0
还要确保 EC2 实例具有适当的角色,以获取具有所需权限的附加 EFS 安全组
最终超时可能有几个原因。请检查以下内容:
- EC2 和网络接口上允许安全组和端口!检查端口 2049 (nmap -Pn -p 2049(
- 如果允许 ICMP,您也可以尝试 ping IP 地址
- 要使用 DNS 主机名,必须在 VPC 中允许它。但要进行故障排除,请尝试使用 IP
如果网络不工作,请检查所有组件是否到位。
- 例如,您的所有组件都位于同一子网中