Amazon Elastic File System
ユーザーガイド

Amazon EFS: 仕組み

Amazon EFS の動作方法、実装の詳細、およびセキュリティに関する考慮事項について説明します。

概要

Amazon EFS は AWS クラウド内のファイルストレージを提供します。Amazon EFS を使用すると、ファイルシステムを作成し、ファイルシステムを Amazon EC2 インスタンス、 にマウントし、ファイルシステムとの間でデータの読取りおよび書込みを行うことができます。Network File System バージョン 4.0 および 4.1 (NFSv4) プロトコルを使用して、Amazon EFS ファイルシステムを自分の VPC にマウントできます。

このプロトコルをサポートする Amazon EC2 Linux Amazon Machine Images (AMI) のリストについては、「NFS サポート」を参照してください。Amazon Linux および Ubuntu AMI などの、現行世代の Linux NFSv4.1 クライアントの使用をお勧めします。一部の AMI では、Amazon EC2 インスタンスにファイルシステムをマウントするために NFS クライアントをインストールする必要があります。手順については、「NFS クライアントをインストールする」を参照してください。

Amazon VPC の Amazon EC2 のインスタンスから Amazon EFS のファイルシステムに同時にアクセスできるため、単一の接続のみではなく拡張するアプリケーションからファイルシステムにアクセスできます。 同じリージョン内の複数のアベイラビリティーゾーンで実行されている Amazon EC2 インスタンスはファイルシステムにアクセスできるため、多くのユーザーが共通のデータソースにアクセスして共有できます。

注記

1 度に 1 つの VPC のインスタンスのみに Amazon EFS ファイルシステムをマウントできます。

Amazon EFS のファイルシステムを作成できる AWS リージョンのリストについては、「アマゾン ウェブ サービス全般のリファレンス」を参照してください。

VPC 内の Amazon EFS ファイルシステムにアクセスするには、VPC に 1 つ以上のマウントターゲットを作成します。マウントターゲットは、Amazon EFS ファイルシステムをマウントできる NFSv4 エンドポイントの IP アドレスを提供します。Domain Name Service (DNS) 名を使用してファイルシステムをマウントします。そうすると EC2 インスタンスと同じアベイラビリティーゾーンの EFS マウントターゲットの IP アドレスとして解決されます。AWS リージョンのアベイラビリティーゾーンごとに 1 つのマウントターゲットを作成できます。VPC のアベイラビリティーゾーンに複数のサブネットがある場合、サブネットの 1 つにマウントターゲットを作成します。次に、アベイラビリティーゾーンのすべての EC2 インスタンスがそのマウントターゲットを共有します。

マウントターゲットは高い可用性を実現できるように設計されています。高可用性に対応し他のアベイラビリティーゾーン (AZ) にフェイルオーバーできるアプリケーションを設計する場合、各 AZ 内のマウントターゲットの IP アドレスと DNS が静的であることに注意してください。

マウントターゲットを使用してファイルシステムをマウントした後、他の POSIX 準拠のファイルシステムと同じように使用できます。NFS レベルのアクセス権限と関連する考慮事項の詳細については、「ネットワークファイルシステム (NFS) レベルでのユーザー、グループ、アクセス許可の操作 」を参照してください。

AWS Direct Connect を使用して Amazon VPC に接続する場合、Amazon EFS ファイルシステムはオンプレミスデータセンターサーバーにマウントできます。EFS ファイルシステムはオンプレミスサーバーにマウントでき、EFS へのデータセットの移行、クラウドでのバーストシナリオの有効化、またはオンプレミスデータの EFS へのバックアップができます。

Amazon EFS ファイルシステムは Amazon EC2 インスタンスに、または AWS Direct Connect 接続を介してオンプレミスにマウントできます。

Amazon EFS と Amazon EC2 の連携

次の図は、Amazon EFS ファイルシステムにアクセスする VPC の例を示しています。ここでは、VPC の EC2 インスタンスにファイルシステムがマウントされています。

この図では、VPC には 3 つのアベイラビリティーゾーンがあり、それぞれに 1 つのマウントターゲットが作成されています。同じアベイラビリティーゾーンのマウントターゲットからファイルシステムにアクセスすることをお勧めします。アベイラビリティーゾーンの 1 つには 2 つのサブネットがあります。ただし、マウントターゲットは 1 つのサブネットのみに作成されます。このセットアップは、次のように機能します。

  1. Amazon EC2 リソースを作成し、Amazon EC2 インスタンスを起動します。Amazon EC2 の詳細については、「Amazon EC2 - 仮想サーバーのホスティング」を参照してください。

  2. Amazon EFS ファイルシステムを作成します。

  3. Amazon EC2 インスタンスに接続し、Amazon EFS ファイルシステムをマウントします。

