チュートリアル: オンプレミス Linux クライアントを使用してマウントする - Amazon Elastic File System

チュートリアル: オンプレミス Linux クライアントを使用してマウントする

AWS Direct Connect または VPN を使用して VPC に接続する場合、Amazon EFS ファイルシステムをオンプレミスデータセンターサーバーにマウントできます。以下の図は、オンプレミスから Amazon EFS ファイルシステムをマウントするために必要な AWS のサービス の上位概略図です。

AWS Direct Connect を使用する場合は、オンプレミスクライアントに EFS ファイルシステムをマウントします。
注記

Microsoft Windows ベースのクライアントでの Amazon EFS; の使用はサポートされていません。

前提条件

AWS Direct Connect または VPN 接続が既にあることを確認します。AWS Direct Connect の詳細については、「AWS Direct Connect ユーザーガイド」を参照してください。VPN 接続の設定の詳細については、「Amazon VPC ユーザーガイド」の「VPN 接続」を参照してください。

AWS Direct Connect または VPN 接続がある場合は、Amazon VPC に Amazon EFS ファイルシステムとマウントターゲットを作成します。その後、amazon-efs-utils ツールをダウンロードしてインストールします。次に、オンプレミスクライアントからファイルシステムをテストします。最後に、ウォークスルーの最後のクリーンアップのステップでは、これらのリソースを削除するための情報が提供されます。

このチュートリアルにより、 リージョン () にこれらのリソースがすべて作成されます。どの AWS リージョン を使用しても、それを一貫して使用してください。VPC、マウントターゲット、Amazon EFS ファイルシステムを含むすべてのリソースは、次の図に示すとおり、同じ AWS リージョン 内に存在する必要があります。

AWS Direct Connect を使用する場合は、オンプレミスクライアントに EFS ファイルシステムをマウントします。
注記

場合によっては、ローカルアプリケーションが EFS ファイルシステムが使用可能かどうかを知る必要があります。このような場合、最初のマウントポイントを一時的に使用できなくなった場合、アプリケーションは別のマウントポイントの IP アドレスを指すことができます。このシナリオでは、可用性を高めるために、2 つのオンプレミスクライアントを異なるアベイラビリティーゾーン (AZ) を介してファイルシステムに接続することをお勧めします。

AWS アカウント のルート認証情報を使用してコンソールにサインインし、この演習を試すことができます。ただし、AWS Identity and Access Management (IAM) のベストプラクティスでは AWS アカウント のルート認証情報を使用しないことをおすすめします。代わりに、アカウントに管理者ユーザーを作成し、それらの認証情報を使用してアカウントのリソースを管理します。詳細については、「AWS IAM Identity Center ユーザーガイド」の「IAM アイデンティティセンターのユーザーに AWS アカウントアクセス権を割り当てる」を参照してください。

アカウントで作成したデフォルトの VPC またはカスタム VPC を使用できます。このウォークスルーでは、デフォルトの VPC 設定が機能します。ただし、カスタム VPC を使用する場合は、次の点を確認してください。

  • インターネットゲートウェイが VPC にアタッチされています。詳細については、Amazon VPC ユーザーガイドインターネットゲートウェイを参照してください。

  • VPC ルートテーブルには、インターネット経由のすべてのトラフィックをインターネットゲートウェイに送信するルールが含まれています。

ステップ 1: EFS リソースを作成する

このステップでは、EFS ファイルシステムとマウントターゲットを作成します。

EFS ファイルシステムを作成するには
  1. Amazon Elastic File System コンソール (https://console.aws.amazon.com/efs/) を開きます。

  2. [ファイルシステムの作成] を選択します。

  3. [VPC] リストからデフォルトの VPC を選択します。

  4. すべてのアベイラビリティーゾーンのチェックボックスをオンにします。それらがすべてデフォルトのサブネット、自動 IP アドレス、および選択済みのデフォルトのセキュリティグループを持っていることを確認します。これらが、マウントターゲットです。詳細については、「マウントターゲットの管理」を参照してください。

  5. Next Step(次のステップ)] をクリックします。

  6. ファイルシステムに名前を付け、デフォルトのパフォーマンスモードとして [general purpose (汎用)] を選択したまま [Next Step (次のステップ)] を選択します。

  7. [ファイルシステムの作成] を選択します。

  8. リストからファイルシステムを選択し、[Security group (セキュリティグループ)] 値を書き留めます。この値は次のステップで必要になります。

作成したファイルシステムにはマウントターゲットがあります。各マウントターゲットには、関連するセキュリティグループがあります。セキュリティグループは、ネットワークトラフィックを制御する仮想ファイアウォールとして機能します。マウントターゲットの作成時にセキュリティグループを指定しなかった場合、Amazon EFSはVPCのデフォルトのセキュリティグループをそれに関連付けます。上記のステップに正確に従った場合、マウントターゲットはデフォルトのセキュリティグループを使用します。

