【问题标题】:Unable to mount EFS on EC2 instance; 'connection timed out' error无法在 EC2 实例上挂载 EFS; “连接超时”错误
【发布时间】:2018-04-10 21:06:29
【问题描述】:
我无法将 EFS 挂载到 EC2 实例。它失败并出现“连接超时”错误。
使用的步骤:
-
使用 SSH 连接到 Amazon EC2 实例
-
创建 EFS
-
在 EFS 中使用 DNS 名称尝试将 EFS 挂载到实例上(使用默认安全组)
sudo mount fs-0a9a08a3.efs.us-west-2.amazonaws.com:/ /usr/local/mousetrap/remote
我该如何解决这个问题?
【问题讨论】:
标签:
amazon-web-services
amazon-ec2
amazon-efs
【解决方案1】:
本指南用于将 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。这是为了确保它在重启后自动挂载。
【解决方案2】:
为了将 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、具有所需权限的安全组
【解决方案3】:
超时可能有几个原因。
请检查以下内容:
- ec2 和网络接口上允许安全组和端口!检查端口 2049 (nmap -Pn -p 2049)
- 如果允许ICMP,也可以尝试ping ip地址
- 为了使用 DNS 主机名,它必须在 VPC 中被允许。但要进行故障排除,请尝试使用 IP
如果网络无法正常工作,请检查您的所有组件是否都已到位。