Mountpoint の設定と使用 - Amazon Simple Storage Service

Mountpoint の設定と使用

Mountpoint for Amazon S3 を使用するには、汎用パケットまたはマウントするバケットへのアクセス権を持つ有効な AWS 認証情報がホストに必要です。さまざまな認証方法については、GitHub の「Mountpoint AWS 認証情報」を参照してください。

たとえば、新しい AWS Identity and Access Management (IAM) ユーザーとロールをこの目的を作成できます。このロールに、マウントしたい 1 つまたは複数のバケットへのアクセス権があることを確認してください。インスタンスプロファイルを使って、IAM ロールを Amazon EC2 インスタンスに渡すことができます。

Mountpoint for Amazon S3 の使用

Mountpoint for Amazon S3 を使用して次の操作を行います。

  1. mount-s3 コマンドを使用して汎用バケットをマウントします。

    次の例では、amzn-s3-demo-bucket を S3 汎用バケットの名前に置き換え、~/mnt を S3 バケットをマウントするホスト上のディレクトリに置き換えます。

    mkdir ~/mnt mount-s3 amzn-s3-demo-bucket ~/mnt

    デフォルトでは Mountpoint クライアントがバックグラウンドで実行されるため、~/mnt ディレクトリから S3 バケット内のオブジェクトにアクセスできるようになりました。

  2. Mountpoint を通じて汎用バケット内のオブジェクトにアクセスします。

    バケットをローカルにマウントしたら、cat や ls などの一般的な Linux コマンドして、S3 オブジェクトを操作することができます。Amazon S3 の Mountpoint は、S3 バケット内のキーをフォワードスラッシュ (/) 文字で分割することでファイルシステムパスとして解釈します。たとえば、Data/2023-01-01.csv バケットにオブジェクトキーがある場合、Mountpoint ファイルに Data という名前のディレクトリがあり、その中には 2023-01-01.csv という名前のファイルがあります。

    Mountpoint for Amazon S3 は、ファイルシステムに意図的に完全な POSIX 標準仕様を実装していません。Mountpoint は、ファイルシステムインターフェイスを通じて Amazon S3 に保存されているデータへの高スループットの読み取り/書き込みアクセスを必要しながらも、それ以外はファイルシステム機能に依存しないワークロード向けに最適化されています。詳細については、GitHub の「Mountpoint for Amazon S3 ファイルシステムの動作」を参照してください。より豊富なファイルシステムセマンティクスを必要とするお客様は、他の AWS ファイルサービス (例: Amazon Elastic File System (Amazon EFS) または Amazon FSx) などを検討してください。

  3. umount コマンドを使用してバケットをアンマウントします。このコマンドは S3 バケットをアンマウントし、マウントポイントを終了します。

    以下のコマンド例を使用するには、~/mnt を S3 バケットがマウントされているホスト上のディレクトリに置き換えます。

    umount ~/mnt
    注記

    このコマンドのオプションのリストを取得するには、umount --help を実行します。

マウントポイント設定の詳細については、GitHub の「S3 バケット設定、およびファイルシステムの設定」を参照してください。

Mountpoint でのキャッシュの設定

Mountpoint for Amazon S3 は、さまざまなタイプのデータキャッシュをサポートしています。繰り返しの読み取りリクエストを高速化するには、以下にオプトインできます。

  • ローカルキャッシュ – Amazon EC2 インスタンスストレージまたは Amazon Elastic Block Store ボリュームでローカルキャッシュを使用できます。同じコンピューティングインスタンスから同じデータを繰り返し読み取り、繰り返し読み取るデータセット用のローカルインスタンスストレージに未使用のスペースがある場合は、ローカルキャッシュにオプトインします。

  • 共有キャッシュ – S3 Express One Zone で共有キャッシュを使用できます。複数のコンピューティングインスタンスから小さなオブジェクトを繰り返し読み取る場合、または繰り返し読み取るデータセットのサイズが不明で、キャッシュサイズの伸縮性を活用する場合は、共有キャッシュにオプトインします。オプトインすると、Mountpoint は、S3 Express One Zone を使用するディレクトリバケットに最大 1 メガバイトのサイズのオブジェクトを保持します。

  • ローカルキャッシュと共有キャッシュの組み合わせ — ローカルキャッシュに未使用のスペースがあるが、複数のインスタンス間で共有キャッシュも必要な場合は、ローカルキャッシュと共有キャッシュの両方にオプトインできます。

Mountpoint でのキャッシュは、複数の読み取り中に変更されない同じデータを繰り返し読み取るユースケースに最適です。たとえば、モデルの精度を向上させるためにトレーニングデータセットを複数回読み取る必要がある機械学習トレーニングジョブでキャッシュを使用できます。