次に、マウントターゲットのセキュリティグループにルールを追加して、ネットワークファイルシステム (NFS) ポート (2049) へのインバウンドトラフィックを許可します。AWS Management Console を使用して、VPC のマウントターゲットのセキュリティグループにルールを追加できます。

NFS ポートへのインバウンドトラフィックを許可するには
  1. AWS Management Console にサインインし、Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. [NETWORK & SECURITY (ネットワークとセキュリティ)] で、[Security Groups (セキュリティグループ)] を選択します。

  3. ファイルシステムに関連付けられているセキュリティグループを選択します。ステップ 1: EFS リソースを作成する の最後にこれを書き留めました。

  4. セキュリティグループのリストの下に表示されるタブ付きペインで、[Inbound (インバウンド)] タブを選択します。

  5. [編集] を選択します。

  6. [Add Rule (ルールの追加)] を選択し、以下のタイプのルールを選択します。

    • タイプ – [NFS]

    • ソース – [Anywhere (任意の場所)]

    テストには [Anywhere (任意の場所)] ソースのみを使用することをお勧めします。オンプレミスクライアントの IP アドレスに設定されたカスタムソースを作成するか、クライアント自体のコンソールを使用して [My IP (マイ IP)] を選択するかを選ぶことができます。

    注記

    アウトバウンドルールを追加する必要はありません。これは、デフォルトのアウトバウンドルールですべてのトラフィックを残すことができるためです。このデフォルトのアウトバウンドルールがない場合は、アウトバウンドルールを追加して NFS ポート上の TCP 接続を開き、マウントターゲットのセキュリティグループを送信先として識別します。

ステップ 2: NFS クライアントをインストールする

このステップでは、NFS クライアントをインストールします。

オンプレミスサーバーに NFS クライアントをインストール
注記

転送中のデータを暗号化する必要がある場合は、NFS クライアントの代わりに Amazon EFS マウントヘルパー amazon-efs-utils を使用します。amazon-efs-utils の詳細については、「オプション: 転送中のデータの暗号化」セクションを参照してください。

  1. オンプレミスクライアントのターミナルにアクセスします。

  2. NFS をインストールします。

    Red Hat Linux を使用している場合は、次のコマンドを使用して NFS をインストールします。

    $ sudo yum -y install nfs-utils

    Ubuntu を使用している場合は、次のコマンドを使用して NFS をインストールします。

    $ sudo apt-get -y install nfs-common

ステップ 3: オンプレミスクライアント Amazon EFS; ファイルシステムをマウントする

マウントのディレクトリを作成するには
  1. 次のコマンドを使用して、マウントポイントのディレクトリを作成します。

    mkdir ~/efs
  2. アベイラビリティーゾーンで、目的のマウントターゲットの IP アドレスを選択します。オンプレミス Linux クライアントからレイテンシーを測定できます。これを行うには、異なるアベイラビリティーゾーンの EC2 インスタンスの IP アドレスに対して ping のようなターミナルベースのツールを実行して、レイテンシーが最も短いものを探します。

  • mount コマンドを実行して、マウントターゲットの IP アドレスを使用してファイルシステムをマウントします。

    $ sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-IP:/ ~/efs

Amazon EFSファイルシステムをマウントしたので、次の手順でテストできます。

Amazon EFSファイルシステム接続をテストするには
  1. ディレクトリを、次のコマンドで、作成した新しいディレクトリに変更します。

    $ cd ~/efs
  2. サブディレクトリを作成し、そのサブディレクトリの所有権を EC2 インスタンスユーザーに変更します。次に、以下のコマンドを使用して、その新しいディレクトリに移動します。

    $ sudo mkdir getting-started $ sudo chown ec2-user getting-started $ cd getting-started
  3. 次のコマンドを使用してテキストファイルを作成します。

    $ touch test-file.txt
  4. 次のコマンドを使用して、ディレクトリの内容を一覧表示します。

    $ ls -al

その結果、次のファイルが作成されます。

-rw-rw-r-- 1 username username 0 Nov 15 15:32 test-file.txt
警告

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

ステップ 4: リソースをクリーンアップし、AWS アカウントを保護する

このウォークスルーが完了したら、またはウォークスルーを調べない場合は、以下の手順に従ってリソースをクリーンアップし、AWS アカウントを保護する必要があります。

