ウォークスルー: AWS Direct Connect と VPN を使用してオンプレミスでファイルシステムを作成してマウントする - Amazon Elastic File System

ウォークスルー: AWS Direct Connect と VPN を使用してオンプレミスでファイルシステムを作成してマウントする

このウォークスルーでは、AWS マネジメントコンソール を使用して、オンプレミスクライアント上のファイルシステムを作成およびマウントします。これを行うには、AWS Direct Connect 接続または AWS 仮想プライベートネットワーク (VPN) の接続を使用して行います。

注記

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 ツールをダウンロードしてインストールします。次に、オンプレミスクライアントからファイルシステムをテストします。最後に、ウォークスルーの最後のクリーンアップのステップでは、これらのリソースを削除するための情報が提供されます。

このチュートリアルにより、米国西部 (オレゴン) リージョン (us-west-2) にこれらのリソースがすべて作成されます。どの AWS リージョンを使用しても、それを一貫して使用してください。すべてのリソース — VPC、マウントターゲット、Amazon EFS ファイルシステムなど — は、同じ AWS リージョン内に存在する必要があります。

注記

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

開始する前に

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

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

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

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

ステップ 1: Amazon Elastic File System リソースを作成する

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

Amazon EFS ファイルシステムを作成するには

  1. Amazon EFS コンソール (https://console.aws.amazon.com/efs/) を開きます。

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

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

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

  5. [Next Step] を選択します。

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

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

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

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

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

NFS ポートへのインバウンドトラフィックを許可するには

  1. AWS マネジメントコンソールにサインインをしたあと、https://console.aws.amazon.com/ec2/ にある Amazon EC2 コンソールを開きます。

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

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

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

  5. [Edit] を選択します。

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

    • [Type] – 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

/etc/fstab ファイルにエントリを追加することで、自動的にファイルシステムをマウントすることもできます。詳細については、「Amazon EFS ファイルシステムを自動的にマウントする」を参照してください。

警告

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

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

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

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

  1. 次のコマンドで、Amazon EFS ファイルシステムをアンマウントします。

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

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

  4. [Actions] で、[Delete file system] を選択します。

  5. [Permanently delete file system (ファイルシステムを完全に削除)] ダイアログボックスで、削除する Amazon EFS ファイルシステムのファイルシステム ID を入力して、[Delete File System (ファイルシステムの削除)] を選択します。

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

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

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

    警告

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

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

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

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

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

amazon-efs-utils パッケージは、 Amazon EFS ツールのオープンソースのコレクションです。amazon-efs-utils コレクションには、マウントヘルパーおよび Amazon EFS の転送時のデータ暗号化の実行を簡単にするツールが付属しています。このパッケージの詳細については、「amazon-efs-utils ツールを使用する」を参照してください。このパッケージは、パッケージのリポジトリを複製することで 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. {region} を、us-west-2 などの AWS リージョンの ID に変更します。

オンプレミスのクライアントに EFS ファイルシステムをマウントするには、まず、オンプレミス Linux クライアントでターミナルを開きます。システムをマウントするには、ファイルシステム ID、マウントターゲットの 1 つのマウントターゲット 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