Amazon EFSマウントを簡単にするamazon-efs-utilsをインストールする
Amazon EFS には amazon-efs-utils というツールが存在し、ファイルシステムのマウントや転送時のデータ暗号化を簡単にできるようになります。
今回は、この amazon-efs-utils を主要 Linux ディストリビューションでインストールする方法を紹介します。
対応ディストリビューション
amazon-efs-utils は以下の Linux 系ディストリビューションで動作確認されています。
Distribution | Package Type | init System |
---|---|---|
Amazon Linux 2017.09 | rpm | upstart |
Amazon Linux 2 | rpm | systemd |
CentOS 7 | rpm | systemd |
RHEL 7 | rpm | systemd |
Debian 9 | deb | systemd |
Ubuntu 16.04 | deb | systemd |
なお、2018年7月時点でAmazon EFS は Windows 系 OS には対応しておりません。
依存プログラム
amazon-efs-utils を動作させる上で、以下のプログラムに依存します。
- nfs-utils (RHEL/CentOS/Amazon Linux) または nfs-common (Debian/Ubuntu)
- OpenSSL 1.0.2+
- Python 2.7+
- stunnel 4.56+
特に stunnel のバージョンにはお気をつけください。
stunnel をインストールする方法は次のブログを参照ください。
Amazon Linux/Amazon Linux 2にインストール
Amazon Linux 系の場合、オフィシャルパッケージが用意されています。
$ sudo yum -y install amazon-efs-utils ... Installed: amazon-efs-utils.noarch 0:1.2-1.amzn2 Dependency Installed: stunnel.x86_64 0:4.56-6.amzn2.0.1 Complete!
RedHat/CentOS にインストール
GitHub で管理されているソースコードから RPM パッケージを作成し、インストールします。
検証は RHEL 7.5 で行いました。
必要なパッケージをインストール
$ sudo yum install -y git # ソースコード取得用 $ sudo yum install -y rpm-build # RPM パッケージ作成用
ソースコードを GitHub から取得
$ git clone https://github.com/aws/efs-utils $ cd efs-utils
RPM パッケージをビルド&インストール
$ make rpm # RPM パッケージをビルド $ ls build/amazon-efs-utils*rpm # パッケージの確認 build/amazon-efs-utils-1.3-1.el7.noarch.rpm $ sudo yum -y install build/amazon-efs-utils*rpm # RPM パッケージをインストール ... Installed: amazon-efs-utils.noarch 0:1.3-1.el7 Dependency Installed: stunnel.x86_64 0:4.56-6.el7 Complete! $
Ubuntu/Debian にインストール
GitHub で管理されているソースコードから DEB パッケージを作成し、インストールします。
検証は Ubuntu Server 16.04 で行いました。
必要なパッケージをインストール
$ sudo apt-get -y install binutils # DEV パッケージ作成用
git はインストール済みでしたす。
ソースコードを GitHub から取得
$ git clone https://github.com/aws/efs-utils $ cd efs-utils
DEV パッケージをビルド&インストール
$ ./build-deb.sh # DEV パッケージをビルド $ ls ./build/amazon-efs-utils*deb # パッケージの確認 ./build/amazon-efs-utils-1.3-1.deb $ sudo apt-get install -y ./build/amazon-efs-utils*deb # DEV パッケージをインストール ... Setting up amazon-efs-utils (1.3) ... Processing triggers for libc-bin (2.23-0ubuntu10) ... Processing triggers for systemd (229-4ubuntu21.2) ... Processing triggers for ureadahead (0.100.0-19) ... $
stunnel のバージョンが 4.56 よりも古い場合、パッケージビルド時に以下の様なエラーが発生します。
The following packages have unmet dependencies: amazon-efs-utils : Depends: stunnel4 (>= 4.56) but it is not installable E: Unable to correct problems, you have held broken packages.
要件を満たす stunnel がパッケージ提供されていない場合、次のブログを参考に、ソースコードからインストールしてください。
まとめ
amazon-efs-utils を使うと、 Amazon EFS のマウント方法がシンプルになります。 特に、Amazon EFS との通信を暗号化する場合、このパッケージを使うと、TLS トンネルを自動で確立してくれるため、非常に重宝します。
Amazon Linux 系 OS の場合は、パッケージが提供されていますが、RHEL/Ubuntu などでは、パッケージを自前でビルドする必要があります。