Mountpoint でキャッシュを設定する方法の詳細については、以下の例を参照してください。

ローカルキャッシュ

--cache CACHE_PATH フラグを使用してローカルキャッシュにオプトインできます。次の例の、CACHE_PATH は、データをキャッシュするディレクトリへのファイルパスに置き換えます。amzn-s3-demo-bucket は S3 バケット名に置き換え、~/mnt を S3 バケットをマウントするホスト上のディレクトリに置き換えます。

mkdir ~/mnt mount-s3 --cache CACHE_PATH amzn-s3-demo-bucket ~/mnt

S3 バケットをマウントするときにローカルキャッシュにオプトインすると、Mountpoint は設定されたキャッシュの場所に空のサブディレクトリを作成します (そのサブディレクトリがまだ存在しない場合)。最初にバケットをマウントするときと、マウントを解除するときに、Mountpoint はローカルキャッシュのコンテンツを削除します。

重要

ローカルキャッシュを有効にすると、Mountpoint は、マウントした S3 バケットの暗号化されていないオブジェクトのコンテンツを、マウント時に指定したローカルキャッシュの場所に保持します。データを保護するには、ファイルシステムのアクセスコントロールメカニズムを使用して、データキャッシュの場所へのアクセスを制限する必要があります。

共有キャッシュ

複数のコンピューティングインスタンスから小さなオブジェクト (最大 1 MB) を繰り返し読み取る場合、または繰り返し読み取るデータセットのサイズがローカルキャッシュのサイズを頻繁に超える場合は、S3 Express One Zone の共有キャッシュを使用する必要があります。複数のインスタンスから同じデータを繰り返し読み取る場合、マウントした S3 バケットへの冗長なリクエストを回避することで、レイテンシーが向上します。

共有キャッシュにオプトインすると、S3 Express One Zone のディレクトリバケットにキャッシュされたデータに対して料金が発生します。また、S3 Express One Zone のディレクトリバケットのデータに対して行ったリクエストに対しても料金が発生します。詳細については、「Amazon S3 の料金」を参照してください。Mountpoint は、ディレクトリバケットからキャッシュされたオブジェクトを削除することはありません。ストレージコストを管理するには、指定した期間後に S3 Express One Zone にキャッシュされたデータの有効期限が切れるように、ディレクトリバケットにライフサイクルポリシーを設定する必要があります。詳細については、GitHub で Mountpoint for Amazon S3 のキャッシュ設定に関する情報を参照してください。

コンピューティングインスタンスに汎用バケットをマウントするときに S3 Express One Zone のキャッシュにオプトインするには、--cache-xz フラグを使用して、キャッシュの場所としてディレクトリバケットを指定します。次の例で、ユーザー入力プレースホルダーを置き換えます。

mount-s3 amzn-s3-demo-bucket ~/mnt --cache-xz amzn-s3-demo-bucket--usw2-az1--x-s3

ローカルキャッシュと共有キャッシュの組み合わせ

インスタンスに未使用のスペースがあるが、複数のインスタンスで共有キャッシュも使用する場合は、ローカルキャッシュと共有キャッシュの両方にオプトインできます。このキャッシュ設定では、必要なデータをローカルストレージにキャッシュするときに、同じインスタンスからディレクトリバケットの共有キャッシュへの冗長な読み取りリクエストを回避できます。これにより、リクエストのコストを削減し、パフォーマンスを改善できます。

S3 バケットをマウントするときにローカルキャッシュと共有キャッシュの両方にオプトインするには、--cache フラグと --cache-xz フラグを使用して両方のキャッシュの場所を指定します。次の例を使用してローカルキャッシュと共有キャッシュの両方にオプトインするには、ユーザー入力プレースホルダーを置き換えます。

mount -s3 amzn-s3-demo-bucket ~/mnt --cache /path/to/mountpoint/cache --cache -xz amzn-s3-demo-bucket--usw2-az1--x-s3

詳細については、GitHub で Mountpoint for Amazon S3 のキャッシュ設定に関する情報を参照してください。

重要

共有キャッシュを有効にすると、Mountpoint は、マウントされた S3 バケットのオブジェクトコンテンツを、共有キャッシュの場所として指定した S3 ディレクトリバケットにコピーし、S3 ディレクトリバケットにアクセスできる任意の発信者がアクセスできるようにします。キャッシュされたデータを保護するには、Amazon S3 のセキュリティのベストプラクティス に従って、バケットが正しいポリシーを使用していること、およびパブリックにアクセスできないことを確認する必要があります。Mountpoint 共有キャッシュ専用のディレクトリバケットを使用し、Mountpoint クライアントにのみアクセスを許可する必要があります。