SSH ポートフォワーディングを使って EFS を Mac からマウントしてみた

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

「スタバで注文するのはいつも Venti」でおなじみの fujimura です。

少し前に Amazon EFS が GA になりました。

【新機能】Amazon Elastic File System (Amazon EFS)がついにGA (一般利用可能)に!

さっそくいろいろな方がいじられているみたいですが、ローカルの Mac でマウントしてみるというのはされている方がいなかったようなので、やってみました。

EFS には NFS でマウントすることになりますが、EC2 からを前提としているため、外部から直接マウントすることができません。

そこで今回は SSH ポートフォワーディングを使うことでローカルでマウントできるようにします。

手順

EFS を EC2 からマウントするまでは上述のブログに記載されているため、省略します。

次にローカルでマウントできるようにするために Mac で SSH ポートフォワーディングを実行します。

$ ssh -L 2049:${AZ}.${EFS_FSID}.efs.${REGION}.amazonaws.com:2049 ec2-user@${EC2_IP}

成功すると普通に SSH ログインされます。

続きまして、別のターミナルで NFSv4 を指定して、マウントします。

$ mkdir efs
$ mount_nfs -o vers=4 localhost:/ efs
$ mount
(snip)
localhost:/ on /Users/fujimura.daisuke/efs (nfs, nodev, nosuid, mounted by fujimura.daisuke)
$ df -h
(snip)
localhost:/    8.0Ei  6.0Ki  8.0Ei     1%        0        0  100%   /Users/fujimura.daisuke/efs

Mac からマウントしても、EC2 からと同じようにエラいサイズになってます。

また、EC2 で書き込みしたファイルを Mac から読めることも確認できました。

おわりに

SSH ポートフォワーディングを使って EFS を NFS 経由でマウントしてみました。

Windows ででも NFSv4 対応クライアントを使用することで同じようにすることが可能と思われます。

あと、パフォーマンスについては計測しておりませんが、現時点で US に接続するため、かなり遅いと思われます。