Amazon EFS の仕組み - Amazon Elastic File System

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon EFS の仕組み

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

概要

Amazon Elastic File System (EFS ) は、シンプルでサーバーレス、かつ set-and-forget 柔軟なファイルシステムを提供します。Amazon EFS を使用すると、ファイルシステムを作成し、そのファイルシステムを Amazon EC2 インスタンスにマウントし、ファイルシステムとの間でデータの読取りおよび書込みを行うことができます。Network File System バージョン 4.0 および 4.1 (NFSv4) プロトコルを使用して、Amazon EFS ファイルシステムを自分の VPC にマウントできます。Amazon EFS マウントヘルパーと組み合わせて現行世代の Linux NFSv4.1 クライアントを使用することをお勧めします。このクライアントは、最新の Amazon Linux、Red Hat、Ubuntuおよび macOS Big Sur AMI などに搭載されています。手順については、「Amazon EFS ツールのインストール」を参照してください。

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

お客様の Amazon EFS ファイルシステムに、複数の NFS クライアントから同時にアクセスできます。それで、単一接続を越えてスケールされているアプリケーションがファイルシステムにアクセスできます。同一 AWS リージョン リージョン内の複数のアベイラビリティーゾーンで実行される Amazon EC2 と AWS インスタンスがファイルシステムにアクセスできるため、多くのユーザーが共通のデータソースにアクセスして共有できます。

Amazon EFS ファイルシステムを作成 AWS リージョン できる のリストについては、「」を参照してくださいAmazon Web Services 全般のリファレンス

VPC 内の Amazon EFS ファイルシステムにアクセスするには、VPC に 1 つ以上のマウントターゲットを作成します。

  • リージョンファイルシステムの場合、 AWS リージョン内の各アベイラビリティーゾーンにマウントターゲットを作成できます。

  • 1 ゾーンファイルシステムの場合、ファイルシステムと同じアベイラビリティーゾーンにマウントターゲットを 1 つだけ作成します。

詳細については、「EFS ストレージクラス」を参照してください。

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

注記

Amazon EFS ファイルシステムでは、一度に 1 つの VPC にのみマウントターゲットを持つことができます。

マウントターゲットは高い可用性を実現できるように設計されています。高可用性と他のアベイラビリティーゾーン (AZ) へのフェイルオーバーを設計する場合、各 AZ のマウントターゲットの IP アドレスと DNS は静的ですが、これらは複数のリソースによってバックアップされる冗長コンポーネントであることに注意してください。

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

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

Amazon EFS と Amazon EC2 の連携方法

このセクションでは、Amazon EFS のリージョナルファイルシステムと 1 ゾーンファイルシステムが Amazon VPC 内の EC2 インスタンスにマウントされる方法について説明します。

Amazon EFS リージョンファイルシステム

次の図は、 AWS リージョン内の複数のアベイラビリティーゾーン用に設定された Amazon EFS ファイルシステムにアクセスする、複数の EC2 インスタンスを示しています。

EC2 インスタンスとマウントターゲット、およびマウントされた EFS ファイルシステムを含む VPC 内の 3 つのアベイラビリティーゾーンを示す図。

この図では、仮想プライベートクラウド (VPC) に 3 つのアベイラビリティーゾーンがあります。ファイルシステムがリージョン別であるため、各アベイラビリティーゾーンにマウントターゲットが作成されました。パフォーマンスとコストの観点から、同じアベイラビリティーゾーンのマウントターゲットからファイルシステムにアクセスすることをお勧めします。アベイラビリティーゾーンの 1 つには 2 つのサブネットがあります。ただし、マウントターゲットは 1 つのサブネットのみに作成されます。詳細については、「EFS マウントヘルパーを使用して EFS ファイルシステムをマウントする」を参照してください。

Amazon EFS 1 ゾーンファイルシステム