詳細なステップについては、「Amazon Elastic File System の使用開始」を参照してください。

Amazon EFS が AWS Direct Connect と AWS マネージド VPN で動作する仕組み

オンプレミスサーバーにマウントされた Amazon EFS ファイルシステムを使用すると、オンプレミスのデータを Amazon EFS ファイルシステムにホストされている AWS クラウドに移行できます。バーストを活用することもできます。つまり、オンプレミスサーバーから Amazon EFS にデータを移動し、Amazon VPC のフリートの Amazon EC2 インスタンスのフリーとで分析することができます。その後、結果をファイルシステムに永続的に保存するか、結果をオンプレミスサーバーに戻すことができます。

オンプレミスサーバーで Amazon EFS を使用する場合は、次の点に注意してください。

  • オンプレミスサーバーには Linux ベースのオペレーティングシステムが必要です。Linux カーネルバージョン 4.0 以降をお勧めします。

  • わかりやすいように、DNS 名ではなくマウントターゲットの IP アドレスを使用して、Amazon EFS ファイルシステムをオンプレミスサーバーにマウントすることをお勧めします。

Amazon EFS ファイルシステムのオンプレミスアクセスに、追加料金は必要ありません。Amazon VPC に接続する AWS Direct Connect には料金が発生します。詳細については、「AWS Direct Connect 料金表」を参照してください。

次の図は、オンプレミスから Amazon EFS ファイルシステムにアクセスする方法 (オンプレミスサーバーにファイルシステムがマウントされている) の例を示しています。

オンプレミスサーバーと VPC の間に AWS Direct Connect接続を使用してそのマウントターゲットのサブネットに到達できる場合は、VPC で任意のマウントターゲットを使用できます。オンプレミスサーバーから Amazon EFS にアクセスするには、オンプレミスサーバーから NFS ポート (2049) へのインバウンドトラフィックを許可するために、マウントターゲットセキュリティグループにルールを追加する必要があります。

このようなセットアップを作成するには、以下の作業を行います。

  1. オンプレミスデータセンターと Amazon VPC の間に AWS Direct Connect 接続を確立します。AWS Direct Connect の詳細については、「AWS Direct Connect」を参照してください。

  2. Amazon EFS ファイルシステムを作成します。

  3. オンプレミスサーバーに Amazon EFS ファイルシステムをマウントします。

詳細なステップについては、「ウォークスルー: AWS Direct Connect と VPN を使用してオンプレミスでファイルシステムを作成してマウントする」を参照してください。

Amazon EFS と AWS Backup の連携

ファイルシステムの包括的なバックアップの実装では、Amazon EFS と AWS Backup を使用できます。AWS Backup は、クラウドおよびオンプレミスの AWS サービス間でのデータバックアップの集中化と自動化を容易にする完全マネージド型バックアップサービスです。AWS Backup を使用すると、バックアップポリシーを集中的に設定し、AWS リソースのバックアップアクティビティを監視できます。Amazon EFS は常にバックアップオペレーションよりもファイルシステムオペレーションを優先します。AWS Backup を使用して EFS ファイルシステムをバックアップする方法の詳細については、「Amazon EFS での AWS Backup の使用」を参照してください。

実装の要約

Amazon EFS では、ファイルシステムがプライマリリソースです。各ファイルシステムには、ID、作成トークン、作成時刻、バイト単位でのファイルシステムサイズ、ファイルシステム用に作成されたマウントターゲットの数、ファイルシステムの状態などのプロパティがあります。詳細については、CreateFileSystemを参照してください。

Amazon EFS は、プライマリリソースの設定のための他のリソースもサポートします。これらには、マウントターゲットとタグが含まれます。

  • マウントターゲット – ファイルシステムにアクセスするには、VPC にマウントターゲットを作成する必要があります。それぞれのマウントターゲットには、マウントターゲット ID、マウントターゲットが作成されたサブネットの ID、マウントターゲットが作成されたファイルシステムの ID、ファイルシステムがマウントされる IP アドレス、マウントターゲット状態などのプロパティがあります。mount コマンドで DNS 名または IP アドレスが使用できます。各ファイルシステムの DNS 名は次の形式になります。

    file-system-id.efs.aws-region.amazonaws.com

    この DNS 名を mount コマンドで指定して、Amazon EFS ファイルシステムをマウントできます。EC2 インスタンスまたはオンプレミスサーバーに efs-mount-point サブディレクトリを作成するとします。次に、mount コマンドを使用してファイルシステムをマウントできます。たとえば、Amazon Linux AMI では、次の mount コマンドを使用できます。

    $ sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport file-system-DNS-name:/ ~/efs-mount-point

    詳細については、「マウントターゲットの作成」を参照してください。最初に、EC2 インスタンスに NFS クライアントをインストールする必要があります。「開始方法」演習には、手順が説明されています。

  • タグ – ファイルシステムを整理し管理しやすくするため、作成した各ファイルシステムに独自のメタデータを割り当てることができます。各タグはキーと値のペアです。ファイルシステムを作成するとき、およびファイルシステムを作成した後はいつでもタグを割り当てることができます。詳細については、「ステップ 2: Amazon EFS ファイルシステムの作成ステップ 2.1: Amazon EFS ファイルシステムの作成」および「ファイルシステムのタグを管理する」を参照してください。

