Amazon Elastic File System
ユーザーガイド

amazon-efs-utils ツールを使用する

以下は、Amazon EFS ツールのオープンソースコレクションの amazon-efs-utils についての説明です。

概要

amazon-efs-utils パッケージは、Amazon EFS ツールのオープンソースのコレクションです。amazon-efs-utils は追加コストなしで使用でき、https://github.com/aws/efs-utils で、GitHub からこれらのツールをダウンロードできます。amazon-efs-utils パッケージは、Amazon Linux パッケージリポジトリで利用でき、他の Linux ディストリビューションのパッケージをビルドおよびインストールできます。

amazon-efs-utils パッケージには、マウントヘルパーおよび Amazon EFS の転送時のデータ暗号化の実行を簡単にするツールが用意されています。マウントヘルパーは、特定のタイプのファイルシステムのマウント時に使用するプログラムです。Amazon EFS ファイルシステムをマウントするために、amazon-efs-utils に含まれているマウントヘルパーを使用することをお勧めします。

amazon-efs-utils パッケージをインストールする場合、amazon-efs-utils に次の依存関係が存在し、インストールされています。

  • NFS クライアント (nfs-utils パッケージ)

  • ネットワークリレー (stunnel パッケージ、バージョン 4.56 以降)

  • Python (バージョン 2.7 以降)

  • OpenSSL 1.0.2 以降

注記

デフォルトでは、Transport Layer Security (TLS) と Amazon EFS マウントヘルパーを使用している場合、マウントヘルパーは、オンライン証明書ステータスプロトコル (OCSP) および証明書ホスト名チェックを使用します。Amazon EFS マウントヘルパーは、TLS 機能の stunnel プログラムを使用します。Linux のバージョンによっては、これらの TLS 機能をサポートする stunnel のバージョンがデフォルトで含まれていない場合があります。これらの Linux バージョンのいずれかを使用する場合、TLS を使用する Amazon EFS ファイルシステムのマウントが失敗します。

amazon-efs-utils パッケージをインストールして、システムの stunnel のバージョンをアップグレードするには、stunnel のアップグレード を参照してください。

暗号化の問題については、暗号化のトラブルシューティング を参照してください。

次の Linux ディストリビューションは amazon-efs-utils をサポートしています。

  • Amazon Linux 2

  • Amazon Linux

  • Red Hat Enterprise Linux (および、その派生物 CentOS など) バージョン 7 以降

  • Ubuntu 16.04 LTS 以降

以下のセクションでは、Linux インスタンスで amazon-efs-utils をインストールする方法を確認できます。

Amazon Linux で amazon-efs-utils パッケージをインストールする

amazon-efs-utils パッケージは、Amazon Linux 2 の Amazon Linux と Amazon マシンイメージ (AMI) のインストールに利用できます。

注記

AWS Direct Connect を使用している場合、インストールの手順は ウォークスルー 5: AWS Direct Connect を使用してオンプレミスでファイルシステムを作成してマウントする にあります。

amazon-efs-utils パッケージをインストールするには

  1. Amazon Linux または Amazon Linux 2 EC2 インスタンスが作成されたことを確認します。これを行う方法については、Linux インスタンス用 Amazon EC2 ユーザーガイドステップ 1: インスタンスを起動するを参照してください。

  2. Secure Shell (SSH) を介してインスタンスのターミナルにアクセスし、適切なユーザー名でログインします。これを行う方法の詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドSSH を使用した Linux インスタンスへの接続を参照してください。

  3. amazon-efs-utils をインストールするには、次のコマンドを実行します。

    sudo yum install -y amazon-efs-utils

他の Linux ディストリビューションで amazon-efs-utils パッケージをインストールする

amazon-efs-utils パッケージを Amazon Linux または Amazon Linux 2 AMI から取得しない場合、amazon-efs-utils パッケージを GitHub でも入手できます。

GitHub から amazon-efs-utils のクローンを作成するには

  1. サポートされている AMI タイプで Amazon EC2 インスタンスが作成されていることを確認します。これを行う方法の詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドステップ 1: インスタンスを起動するを参照してください。

  2. Secure Shell (SSH) を介してインスタンスのターミナルにアクセスし、適切なユーザー名でログインします。これを行う方法の詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイド の「SSH を使用した Linux インスタンスへの接続」を参照してください。

  3. まだ行っていない場合は、次のコマンドを使用して Git をインストールします。

    sudo yum -y install git
  4. ターミナルから以下のコマンドで、GitHub の amazon-efs-utils ツールを任意のディレクトリにクローンします。

    git clone https://github.com/aws/efs-utils

    make bash コマンドが必要なため、オペレーティングシステムにまだない場合には、次のコマンドを使ってインストールできます。

    sudo yum -y install make

