こんにちは、受託コンサルティングチームの hosor です。
Mountpoint for Amazon S3 は、Amazon S3 バケットを、Linux 上のディレクトリのように扱うことができるツールです。
通常、S3 とのファイルのやり取りは AWS CLI などの専用コマンド等を使う必要がありますが、Mountpoint を使えば、ls, cp, mv といった普段使っている Linux コマンドで S3 上のファイルを直接読み書きできるようになります。
本記事では、Mountpoint のインストールと簡単な使い方を紹介していきます。

解析環境
- Ubuntu 22.04.5 LTS
- mount-s3 v1.20.0
インストール
※ どのディストリビューションかは cat /etc/os-release で、どの CPU アーキテクチャかは uname -m でご確認ください。
RPM ベースのディストリビューション (Amazon Linux、Fedora、CentOS、RHEL)
Mountpoint for Amazon S3 パッケージをダウンロードします。
# x86_64 の場合 wget https://s3.amazonaws.com/mountpoint-s3-release/latest/x86_64/mount-s3.rpm # ARM64 (Graviton) の場合 wget https://s3.amazonaws.com/mountpoint-s3-release/latest/arm64/mount-s3.rpm
パッケージをインストールします。
sudo yum install ./mount-s3.rpm
バージョンを表示し、Mountpoint が正常にインストールされていることを確認します。
mount-s3 --version
DEB ベースのディストリビューション (Debian、Ubuntu)
Mountpoint for Amazon S3 パッケージをダウンロードします。
# x86_64 の場合 wget https://s3.amazonaws.com/mountpoint-s3-release/latest/x86_64/mount-s3.deb # ARM64 (Graviton) の場合 wget https://s3.amazonaws.com/mountpoint-s3-release/latest/arm64/mount-s3.deb
パッケージをインストールします。
sudo apt-get install ./mount-s3.deb
バージョンを表示し、Mountpoint が正常にインストールされていることを確認します。
mount-s3 --version
使い方
※ Mountpoint を使用するには、マウントする S3 バケットにアクセスできる有効な AWS 認証情報が必要です。
マウント用の空フォルダの作成
まず、S3 バケットをマウントするための空のフォルダを作成します。
ここでは例として mount_test という名前のフォルダを作ります。
mkdir mount_test
S3 バケットをマウント
S3 バケットを、先ほど作成したフォルダにマウントします。
mount-s3 <バケット名> <マウント先のフォルダパス>
例えば、my-data-bucket という名前の S3 バケットを mount_test フォルダにマウントする場合は、以下のようになります。
mount-s3 my-data-bucket mount_test
動作確認
マウントが成功したか確認してみましょう。
ls コマンドにより、S3 バケットに入っているファイルやフォルダの一覧が表示されます。
ls mount_test
ローカルファイルをS3にコピー (アップロード) したり、S3 上のファイルを読み取ったりできます。
# ローカルにある sample.txt をS3にコピー cp sample.txt mount_test # S3 上の a.log の内容を表示 cat mount_test/a.log
ファイルの削除と上書き
Mountpoint は、デフォルトの状態では既存のファイルの削除や上書きはできません。
これは、誤操作によって S3 上の重要なデータを意図せず失ってしまうことを防ぐための安全設計です。
ファイルの削除や上書きを行いたい場合は、マウント時に明示的にオプションを指定する必要があります。
ファイルの削除を許可 (--allow-delete)
S3 バケット上のファイルを rm コマンドなどで削除できるようにするには、--allow-delete オプションを追加します。
mount-s3 --allow-delete <バケット名> <マウント先のフォルダパス>
使用例:
# 削除を許可してマウント mount-s3 --allow-delete my-data-bucket mount_test # マウントしたディレクトリ内のファイルを削除 rm mount_test/old_log.txt
ファイルの上書きを許可 (--allow-overwrite)
既存のファイルに対して、リダイレクト (>) や cp コマンドなどで内容を書き換えられるようにするには、--allow-overwrite オプションを追加します。
mount-s3 --allow-overwrite <バケット名> <マウント先のフォルダパス>
使用例:
# 上書きを許可してマウント mount-s3 --allow-overwrite my-data-bucket mount_test # 既存のファイルに新しい内容を上書き echo "new content" > mount_test/existing_file.txt # 別のファイルの内容で上書き cp new_version.txt mount_test/existing_file.txt
削除と上書きの両方を許可
削除と上書きの両方を許可したい場合は、両方のオプションを同時に指定します。
mount-s3 --allow-delete --allow-overwrite my-data-bucket mount_test
アンマウント
使い終わったら、マウントを解除 (アンマウント) します。
umount mount_test
これで、mount_test フォルダはただの空のフォルダに戻ります。
まとめ
Mountpoint for Amazon S3 を使うことで S3 バケットを Linux のディレクトリとしてマウントすることができ、Linux コマンドで S3 上のファイルを直接操作することが可能になります。
ファイルの削除や上書きにはマウント時にオプション指定が必要ですが、S3 を簡単に操作することができますので、是非お使いください。
解析環境でお困りごとがございましたら、アメリエフにお声がけください!