我正在尝试将 AWS EFS 安装到我的本地 MacBook(以及其他本地计算机) 然而,它不起作用。
我的端口 22 和 2049 完全开放作为测试。
我尝试了一些命令,比如
mount -t nfs4 -o nfservers=4.1 xxx.xxx.xxx.xxx:/ efs/
但我不断收到
connection timed out
错误。
我还尝试将此 EFS 挂载到另一个 AWS 帐户 EC2 实例。 但不断出现同样的错误。
例如,我在Account1中有EFS,在Account2中有EC2(不同的VPC) 并尝试:
sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 xxx.xxx.xxx.xxx:/ /efs/
除非我的 EC2 位于同一个帐户(即 account1)中,否则它无法工作。
有没有办法可以将这个 EFS 挂载到不同的帐户或本地计算机上?
有兴趣的朋友可以尝试一下
sudo mount -t nfs -o vers=4,tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 -w host_ip:/ efs
通过直接连接为我工作。
对我有用的是将其安装到 EC2(“本地”),为自己提供对该服务器的 SSH 访问权限,然后使用
sshfs
来访问它。
sshfs -o allow_other,IdentityFile={YOUR_SSH_KEY} {REMOTE_USERNAME}@{YOUR_URL}:/{YOUR}/{FOLDER}/{ON_REMOTE} /{YOUR}/{LOCAL}/{FOLDER}
sudo mount -t nfs -o vers=4,tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 -w host_ip:/ efs
我尝试过使用 AWS 客户端连接 VPN,即 P2S VPN。它对我也有用。经过最新的更改,现在可以使用 AWS VPN 从本地计算机连接 EFS。
要从本地访问 EFS 文件系统,您的本地数据中心和 Amazon VPC 之间必须有 AWS Direct Connect 或 AWS VPN 连接。
您可以将
efs
卷与 amazon-efs-utils
一起使用。要安装,您需要homebrew。
首先,运行
brew update
。
接下来,添加
aws/homebrew-aws
水龙头:brew tap aws/homebrew-aws
。
最后,运行
brew install amazon-efs-utils
。
安装后,有一些安装后步骤需要
sudoers
权限。它们应该在使用自制程序安装后给出。为了方便起见,我在下面提供了它们:
To start using Amazon EFS on EC2 x86 Mac instances (mac1.metal):
sudo mkdir -p /Library/Filesystems/efs.fs/Contents/Resources
sudo ln -s /usr/local/bin/mount.efs /Library/Filesystems/efs.fs/Contents/Resources/mount_efs
To start using Amazon EFS on EC2 M1 Mac instances (mac2.metal):
sudo mkdir -p /Library/Filesystems/efs.fs/Contents/Resources
sudo ln -s /opt/homebrew/bin/mount.efs /Library/Filesystems/efs.fs/Contents/Resources/mount_efs
To stop using Amazon EFS on EC2 Mac instances:
sudo rm /Library/Filesystems/efs.fs/Contents/Resources/mount_efs
To enable watchdog for TLS mounts:
sudo cp /opt/homebrew/opt/amazon-efs-utils/libexec/amazon-efs-mount-watchdog.plist /Library/LaunchAgents
sudo launchctl load /Library/LaunchAgents/amazon-efs-mount-watchdog.plist
To disable watchdog for TLS mounts:
sudo launchctl unload /Library/LaunchAgents/amazon-efs-mount-watchdog.plist
最后,您可以运行AWS提供的命令。它看起来像下面这样:
sudo mount -t efs -o tls fs-012345678deadbeef:/ efs