Mountpoint の設定と使用
Mountpoint for Amazon S3 を使用するには、マウントする Amazon S3 バケットにアクセスできる有効な AWS 認証情報がホストに必要です。さまざまな認証方法については、GitHub の「Mountpoint AWS 認証情報
たとえば、新しい AWS Identity and Access Management (IAM) ユーザーとロールをこの目的を作成できます。このロールに、マウントしたい 1 つまたは複数のバケットへのアクセス権があることを確認してください。インスタンスプロファイルを使って、IAM ロールを Amazon EC2 インスタンスに渡すことができます。
Mountpoint for Amazon S3 の使用
Mountpoint for Amazon S3 を使用して次の操作を行います。
-
Amazon S3 バケットをマウントします。
-
mount-s3
コマンドを使用して、Amazon S3 バケットを手動でマウントできます。以下の例では、
を S3 バケットの名前に置き換え、amzn-s3-demo-bucket
を S3 バケットをマウントしたいホスト上のディレクトリに置き換えます。~/mnt
mkdir
~/mnt
mount-s3amzn-s3-demo-bucket
~/mnt
デフォルトでは Mountpoint クライアントがバックグラウンドで実行されるため、
ディレクトリから Amazon S3 バケット内のオブジェクトにアクセスできるようになりました。~/mnt
-
または、インスタンスの起動時または再起動時に Amazon S3 バケットを自動的にマウントするように設定することもできます。
既存または実行中の Amazon EC2 インスタンスの場合は、Linux システムの
/etc/fstab
ディレクトリでfstab
ファイルを見つけます。次に、fstab
ファイルに 1 行追加します。例えば、プレフィックスexample-prefix/
を使用してamzn-s3-demo-bucket
をシステムパス/mnt/mountpoint
にマウントするには、以下を参照してください。次の例を使用する際は、ユーザー入力用プレースホルダー
を独自の情報に置き換えます。s3://
/amzn-s3-demo-bucket
example-prefix
//mnt/mountpoint
mount-s3 _netdev,nosuid,nodev,nofail,rw 0 0この例で使用されているオプションの説明については、次の表を参照してください。
オプション 説明 _netdev
ファイルシステムのマウントにネットワーク接続が必要であることを指定します。
nosuid
ファイルシステムに設定されたユーザー ID ファイルを含めることができないことを指定します。
nodev
ファイルシステムに特別デバイスを含めることができないことを指定します。
nofail
ファイルシステムのマウントに失敗しても、システムの起動を許可することを指定します。
rw
マウントポイントが読み取りおよび書き込みアクセス許可で作成されることを指定します。読み取り専用の場合は
ro
を使用します。新しい Amazon EC2 インスタンスの場合、Amazon EC2 テンプレートのユーザーデータを変更し、
fstab
ファイルを次のように設定できます。次の例を使用する際は、ユーザー入力用プレースホルダー
を独自の情報に置き換えます。#!/bin/bash -e MP_RPM=$(mktemp --suffix=.rpm) curl https://s3.amazonaws.com/mountpoint-s3-release/latest/x86_64/mount-s3.rpm > $MP_RPM yum install -y $MP_RPM rm $MP_RPM MNT_PATH=/mnt/mountpoint echo "s3://
/ ${MNT_PATH} mount-s3 _netdev,nosuid,nodev,rw,allow-other,nofail" >> /etc/fstab mkdir $MNT_PATH systemctl daemon-reload mount -aamzn-s3-demo-bucket
-
-
Mountpoint を通じて Amazon S3 バケット内のオブジェクトにアクセスします。
バケットをローカルにマウントしたら、
cat
やls
などの一般的な Linux コマンドして、S3 オブジェクトを操作することができます。Mountpoint for Amazon S3 は、Amazon 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
コマンドを使用して Amazon S3 バケットをアンマウントします。このコマンドは S3 バケットをアンマウントし、マウントポイントを終了します。以下のコマンド例を使用するには、
を S3 バケットがマウントされているホスト上のディレクトリに置き換えます。~/mnt
umount
~/mnt
注記
このコマンドのオプションのリストを取得するには、
umount --help
を実行します。
マウントポイント設定の詳細については、GitHub の「Amazon S3 bucket configuration
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
は Amazon S3 バケット名に置き換え、amzn-s3-demo-bucket
を S3 バケットをマウントするホスト上のディレクトリに置き換えます。~/mnt
mkdir
~/mnt
mount-s3 --cacheCACHE_PATH
amzn-s3-demo-bucket
~/mnt
Amazon S3 バケットをマウントするときにローカルキャッシュにオプトインすると、Mountpoint は設定されたキャッシュの場所に空のサブディレクトリを作成します (そのサブディレクトリがまだ存在しない場合)。最初にバケットをマウントするときと、マウントを解除するときに、Mountpoint はローカルキャッシュのコンテンツを削除します。
重要
ローカルキャッシュを有効にすると、Mountpoint は、マウントした Amazon S3 バケットの暗号化されていないオブジェクトのコンテンツを、マウント時に指定したローカルキャッシュの場所に保持します。データを保護するには、ファイルシステムのアクセスコントロールメカニズムを使用して、データキャッシュの場所へのアクセスを制限する必要があります。
共有キャッシュ
複数のコンピューティングインスタンスから小さなオブジェクト (最大 1 MB) を繰り返し読み取る場合、または繰り返し読み取るデータセットのサイズがローカルキャッシュのサイズを頻繁に超える場合は、S3 Express One Zone
共有キャッシュにオプトインすると、S3 Express One Zone のディレクトリバケットにキャッシュされたデータに対して料金が発生します。また、S3 Express One Zone のディレクトリバケットのデータに対して行ったリクエストに対しても料金が発生します。詳細については、「Amazon S3 の料金
コンピューティングインスタンスに 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
ローカルキャッシュと共有キャッシュの組み合わせ
インスタンスに未使用のスペースがあるが、複数のインスタンスで共有キャッシュも使用する場合は、ローカルキャッシュと共有キャッシュの両方にオプトインできます。このキャッシュ設定では、必要なデータをローカルストレージにキャッシュするときに、同じインスタンスからディレクトリバケットの共有キャッシュへの冗長な読み取りリクエストを回避できます。これにより、リクエストのコストを削減し、パフォーマンスを改善できます。
Amazon 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 は、マウントされた Amazon S3 バケットのオブジェクトコンテンツを、共有キャッシュの場所として指定した S3 ディレクトリバケットにコピーし、S3 ディレクトリバケットにアクセスできる任意の発信者がアクセスできるようにします。キャッシュされたデータを保護するには、Amazon S3 のセキュリティのベストプラクティス に従って、バケットが正しいポリシーを使用していること、およびパブリックにアクセスできないことを確認する必要があります。Mountpoint 共有キャッシュ専用のディレクトリバケットを使用し、Mountpoint クライアントにのみアクセスを許可する必要があります。