次の図は、単一の AWS リージョン内の異なるアベイラビリティーゾーンから 1 ゾーンファイルシステムにアクセスする、複数の EC2 インスタンスを示しています。

EC2 インスタンス、1 つのマウントターゲット、およびマウントされた EFS 1 ゾーンファイルシステムを含む VPC 内の 2 つのアベイラビリティーゾーンを示す図。

この図では、VPC には 2 つのアベイラビリティーゾーンがあり、それぞれに 1 つのサブネットがあります。ファイルシステムのタイプが 1 ゾーンなので、マウントターゲットを 1 つだけ持つことができます。パフォーマンスとコストを向上させるために、マウントする EC2 インスタンスと同じアベイラビリティーゾーンにあるマウントターゲットからファイルシステムにアクセスすることをお勧めします。

この例では、us-west-2c アベイラビリティーゾーンの EC2 インスタンスは、別のアベイラビリティーゾーンのマウントターゲットにアクセスするための EC2 データアクセス料金を支払います。詳細については、「1 ゾーンファイルシステムをマウントする」を参照してください。

Amazon EFS が AWS Direct Connect および AWS Managed 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 ファイルシステムにアクセスする方法 (オンプレミスサーバーにファイルシステムがマウントされている) の例を示しています。

Amazon EFS が と連携してオンプレミスサーバー AWS Direct Connect に EFS ファイルシステムをマウントすることを示す図。

オンプレミスサーバーと VPC 間の AWS Direct Connect 接続を使用して、そのマウントターゲットのサブネットに到達できる場合は、VPC 内の任意のマウントターゲットを使用できます。オンプレミスサーバーから Amazon EFS にアクセスするには、オンプレミスサーバーから NFS ポート (2049) へのインバウンドトラフィックを許可するために、マウントターゲットセキュリティグループにルールを追加する必要があります。詳しい手順などの詳細については、「ウォークスルー: AWS Direct Connect と VPN を使用してオンプレミスでファイルシステムを作成してマウントする」を参照してください。

Amazon EFS と の連携方法 AWS Backup

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

実装についての要約

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

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

  • マウントターゲット - ファイルシステムにアクセスするには、VPC にマウントターゲットを作成する必要があります。各マウントターゲットには、プロパティとしてマウントターゲット ID、マウントターゲットが作成されたサブネットの ID、マウントターゲットが作成されたファイルシステムの ID、ファイルシステムのマウント先の IP アドレス、VPC セキュリティグループ、マウントターゲット状態などがあります。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

    詳細については、「マウントターゲットの管理」を参照してください。

  • アクセスポイント - アクセスポイントは、アクセスポイントを介したすべてのファイルシステム要求に対して、オペレーティングシステムのユーザー、グループ、およびファイルシステムのパスを適用します。アクセスポイントのオペレーティングシステムのユーザーおよびグループは、NFS クライアントから提供されるすべての ID 情報を上書きします。ファイルシステムのパスは、アクセスポイントのルートディレクトリとしてクライアントに公開されます。これにより、各アプリケーションは共有ファイルベースのデータセットにアクセスするときに、常に正しいオペレーティングシステム ID と正しいディレクトリを使用できます。アクセスポイントを使用するアプリケーションは、それ自体のディレクトリ以下のデータにのみアクセスできます。詳細については、「Amazon EFS アクセスポイントの使用」を参照してください。

マウントターゲットとタグは、ファイルシステムに関連付けられたサブリソースです。これらは、既存のファイルシステムのコンテキスト内でのみ作成できます。

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

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

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

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

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

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

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

ファイルシステムの作成などの Amazon EFS API リクエストには、有効な認証情報が必要です。さらに、リソースの作成またはアクセスのための権限も必要です。

AWS Identity and Access Management (IAM) で作成したユーザーとロールには、 リソースを作成またはアクセスするためのアクセス許可を付与する必要があります。権限の詳細については、「Amazon Elastic File System での Identity and access management」を参照してください。