パッケージをクローンした後、Linux ディストリビューションでサポートされているパッケージタイプに応じて、次のいずれかの方法を使用して、amazon-efs-utils をビルド、およびインストールできます。

  • RPM – このパッケージタイプは、Amazon Linux、Red Hat Linux、CentOS などでサポートされています。

  • DEB – このパッケージタイプは Ubuntu、Debian などでサポートされています。

amazon-efs-utils を RPM パッケージとしてビルドおよびインストールするには

  1. クライアント上のターミナルを開き、GitHub (たとえば /home/centos/efs-utils) からクローンされた amazon-efs-utils パッケージのディレクトリに移動します。

  2. まだ行っていない場合は、次のコマンドを使用して rpm ビルダーパッケージをインストールします。

    sudo yum -y install rpm-build
  3. 次のコマンドを使用して、パッケージをビルドします。

    sudo make rpm
  4. 次のコマンドを使用して、amazon-efs-utils パッケージをインストールします。

    sudo yum -y install ./build/amazon-efs-utils*rpm

amazon-efs-utils DEB パッケージをビルド、およびインストールするには

  1. クライアント上のターミナルを開き、GitHub からクローンされた amazon-efs-utils パッケージのあるディレクトリに移動します。

  2. binutils パッケージ、DEB パッケージのビルドの依存関係をインストールします。

    sudo apt-get -y install binutils
  3. 次のコマンドを使用して、パッケージをビルドします。

    ./build-deb.sh
  4. 次のコマンドでパッケージをインストールします。

    sudo apt-get -y install ./build/amazon-efs-utils*deb

stunnel のアップグレード

転送中のデータの暗号化に Amazon EFS マウントヘルパーを使用する場合、OpenSSL バージョン 1.0.2 以降、および OSCP と証明書ホスト名チェックの両方をサポートする stunnel のバージョンが必要です。Amazon EFS マウントヘルパーは、TLS 機能の stunnel プログラムを使用します。Linux のバージョンによっては、これらの TLS 機能をサポートする stunnel のバージョンがデフォルトで含まれていない場合があることに注意してください。これらの Linux バージョンのいずれかを使用する場合、TLS を使用する Amazon EFS ファイルシステムのマウントが失敗します。

Amazon EFS マウントヘルパーをインストールした後、stunnel のシステムのバージョンをアップグレードするには、次の手順を実行します。

stunnel をアップグレードするには

  1. Linux クライアントでターミナルを開き、次のコマンドを順番に実行します。

  2. sudo yum install -y gcc openssl-devel tcp_wrappers-devel

  3. sudo curl -o stunnel-5.46.tar.gz https://www.stunnel.org/downloads/stunnel-5.45.tar.gz

  4. sudo tar xvfz stunnel-5.46.tar.gz

  5. cd stunnel-5.46/

  6. sudo ./configure

  7. sudo make

  8. 現在の amazon-efs-utils パッケージは bin/stunnel にインストールされます。したがって、新しいバージョンをインストールするには、次のコマンドを使用してそのディレクトリを削除します。

    sudo rm /bin/stunnel
  9. sudo make install

  10. 注記

    デフォルトの CentOS シェルは bash シェルとは異なる構文がある csh です。以下のコードでは、まず bash が呼び出されて実行されます。

    bash
    if [[ -f /bin/stunnel ]]; then sudo mv /bin/stunnel /root fi
  11. sudo ln -s /usr/local/bin/stunnel /bin/stunnel

必要な機能のある stunnel のバージョンをインストールした後、推奨される設定で TLS を使用してファイルシステムをマウントできます。

必要な依存関係をインストールできない場合、Amazon EFS マウントヘルパー設定で、必要に応じて OCSP と証明書ホスト名チェックを無効にできます。実稼働環境でこれらの機能を無効にすることはお勧めしません。OCSP と証明書ホスト名チェックを無効にするには、次の操作を行います。

  1. 任意のテキストエディタを使用して、/etc/amazon/efs/efs-utils.conf ファイルを開きます。

  2. stunnel_check_cert_hostname 値を false に設定します。

  3. stunnel_check_cert_validity 値を false に設定します。

  4. 変更をファイルに保存して閉じます。

