Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Amazon EFSを試してみた

More than 3 years have passed since last update.

ドキュメント等からわかったこと

mount target

  • アベイラビリティゾーン毎にmount targetが作成される
  • mount targetはアベイラビリティゾーン毎に1つだけ
  • デフォルトはすべてのアベイラビリティゾーンに作成するが選択することもできる
  • mount targetを作成するサブネットは選択できる
  • mount targetのIPアドレスは指定することもできる
  • mount targetには最低1つセキュリティグループを関連付ける必要がある
  • mount targetに関連付けられるセキュリティグループは5つまで
  • File systemの作成後にmount targetの削除、再作成が可能

ネットワーク

  • TCP 2049番ポートを使うのでセキュリティグループで許可する必要がある
    • EC2に関連付けているセキュリティグループはOutboundを許可する
    • mount targetに関連付けているセキュリティグループはInboundを許可する
  • mount targetとは別サブネットのEC2からFile systemをマウントすることができる
    • Network ACLでTCP 2049番ポートの通信が制限されていないかに注意 (NACLはステートレスなので戻りの通信も)
  • mount targetはPublic IPを持てない
  • Direct Connect, VPNやVPCピアリング等のVPCの外からのマウントはできない

NFS

  • NFSv4.0/NFSv4.1に対応しているが、NFSv4.1を推奨
  • Amazon Linux AMI 2016.03.0 ならNFSクライアント(nfs−utils)がインストール済みなので、改めてのインストールは不要
$ cat /etc/system-release
Amazon Linux AMI release 2016.03

$ sudo yum -y install nfs-utils  
読み込んだプラグイン:priorities, update-motd, upgrade-helper
amzn-main/latest                                                                                        | 2.1 kB     00:00     
amzn-updates/latest                                                                                     | 2.3 kB     00:00     
パッケージ 1:nfs-utils-1.3.0-0.21.amzn1.x86_64 はインストール済みか最新バージョンです
何もしません
  • File systemはDNS名でもIPアドレスでもマウント可能
    • DNS名を使うメリットは次の2つ
      • DNS名は変わらないため、mount targetを削除しても同じアベイラビリティゾーンで再作成すれば、そのままマウントできる
      • DNS名はマネジメントコンソールやスクリプトで生成することができ、これを使うことで、間違ったアベイラビリィゾーンでマウントすること(EC2とmount targetが異なるアベイラビリティゾーンになること)を防ぐことができる(IPアドレスだとパッと見でどのアベイラビリティゾーンなのかがわかりにくいので間違いやすいのかも)
    • VPCのDNS hostnamesを無効にしているなど名前が引けないような環境ではIPアドレスでマウントする

マウント手順

※ North Virginiaリージョン、AMI release 2016.03 を使用

  • 下ごしらえ
$ REGION=us-east-1
$ AZ=$(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone)
$ EFS_FSID=fs-xxxxxxxx
$ MOUNT_POINT="/mnt/efs/${EFS_FSID}/${AZ}"
  • mount targetに疎通確認
$ sudo traceroute --tcp -p 2049 ${AZ}.${EFS_FSID}.efs.${REGION}.amazonaws.com
  • マウントポイント作成
$ sudo mkdir -p ${MOUNT_POINT}
  • マウント
$ sudo cp -pi /etc/fstab /etc/fstab.$(date "+%Y%m%d")
$ echo "${AZ}.${EFS_FSID}.efs.${REGION}.amazonaws.com:/    ${MOUNT_POINT}   nfs4    defaults" | sudo tee -a /etc/fstab
$ sudo mount ${MOUNT_POINT}
  • おまけ
    容量8エクサバイト!?
$ df -Ph ${MOUNT_POINT}
ファイルシス                                         サイズ  使用  残り 使用% マウント位置
us-east-1b.fs-xxxxxxxxx.efs.us-east-1.amazonaws.com:/   8.0E     0  8.0E    0% /mnt/efs/fs-xxxxxxxx/us-east-1b

参考

nr0k
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away