マウントターゲットとタグは、ファイルシステムに関連付けられていない場合は存在しないサブリソースと考えることができます。

Amazon EFS では、API オペレーションでこれらのリソースの作成および管理ができます。各リソースの作成および削除オペレーションに加えて、Amazon EFS はリソース情報を取得する Describe オペレーションもサポートしています。これらのリソースの作成および管理には、以下のオプションがあります。

  • Amazon EFS コンソールの使用 – 例については、「開始方法」を参照してください。

  • Amazon EFS ココマンドラインインターフェイス (CLI) の使用 – 例については、「チュートリアル: Amazon EFS ファイルシステムを作成し、AWS CLI を使用して Amazon EC2 インスタンスにマウントする」を参照してください。

  • 以下のように、これらのリソースをプログラムで管理することもできます。

    • AWS SDK を使用する– AWS SDK は、基礎となる Amazon EFS API をラップして、プログラミング作業を簡素化します。SDK クライアントは、アクセスキーを使用してリクエストの認証も行います。詳細については、「サンプルコードとライブラリ」を参照してください。

    • アプリケーションから直接 Amazon EFS API を呼び出す – 何らかの理由で SDK を使用できない場合、Amazon EFS API コールをアプリケーションから直接呼び出せます。ただし、このオプションを使用する場合、リクエストを認証するために必要なコードを記述する必要があります。Amazon EFS API の詳細については、「Amazon EFS API」を参照してください。

認証とアクセスコントロール

ファイルシステムの作成などの Amazon EFS API リクエストには、有効な認証情報が必要です。さらに、リソースの作成またはアクセスのための権限も必要です。デフォルトでは、AWS アカウントのルートアカウントの認証情報を使用すると、そのアカウントが所有するリソースの作成やアクセスができます。ただし、ルートアカウントの認証情報は使用しないことをお勧めします。また、アカウントで作成した AWS Identity and Access Management (IAM) ユーザーおよびロールには、リソースの作成またはアクセスの権限が付与されている必要があります。権限の詳細については、Amazon EFS に対する認証とアクセスコントロールを参照してください。

Amazon EFS のデータ整合性

Amazon EFS は、アプリケーションが NFS に求めるオープンアフタークローズの整合性セマンティクスを提供します。

Amazon EFS では、書き込みオペレーションは、次の状況でアベイラビリティーゾーン間で永続的に保存されます。

  • アプリケーションは、同期書き込みオペレーションを実行します (たとえば、open フラグで O_DIRECT Linux コマンドを使用するか、または fsync Linux コマンドを使用します)。

  • アプリケーションがファイルを閉じます。

Amazon EFS は、アクセスパターンによっては、オープンアフタークローズセマンティクスよりも強力な整合性を提供します。同期データアクセスを実行し、非追加書き込みを実行するアプリケーションは、データアクセスのための書き込み後の読み取り整合性を保ちます。

ストレージクラスとライフサイクル管理

Amazon EFS は、2019 年 2 月 13 日以降に作成されたファイルシステム用のスタンダードストレージクラスと低頻度アクセスストレージクラスを提供します。スタンダードストレージクラスは、頻繁にアクセスされるファイルを格納するために使用されます。EFS Infrequent Access (EFS IA) ストレージクラスは、アクセス頻度の低いファイル用に設計されています。

新しいファイルシステムの作成およびライフサイクル管理の有効化によって EFS IA の使用を開始できます。ライフサイクル管理を有効にすると、EFS は 30 日間アクセスされていないファイルをスタンダードストレージクラスから EFS IA ストレージクラスに自動的に移動します。EFS IA ストレージクラスは、毎日アクセスされないファイルのストレージコストを削減します。同時に、EFS が提供する高可用性、高耐久性、伸縮性、および POSIX ファイルシステムへのアクセスを維持します。2019 年 2 月 13 日以降に作成されたファイルシステムは、両方のストレージクラスのデータを透過的に処理できます。EFS ストレージクラスの詳細については、「EFS ストレージクラス」を参照してください。