【AWS】Linux コマンドで S3 を直接操作!Mountpoint for Amazon S3 の使い方

こんにちは、受託コンサルティングチームの 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 を簡単に操作することができますので、是非お使いください。

解析環境でお困りごとがございましたら、アメリエフにお声がけください!