Amazon Elastic File System (EFS) による Web サーバー間の同期


1. 要約

この記事では、“Amazon Elastic File System (EFS) による Web サーバー間の同期” モデルを投稿します。

この方法で、過去のポストでご紹介した GlusterFS によるモデルと同じの課題を解決しつつ、より簡単に拡張性、弾力性、生産性の高いモデルが実現できるようになります。


2. はじめに

今年 (2018 年) の 7 月、AWS 東京リージョンで、Amazon Elastic File Fystem (EFS) がリリースされました。

US リージョンでは、前から提供されていたプロダクトです。

過去の記事 “分散型フォールトトレラントファイルシステム GlusterFS による Web サバー間の同期” では、GlusterFS による Web サーバー間のソースコードの同期方法を投稿しました。

この方法では、いくつかの課題を解決できますが、AWS 環境を利用されている場合、上記の方法よりも簡単にスケーラブルなモデルの実現ができるようになります。

GlusterFS でいうことろのサーバー部分は AWS が担ってくれますので、これらの構築や管理作業の削減ができるようになりますが、EBS などに比べると少しだけコスト高となります。

(コストの詳細は Amazon EFS の料金 などをご参照ください。)

では、以降で Amazon Elastic File System (EFS) を利用した設計と構築の一例を投稿していこうと思います。


3. Amazon EFS 環境


  • AWS

  • AWS EFS

  • RHEL 7 系

  • NFS4


4. Amazon EFS 設計

EFS_diagram.png


5. Amazon EFS 設定

サービス > ストレージ > EFS を選択します。

設定方法の詳細は、Amazon EFS のリソースを作成する などをご参照いただき、適宜設定をしてください。


6. Amazon EFS クライアント


6-1. NFS パッケージインストール

@ Web サーバー 1, 2

$ suto yum install -y nfs-utils


6-2. Amazon EFS マウントターゲットの作成

@ Web サーバー 1, 2

$ sudo mkdir /server


6-3. Amazon EFS マウント

@ Web サーバー 1, 2

$ sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport fs-xxxxxxxx.efs.ap-northeast-1.amazonaws.com:/ /server


6-4. Amazon EFS 自動マウント

@ Web サーバー 1, 2

$ sudo cp -a /etc/fstab /etc/fstab.org

$ sudo vim /etc/fstab


/etc/fstab

fs-xxxxxxxx.efs.ap-northeast-1.amazonaws.com:/    /server    nfs4    defaults,_netdev    0 0



6-5. Amazon EFS 同期テスト

@ Web サーバー 1

$ sudo touch /server/test.txt

@ Web サーバー 2

$ sudo ls /server/

$ sudo rm -rf /server/test.txt

@ Web サーバー 1

$ sudo ls /server/


7. Amazon EFS: まとめ

この記事では、“Amazon Elastic File System (EFS) による Web サーバー間の同期” モデルを投稿してみました。

この方法によって、GlusterFS によるモデルと同じ課題を解決しつつ、より簡単に拡張性、弾力性、生産性の高いモデルが実現できるようになります。

次回以降の記事では、GlusterFS を利用した分散型フォールトトレラントメモリーキャッシュシステムについて投稿してみようと思います。