Amazon EFS: 仕組み - Amazon Elastic File System

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

Amazon EFS: 仕組み

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

概要

Amazon 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-utils ツール」を参照してください。

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

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

AWS リージョンAmazon EFS ファイルシステムを作成できる場所につのリストについては「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) レベルでのユーザー、グループ、アクセス許可の操作」を参照してください。

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

Amazon EFS が Amazon EC2 およびその他のサポートされているコンピューティングインスタンスと連携する仕組み

このセクションでは、標準および 1 ゾーンストレージクラスを使用する Amazon EFS ファイルシステムを、Amazon VPC の EC2 にマウントする方法を説明します。

スタンダードストレージクラスを持つ Amazon EFS

次の図は、AWS リージョン の複数のアベイラビリティーゾーンからの標準ストレージクラスで構成された Amazon EFS ファイルシステムにアクセスする複数の EC2 インスタンスを示しています。


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

この図では、Amazon Virtual Private Cloud (VPC) に 3 つのアベイラビリティーゾーンがあります。ファイルシステムは標準ストレージクラスを使用するため、各アベイラビリティーゾーンにマウントターゲットが作成されました。パフォーマンスとコストの観点から、同じアベイラビリティーゾーンのマウントターゲットからファイルシステムにアクセスすることをお勧めします。アベイラビリティーゾーンの 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 と 1 ゾーンストレージクラスを持つ Amazon EFS

次の図は、Amazon EFS ファイルシステムにアクセスしている複数の EC2 インスタンスを示しています。このファイルシステムは、AWS リージョン の複数のアベイラビリティーゾーンからの 1 ゾーンストレージで構成されます。


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

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

この例では、us-west-2c アベイラビリティーゾーンの EC2 インスタンスは、別のアベイラビリティーゾーンのマウントターゲットにアクセスするための EC2 データアクセス料金を支払います。このセットアップは、次のように機能します。

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

  2. 1 ゾーンストレージで Amazon EFS ファイルシステムを作成します。

  3. 各 Amazon EC2 インスタンスに接続し、インスタンスごとに同じマウントターゲットを使用して Amazon EFS ファイルシステムをマウントします。

AWS Direct ConnectとAWSが Amazon EFSマネージド 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) へのインバウンドトラフィックを許可するために、マウントターゲットセキュリティグループにルールを追加する必要があります。

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

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

  2. Amazon EFS ファイルシステムの作成

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

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

Amazon EFS とAWS Backupの連携方法

ファイルシステムの包括的なバックアップの実装では、Amazon EFS をAWS Backup と連携して使用できます。AWS Backup は、クラウドおよびオンプレミスの AWS サービス間でのデータバックアップの集中化と自動化を簡素化する完全マネージド型バックアップサービスです。AWS Backupを使用すると、バックアップポリシーを集中的に設定し、バックアップアクティビティを監視できます。また、AWSリソースの使用料金を見積もることもできます。Amazon EFS は常にバックアップオペレーションよりもファイルシステムオペレーションを優先します。AWS Backup を使用して 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

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

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

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

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

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

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

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

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

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

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

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

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

Amazon EFS のデータ整合性

Amazon EFS は close-to-open アプリケーションが NFS に求める整合性セマンティクス。

Amazon EFS では、書き込みオペレーションは、次のような場合に、スタンダードストレージクラスを使用して、ファイルシステム上のアベイラビリティーゾーン間で永続的に保存されます。

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

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

Amazon EFS は、アクセスパターンによっては、より強力な整合性をもたらします。 close-to-open セマンティクス。同期データアクセスを実行し、非追加書き込みを実行するアプリケーションは、 read-after-write データアクセスの整合性。

ストレージクラス