NFS クライアントの IAM 認証は、Amazon EFS の追加のセキュリティオプションであり、IAM を使用して、大規模なネットワークファイルシステム (NFS) クライアントのアクセス管理を簡素化できます。NFS クライアントの IAM 認証では、IAM を使用して、固有のスケーラブルな方法で EFS ファイルシステムへのアクセスを管理できます。NFS クライアントの IAM 認証は、クラウド環境にも最適化されています。NFS クライアントの IAM 認証を使用する方法の詳細については、「IAM を使用してファイルシステムのデータアクセスを制御する」を参照してください。

Amazon EFS のデータ整合性

Amazon EFS は、アプリケーションが NFS に期待する close-to-open 整合性セマンティクスを提供します。

Amazon EFS では、以下の状況において、リージョンファイルシステムの書き込みオペレーションがアベイラビリティーゾーン間で永続的に保存されます。

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

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

アクセスパターンに応じて、Amazon EFS は close-to-open セマンティクスよりも強力な一貫性を保証できます。同期データアクセスを実行し、追加されていない書き込みを実行するアプリケーションは、データアクセスに read-after-write 一貫性があります。

ファイルロック

NFS クライアントアプリケーションでは、Amazon EFS ファイルの読み取り/書き込み操作に NFS バージョン 4 のファイルロック (バイト範囲ロックを含む) を使用できます。

Amazon EFS がファイルをロックする方法については、次の点に注意してください。

  • Amazon EFS はアドバイザリロックのみをサポートしており、読み取り/書き込みオペレーションでは実行前にロックの競合をチェックしません。例えば、アトミックオペレーションによるファイルの同期の問題を回避するには、アプリケーションが NFS セマンティクス ( close-to-open 整合性など) を認識している必要があります。

  • 1 つの特定のファイルが、接続されているすべてのインスタンスとそのファイルにアクセスしているユーザー全体で持つことのできるロックの数は、最大 512 個までです。

EFS ストレージクラス

Amazon EFS では、幅広いデータストレージのニーズに合わせて、さまざまなストレージクラスをご用意しています。標準ストレージクラスは、データが書き込まれる最初のストレージクラスであり、頻繁にアクセスされるデータ向けのものです。アクセス頻度の低いファイル用として、Amazon EFS は EFS 低頻度アクセス (IA) ストレージクラスと EFS アーカイブストレージクラスを提供しています。IA ストレージクラスは、四半期ごとに数回アクセスされるようなデータに対してコストが最適化されています。アーカイブストレージクラスは、1 年に数回しかアクセスされないデータに対してコストが最適化されています。Amazon EFS ストレージクラスの詳細については、「EFS ストレージクラス」を参照してください。

ライフサイクル管理

ファイルシステムをライフサイクルを通じてコスト効率の高い方法で保存するように管理するには、ライフサイクル管理を使用します。ライフサイクル管理は、ファイルシステムに定義されているライフサイクル設定に従って、ストレージクラス間でデータを自動的に移行します。ライフサイクル設定は、ファイルシステムデータを別のストレージクラスに移行するタイミングを定義する、一連のライフサイクルポリシーです。詳細については、「ファイルシステムのストレージの管理」を参照してください。

レプリケーション

レプリケーションを使用して、 AWS リージョン 任意の で Amazon EFS ファイルシステムのレプリカを作成できます。レプリケーションは、EFS ファイルシステム上のデータとメタデータを、 AWS リージョン 選択した で作成された新しいデスティネーション EFS ファイルシステムに自動的かつ透過的にレプリケートします。EFS は、送信元ファイルシステムと送信先ファイルシステムの同期を自動的に維持します。レプリケーションは継続的であり、分単位の目標復旧時点 (RPO) と目標復旧時間 (RTO) を実現するように設計されています。これらの機能は、コンプライアンスとビジネス継続性の目標を達成するのに役立ちます。詳細については、「ファイルシステムのレプリケート」を参照してください。