リソースをクリーンアップし、AWS アカウント を保護するには
  1. Amazon EFSを開始するための3番目の最後のステップ。

    $ sudo umount ~/efs
  2. Amazon EFS コンソールhttps://console.aws.amazon.com/efsを開きます。

  3. ファイルシステムのリストから削除する Amazon EFSファイルシステムを選択します。

  4. [Actions (アクション)] で、[Delete file system(ファイルシステムの削除)] を選択します。

  5. [ファイルシステムの完全削除]ダイアログボックスで、削除するAmazon EFSファイルシステムのファイルシステムIDを入力し、[ファイルシステムの削除]を選択します。

  6. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  7. ナビゲーションペインで、[Security Groups] を選択します。

  8. このウォークスルーのルールを追加したセキュリティグループの名前を選択します。

    警告

    VPC のデフォルトのセキュリティグループを削除しないでください。

  9. [アクション] メニューで、[Edit inbound rules] (インバウンドルールの編集) を選択します。

  10. 追加したインバウンドルールの最後に [X] を選択し、[Save (保存)] を選択します。

オプション: 転送中のデータの暗号化

転送中のデータを暗号化する必要がある場合は、NFS クライアントの代わりに、 マウントヘルパー、amazon-efs-utils を使用します

amazon-efs-utils パッケージは、 ツールのオープンソースのコレクションです。amazon-efs-utils コレクションには、マウントヘルパーおよび の転送時のデータ暗号化の実行を簡単にするツールが付属しています。このパッケージの詳細については、「Amazon EFS クライアントの手動インストール」を参照してください。このパッケージは、パッケージのリポジトリを複製することで GitHub から無料でダウンロードできます。

GitHub から amazon-efs-utils のクローンを作成するには
  1. オンプレミスクライアントのターミナルにアクセスします。

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

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

パッケージが手に入ったため、それをインストールすることができます。このインストールは、オンプレミスクライアントの Linux ディストリビューションによって異なります。以下のディストリビューションがサポートされています。

  • Amazon Linux 2

  • Amazon Linux

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

  • Ubuntu 16.04 LTS 以降

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

  2. 次のコマンドを使用して、パッケージをビルドします。

    make rpm
    注記

    rpm-builder パッケージをまだインストールしていない場合は、次のコマンドを使用してインストールします。

    sudo yum -y install rpm-build
  3. 次のコマンドでパッケージをインストールします。

    sudo yum -y install build/amazon-efs-utils*rpm
amazon-efs-utils を deb パッケージとしてビルドおよびインストールするには
  1. クライアント上のターミナルを開き、GitHub からクローンされた amazon-efs-utils パッケージのあるディレクトリに移動します。

  2. 次のコマンドを使用して、パッケージをビルドします。

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

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

パッケージをインストールしたら、AWS Direct Connect または VPN を使用して、AWS リージョン 用に amazon-fs-utils を設定します。

AWS リージョン 用に amazon-efs-utils を設定するには
  1. 任意のテキストエディタを使用して、編集のために /etc/amazon/efs/efs-utils.conf ファイルを開きます。

  2. “dns_name_format = {fs_id}.efs.{region}.amazonaws.com” という行を探します。

  3. us-west-2 のように、{region} を AWS リージョンの IDに変更します。

オンプレミスのクライアントに EFS ファイルシステムをマウントするには、まず、オンプレミス Linux クライアントでターミナルを開きます。システムをマウントするには、ファイルシステム ID、ユーザーのマウントターゲット内のマウントターゲット IP アドレス、ファイルシステムの AWS リージョン リージョンが必要です。ファイルシステムに複数のマウントターゲットを作成した場合は、これらのいずれかを選択できます。

その情報がある場合は、次の 3 つのステップで、ファイルシステムをマウントできます。

マウントのディレクトリを作成するには
  1. 次のコマンドを使用して、マウントポイントのディレクトリを作成します。

    mkdir ~/efs
  2. アベイラビリティーゾーンで、目的のマウントターゲットの IP アドレスを選択します。オンプレミス Linux クライアントからレイテンシーを測定できます。これを行うには、異なるアベイラビリティーゾーンの EC2 インスタンスの IP アドレスに対して ping のようなターミナルベースのツールを実行して、レイテンシーが最も短いものを探します。

/etc/hosts を更新するには
  • ローカルの /etc/hosts ファイルに、ファイルシステム ID とマウントターゲットの IP アドレスを含むエントリを次の形式で追加します。

    mount-target-IP-Address file-system-ID.efs.region.amazonaws.com
    192.0.2.0 fs-12345678.efs.us-west-2.amazonaws.com
マウントのディレクトリを作成するには
  1. 次のコマンドを使用して、マウントポイントのディレクトリを作成します。

    mkdir ~/efs
  2. マウントコマンドを使用してファイルシステムをマウントします。

    sudo mount -t efs fs-12345678 ~/efs

    転送時にデータの暗号化を使用する場合、マウントコマンドは次のようになります。

    sudo mount -t efs -o tls fs-12345678 ~/efs