Amazon EFS では、さまざまなユースケースに合わせて設計された幅広いストレージクラスから選択できます。

  • EFS 標準 — 頻繁にアクセスされるデータのリージョナルストレージクラス。AWS リージョンの複数のアベイラビリティーゾーンにまたがってファイルシステムデータを冗長的に保存することで、最高レベルの可用性と耐久性を実現します。

  • EFS 標準低頻度アクセス (標準 IA) — アクセス頻度の低いデータのリージョナルストレージクラス。AWS リージョンの複数のアベイラビリティーゾーンにまたがってファイルシステムデータを冗長的に保存することで、最高レベルの可用性と耐久性を実現します。

  • EFS 1 ゾーン — 頻繁にアクセスされるファイルが、AWS リージョン の単一のアベイラビリティーゾーン内に冗長的に格納されている場合。

  • EFS1 ゾーン-IA (1 ゾーン-IA) — AWS リージョン の単一のアベイラビリティーゾーン内に冗長的に格納される、アクセス頻度の低いファイルの低コストのストレージクラス。

EFS 標準ストレージクラスは、AWS リージョン の複数の地理的に分離されたアベイラビリティーゾーンにまたがって、ファイルシステムデータとメタデータを冗長的に格納するリージョンストレージクラスです。これらは、最高レベルの可用性と耐久性を提供し、リージョン内の 1 つ以上のアベイラビリティーゾーンが利用できない場合でも、データの継続的な可用性を提供します。

EFS 1 ゾーンストレージクラスは低コストの単一アベイラビリティーゾーンストレージクラスです。ファイルシステムデータとメタデータは、AWS リージョン 内の単一のアベイラビリティーゾーンに冗長的に格納されます。

両方のIA ストレージクラスは、毎日アクセスされないファイルのストレージコストを削減します。完全なデータセットにすぐにアクセスできるようにし、アクセス頻度が低いファイルのストレージコストを自動的に削減する場合は、IA ストレージを使うことをお勧めします。例として、監査要件を満たすためにファイルをアクセス可能にしておくこと、履歴分析を実行すること、またはバックアップと回復を実行することなどがあります。Amazon EFS ストレージクラスの詳細については、「EFS ストレージクラス」を参照してください。

EFS ライフサイクルの管理

Amazon EFS のライフサイクル管理は、ファイルシステムの費用対効果の高いファイルストレージを自動的に管理します。有効にすると、ライフサイクル管理により、設定された期間アクセスされなかったファイルは、標準IA または 1 ゾーン-IA ストレージクラスに移行されます。その期間は、ライフサイクルポリシーを使用して定義します。詳細については、「Amazon EFS ライフサイクルの管理」を参照してください。

EFS Intelligent-Tiering

Amazon EFS Intelligent-Tiering は、ライフサイクル管理を使用してワークロードのアクセスパターンを監視し、対応する低頻度アクセス (IA) ストレージクラスとの間でファイルを自動的に移行します。Intelligent tiering では、30 日間など、一定期間アクセスされない標準ストレージクラス(EFS Standard または EFS 1 ゾーン)のファイルは、対応する低頻度アクセス(IA)ストレージクラスに移行されます。さらに、アクセスパターンが変更されると、EFS Intelligent Tiering はファイルを EFS 標準または EFS 1 ゾーンストレージクラスに自動的に戻します。これにより、一貫した低レイテンシーを提供しながら、無制限アクセス料金のリスクを排除できます。詳細については、「Amazon EFS インテリジェント階層化」を参照してください。

EFS レプリケーション

Amazon EFS ファイルシステムのレプリカは、AWS リージョンAmazon EFS レプリケーションを使用するお客様の好みの。有効にすると、Amazon EFS レプリケーションは、EFS ファイルシステム上のデータとメタデータを自動的かつ透過的にレプリケートし、AWS リージョン選択内容

Amazon EFS は、ソースと同期先ファイルシステムが自動的に同期先ファイルシステムを保持します。Amazon EFS のレプリケーションは継続的であり、分間の復旧時点 (RPO) および目標復旧時間 (RTO) を提供するように設計されています。これらの機能は、コンプライアンスとビジネス継続性の目標を達成するのに役立ちます。詳細については、Amazon EFS レプリケーションを参照してください。