Amazon EFSマウントを簡単にするamazon-efs-utilsをインストールする

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

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 をインストールする方法は次のブログを参照ください。

暗号化ラッパー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 がパッケージ提供されていない場合、次のブログを参考に、ソースコードからインストールしてください。

暗号化ラッパーstunnelをソースコードからインストールする

まとめ

amazon-efs-utils を使うと、 Amazon EFS のマウント方法がシンプルになります。 特に、Amazon EFS との通信を暗号化する場合、このパッケージを使うと、TLS トンネルを自動で確立してくれるため、非常に重宝します。

Amazon Linux 系 OS の場合は、パッケージが提供されていますが、RHEL/Ubuntu などでは、パッケージを自前でビルドする必要があります。

参考