
Amazon EFSを使ってみた
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちは。イムチェジョンです。
今回のブログではAmazon EFSを利用し、複数のEC2インスタンスに共有ファイルシステムを使ってみたいと思います。
アジェンダ
- Amazon EFS(Elastic File System)とは?
- Amazon EFSの使い方
- まとめ
1. Amazon EFS(Elastic File System)とは?
- 一回だけ設定すればファイルデータを共有できる弾力的なサーバーレスファイルシステム
- ファイルを追加·削除する際にファイルシステムを自動で拡張·縮小できるため、プロビジョニングして管理する必要がない
2. Amazon EFSの使い方
複数のEC2インスタンス作成
まず、違うAZに二つのEC2インスタンスを作成しましょう。
一つ目のEC2インスタンスは以下の設定で作成します。
Amazon マシンイメージ (AMI) : Amazon Linux 2 AMI
インスタンスタイプ : t2.micro
サブネット : ap-northeast-2a
セキュリティグループ : SSH TCP 22 マイIP
キーペア : 既存キーペア及び新しいキーペアの中で選択
二つ目のEC2インスタンスは上のEC2インスタンスでAZ以外には同じ設定で作成します。
上に作ったEC2インスタンスを選択し、アクション>イメージとテンプレート>同様のものを起動

移動したページには上で作成したEC2インスタンスの情報があります。
その中でインスタンスの詳細部分を編集します。

インスタンスの詳細の中でサブネットだけ他のところを選択して作成します。

これで二つのEC2インスタンスを作成しました。

セキュリティグループ作成
次にAmazon EFSを作成する時に使うセキュリティグループ作成しましょう。

セキュリティグループ名:efs-sg
インバウンドルール:NFS TDP 2049 (EC2のセキュリティグループ)

セキュリティグループの作成完了です。

Amazon EFSの作成
次にAmazon EFSを作成しましょう。

デフォルトで作成も可能ですが、今回はカスタマイズをクリックします。

ステップ2(ネットワークアクセス)の部分でマウンドターゲットのセキュリティグループを全部、上で作成したefs-sgに設定します。

新しいファイルシステムが作成できました。

Amazon EFSの設定
二つのEC2インスタンスにEFSをアタッチするためにインスタンスに接続します。

次に作成したEFSのページでアタッチをクリックします。

すると、アタッチ設定の方法が出ます。
設定するためにはEC2インスタンスにAmazon EFSクライアントのインストールする必要がありので、下のユーザーガイドをクリックします。

ページを移動するとドキュメントでインストールするコマンドがあります。

これを二つのインスタンスに実行します。
$ sudo yum install -y amazon-efs-utils Loaded plugins: extras_suggestions, langpacks, priorities, : update-motd amzn2-core | 3.7 kB 00:00 Resolving Dependencies --> Running transaction check ---> Package amazon-efs-utils.noarch 0:1.31.2-1.amzn2 will be installed --> Processing Dependency: stunnel >= 4.56 for package: amazon-efs-utils-1.31.2-1.amzn2.noarch --> Running transaction check ---> Package stunnel.x86_64 0:4.56-6.amzn2.0.3 will be installed --> Finished Dependency Resolution Dependencies Resolved ============================================================== Package Arch Version Repository Size ============================================================== Installing: amazon-efs-utils noarch 1.31.2-1.amzn2 amzn2-core 46 k Installing for dependencies: stunnel x86_64 4.56-6.amzn2.0.3 amzn2-core 149 k Transaction Summary ============================================================== Install 1 Package (+1 Dependent package) Total download size: 195 k Installed size: 479 k Downloading packages: (1/2): stunnel-4.56-6.amzn2.0.3.x86_64.r | 149 kB 00:00 (2/2): amazon-efs-utils-1.31.2-1.amzn2.n | 46 kB 00:00 -------------------------------------------------------------- Total 994 kB/s | 195 kB 00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : stunnel-4.56-6.amzn2.0.3.x86_64 1/2 Installing : amazon-efs-utils-1.31.2-1.amzn2.noarch 2/2 Verifying : stunnel-4.56-6.amzn2.0.3.x86_64 1/2 Verifying : amazon-efs-utils-1.31.2-1.amzn2.noarch 2/2 Installed: amazon-efs-utils.noarch 0:1.31.2-1.amzn2 Dependency Installed: stunnel.x86_64 0:4.56-6.amzn2.0.3 Complete!
設置できたら次にさっきのEFSアタッチページに戻ります。
EFSアタッチページでEFS マウントヘルパーの使用のコマンドをコピーしておきます。

EC2インスタンスの両方に新しいフォルダーを作ってコマンドを実行します。
$ mkdir efs $ sudo mount -t efs -o tls fs-7ddf5f1d:/ efs
これで二つのEC2インスタンスにAmazon EFSをアタッチできました。
テスト
最後にアタッチしたファイルシステムをテストしてみましょう。
インスタンシAに新しいファイルを作成します。
ファイル:ebs_file.txt
$ cd efs/ $ sudo touch ebs_file.txt
確認してみましょう。
$ ll total 4 -rw-r--r-- 1 root root 0 7月 31 18:51 ebs_file.txt
インスタンスBも確認してみたら何も作成しなくても同じファイルが作成されてました。
これでEFSが二つのインスタンスに共有できているのを確認しました。
3. まとめ
今回のブログでAmazon EFS作成し、テストしてみました。
簡単な設定をすることで共有できるのが面白いと思いました!






