Mountpoint for Amazon S3 を使用するには、ホストに AWS マウントしたい 1 つまたは複数のバケットにアクセスできる認証情報が必要です。さまざまな認証方法については、GitHub の「Mountpoint AWS 認証情報
たとえば、新しい AWS Identity and Access Management (IAM) ユーザーとロールをこの目的を作成できます。このロールに、マウントしたい 1 つまたは複数のバケットへのアクセス権があることを確認してください。インスタンスプロファイルを使って、IAM ロールを Amazon EC2 インスタンスに渡すことができます。
Mountpoint for Amazon S3 の使用
Mountpoint for Amazon S3 を使用して次の操作を行います。
-
mount-s3
コマンドを使用してバケットをマウントします。以下の例では、
を S3 バケットの名前に置き換え、amzn-s3-demo-bucket
を S3 バケットをマウントしたいホスト上のディレクトリに置き換えます。~/mnt
mkdir
~/mnt
mount-s3amzn-s3-demo-bucket
~/mnt
デフォルトでは Mountpoint クライアントがバックグラウンドで実行されるため、
ディレクトリから S3 バケット内のオブジェクトにアクセスできるようになりました。~/mnt
-
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 ) などを検討してください。 -
umount
コマンドを使用してバケットをアンマウントします。このコマンドは S3 バケットをアンマウントし、マウントポイントを終了します。以下のコマンド例を使用するには、
を S3 バケットがマウントされているホスト上のディレクトリに置き換えます。~/mnt
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
は S3 バケット名に置き換え、amzn-s3-demo-bucket
を S3 バケットをマウントするホスト上のディレクトリに置き換えます。~/mnt
mkdir
~/mnt
mount-s3 --cacheCACHE_PATH
amzn-s3-demo-bucket
~/mnt
S3 バケットをマウントするときにローカルキャッシュにオプトインすると、Mountpoint は設定されたキャッシュの場所に空のサブディレクトリを作成します (そのサブディレクトリがまだ存在しない場合)。最初にバケットをマウントするときと、マウントを解除するときに、Mountpoint はローカルキャッシュのコンテンツを削除します。
重要
ローカルキャッシュを有効にすると、Mountpoint は、マウントした S3 バケットの暗号化されていないオブジェクトのコンテンツを、マウント時に指定したローカルキャッシュの場所に保持します。データを保護するには、ファイルシステムのアクセスコントロールメカニズムを使用して、データキャッシュの場所へのアクセスを制限する必要があります。
共有キャッシュ
複数のコンピューティングインスタンスから小さなオブジェクト (最大 1 MB) を繰り返し読み取る場合、または繰り返し読み取るデータセットのサイズがローカルキャッシュのサイズを頻繁に超える場合は、S3 Express One Zone
共有キャッシュにオプトインすると、S3 Express One Zone のディレクトリバケットにキャッシュされたデータに対して料金が発生します。また、S3 Express One Zone のディレクトリバケットのデータに対して行ったリクエストに対しても料金が発生します。詳細については、「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 クライアントにのみアクセスを許可する必要があります。