転送中のデータの暗号化の使用の詳細については、ファイルシステムをマウントする を参照してください。

EFS マウントヘルパー

Amazon EFS マウントヘルパーによりファイルシステムのマウントが簡素化されます。Amazon EFS 推奨のマウントオプションがデフォルトで含まれています。さらに、マウントヘルパーにはトラブルシューティングのためのログ記録が組み込まれています。Amazon EFS ファイルシステムに問題が発生した場合は、AWS サポートとこれらのログを共有することができます。

仕組み

マウントヘルパーは efs という新しいネットワークファイルシステムタイプを定義します。これには Linux の標準的な mount コマンドと完全な互換性があります。マウントヘルパーは、/etc/fstab 設定ファイルのエントリを使用して、インスタンスブート時に自動的にマウントする Amazon EFS ファイルシステムのマウントもサポートしています。

警告

ファイルシステムを自動的にマウントするときに、ネットワークファイルシステムを識別するために使用する _netdev オプションを使用します。_netdev が見つからない場合、EC2 インスタンスは応答を停止する可能性があります。この結果は、コンピューティングインスタンスがネットワーキングを開始後、ネットワークファイルシステムを初期化する必要があるためです。詳細については、「自動マウントが失敗してインスタンスが応答しない」を参照してください。

転送時のデータ暗号化が Amazon EFS ファイルシステムのマウントオプションとして宣言されている場合、マウントヘルパーはクライアント stunnel プロセス、および amazon-efs-mount-watchdog というスーパーバイザープロセスを初期化します。stunnel はオープンソースの多目的ネットワークリレーです。クライアント stunnel プロセスはインバウンドトラフィックのローカルポートをリッスンし、マウントヘルパーは NFS クライアントトラフィックをこのローカルポートにリダイレクトします。マウントヘルパーはファイルシステムとの通信に TLS バージョン 1.2 を使用します。

TLS の使用には、信頼された Amazon 認証機関によって署名された証明書が必要です。暗号化の動作の詳細については、EFS のデータとメタデータの暗号化 を参照してください。

EFS マウントヘルパーの使用

マウントヘルパーにより、Linux EC2 インスタンスに EFS ファイルシステムをマウントできます。詳細については、「ファイルシステムをマウントする」を参照してください。

サポートログの取得

マウントヘルパーには、Amazon EFS ファイルシステムのログ記録が組み込まれています。これらのログは、トラブルシューティングのために AWS サポートと共有できます。

このログは、マウントヘルパーがインストールされたシステムの /var/log/amazon/efs にあります。これらのログは、マウントヘルパー、stunnel プロセス自体、stunnel プロセスをモニタリングする amazon-efs-mount-watchdog プロセスのためのものです。

注記

ウォッチドッグプロセスは、各マウントの stunnel プロセスが実行されているかどうか、Amazon EFS ファイルシステムがアンマウントされたときに stunnel が停止されたかどうかを確認します。何らかの理由で、stunnel プロセスが予期せず終了した場合、ウォッチドッグプロセスにより再開されます。

/etc/amazon/efs/amazon-efs-utils.conf でログの設定を変更できます。ただし、変更を有効にするためには、マウントヘルパーでファイルシステムをアンマウントしてから再マウントする必要があります。マウントヘルパーおよびウォッチドッグログのログ容量は 20 MiB に制限されています。stunnel プロセスのログはデフォルトでは無効になっています。

重要

stunnel プロセスログのログ記録を有効にすることができます。ただし、stunnel ログを有効にするとファイルシステムのいくらかの容量が使用されます。

AWS Direct Connect で amazon-efs-utils を使用する

AWS Direct Connect を使用して VPC に接続する場合、Amazon EFS ファイルシステムをオンプレミスデータセンターサーバーにマウントできます。また、amazon-efs-utils を使用すると、マウントヘルパーでマウントをよりシンプルにでき、転送時のデータの暗号化を有効にすることができます。AWS Direct Connect で amazon-efs-utils を使用して Amazon EFS ファイルシステムをオンプレミス Linux クライアントにマウントする方法については、ウォークスルー 5: AWS Direct Connect を使用してオンプレミスでファイルシステムを作成してマウントする を参照してください。

Amazon EFS マウントヘルパーの詳細については、次の関連するトピックを参照してください。