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
6
Help us understand the problem. What is going on with this article?
@miyanaga

Amazon EFSをEC2から使ってみたメモ

More than 1 year has passed since last update.

伸長する夢のストレージEFS、気になっていたんですがはじめて使ってみました。忘れないためのメモ程度です。

https://aws.amazon.com/jp/efs/
数千台のEC2から共有マウントできるとか。すごい!

セットアップ

AWSのWebコンソールからVPCや性能を指定するだけであっさりできました。
こんな感じのNFSホスト名が生成されます: fs-(固有のID).efs.ap-northeast-1.amazonaws.com

  • パフォーマンスモード最大I/Oは多数のインスタンスからマウントして共有するようなケースで選択するとよいとのこと。
  • スループットモードプロビジョニング済みは、スループットにムラがあると困るとき(ゲームなど?)に設定するといいのかなと思います。

EFSマウントヘルパー

NFS互換なので気軽に考えていましたが、マウントを簡単にするEFSマウントヘルパーというソフトウェアが提供されています。

暗号化や、最適なマウントパラメータなど、調べたらなんとかなるんだろうけど、手間のかかる部分をアシストしてくれるようです。

EC2インスタンスであれば、コマンドひとつでインストールされます。

sudo yum install -y amazon-efs-utils

詳しくは: amazon-efs-utils ツールを使用する
https://docs.aws.amazon.com/ja_jp/efs/latest/ug/using-amazon-efs-utils.html

常時マウント

通常は/etc/fstabにエントリを記述しておいて、再起動しても自動でマウントされるようにしておくことが多いでしょう。

EFSマウントヘルパーを使う場合

EFSマウントヘルパーを使うと短い記述で済みます。

詳しくはこちらに記載されています: Amazon EFS ファイルシステムの自動マウント
https://docs.aws.amazon.com/ja_jp/efs/latest/ug/mount-fs-auto-mount-onreboot.html#mount-fs-auto-mount-update-fstab

/etc/fstab
fs-(固有のID).efs.ap-northeast-1.amazonaws.com:/ /mnt/efs efs defaults,_netdev 0 0

ファイルを置いて試してみます。

# /etc/fstabに基づいてマウント
$ sudo mount -a
# ファイルを置いてみる
$ touch /mnt/efs/test.txt
$ ls /mnt/efs
test.txt
# アンマウントしてlsしてみる
$ sudo umount /mnt/efs
$ ls /mnt/efs
# ファイルなし
# もう一度マウントしてls
$ sudo mount -a
$ ls /mnt/efs
text.txt

これでtext.txtがしっかりEFS上に作成されたことが確認できました。

EFSマウントヘルパーを使わない場合

素のLinuxからNFSマウントする場合の方法はこちらに記載されています。

自動的にマウントする
https://docs.aws.amazon.com/ja_jp/efs/latest/ug/mount-fs-auto-mount-onreboot-old.html

/etc/fstab
fs-(固有のID).efs.ap-northeast-1.amazonaws.com:/ efs-mount-point nfs4 nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,_netdev,noresvport 0 0

EC2インスタンスの誕生とともにマウント

上記で紹介したページでは、EC2インスタンスの誕生と同時にマウントしておくユーザーデータも紹介されています。

インスタンスごと立ち上げて終わったら削除するような、イミュータブルなバッチ処理にも使えますね。便利!

#cloud-config
repo_update: true
repo_upgrade: all

packages:
- amazon-efs-utils

runcmd:
- file_system_id_01=fs-12345678
- efs_directory=/mnt/efs

- mkdir -p ${efs_directory}
- echo "${file_system_id_01}:/ ${efs_directory} efs tls,_netdev" >> /etc/fstab
- mount -a -t efs defaults
6
Help us understand the problem. What is going on with this article?
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

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
6
Help us understand the problem. What is going on with this article?