月曜日, 7月 14, 2025
月曜日, 7月 14, 2025
- Advertisment -
ホームニューステックニュース脱 SDK!? Mountpoint for Amazon S3 ではじめるオブジェクトストレージ活用 #AWS

脱 SDK!? Mountpoint for Amazon S3 ではじめるオブジェクトストレージ活用 #AWS



脱 SDK!? Mountpoint for Amazon S3 ではじめるオブジェクトストレージ活用 #AWS

こんにちは!
株式会社Fusicの砂本です。

本記事は、
2025 Japan AWS Jr. Champions Qiitaリレー夏
9日目の記事となります!

概要

AWS が 公式 OSS として公開する Mountpoint for Amazon S3 は、S3 バケットをにマウントし ほぼローカルディスクと同じ感覚で操作できる FUSE クライアントです。本稿では仕組み・導入手順・運用 Tips をまとめ、さらに AWS SDK/s5cmd/s3fs/FSx for Lustre との機能比較でを示します。(詳細な性能比較は別稿)

0. はじめに

S3 に直接 PUT するコードを書くのは大変。s3fs では性能が足りない。そこで登場するのが Mountpoint for Amazon S3(以下 Mountpoint)です。FUSE ベースで 多スレッド・プリフェッチ最適化 を備え、データ転送・分析・ETL やデータ移行で威力を発揮します。

1. Mountpoint for Amazon S3 の仕組み

image.png

  • SDKレス開発・ローカル感覚: AWS SDK を使わずに、file_put_contents() など プログラミング言語標準の機能でファイルをマウントディレクトリに置くだけで S3 に保存可能。既存スクリプトやツールチェーンを大幅に変えずに移行でき、開発コストと学習コストを削減。
  • ユーザー空間 FUSE: カーネル空間ではなくユーザー空間で動作し、S3 API を透過的に呼び出す。POSIX 完全互換ではないが、ls cp rm など基本操作は可能。
  • 整合性とチェックサム: Mountpoint⇔S3間のデータ転送の整合性はチェックサムで保証。 (*Mountpointの詳細なログに関しては別稿)

公式ドキュメント

2. 検証環境 & 前提条件

項目 内容
EC2 m6i.4xlarge (12.5 Gbps 帯域)
OS Amazon Linux 2023
S3 バケット ap-northeast-1 リージョン

ちなみにFargateは非対応です!
Fargate対応のissueはあるものの、roadmapには載ってないので対応される期待薄…

3. インストール & 初期設定

3.1 Mountpointの導入

curl -O https://s3.amazonaws.com/mountpoint-s3-release/latest/x86_64/mount-s3.rpm
sudo yum install -y ./mount-s3.rpm

IAM ロールは ListBucket, GetObject, PutObject, DeleteObject の最小権限を付与。

3.2 S3を/mnt/s3にマウント

sudo mkdir -p /mnt/s3
sudo mount-s3 my-bucket /mnt/s3 \
  --allow-overwrite --allow-delete \
  --write-part-size 128 --log-directory /var/log/mountpoint-s3

「write-part-size」で PUT リクエスト数を削減しコスト最適化可能。

4. fio での性能調査

bs=128k, iodepth=32, EC2 m6i.4xlarge で書き込み検証を行った。

並列数 (numjobs) 転送速度 (MB/s) IOPS 実行時間 (ms)
1 1,337 10,700 7,656
16 1,349 10,787 121,501
32 1,341 10,731 244,276
128 1,358 10,859 244,276

書き込み並列数を上げても安定した速度を出すことができ、従来のs3fsでは実現できなかった高速な書き込みがMointpointでは実現できた。

5. 基本〜応用の使い方

5.1 CRUD 操作

コマンド 成功 備考
ls, cat, cp, rm 一般的操作
mv,vi, 既存ファイル追記 (echo >>) オブジェクトの“上書き”は不可

5.2 ユースケース

  1. アプリログをそのまま S3 に配置
  2. ML で大量オブジェクトを高速読み取り
  3. アプリでの加工済みファイルを並列で S3 へ転送

6. ユースケース別ベストプラクティス

Montpointはマウントコマンド実行時にオプションを付加できます。
ユースケースごとに様々なオプションを利用できます。

ユースケース 推奨設定 解説
並列転送 --write-part-size 256MiB --num-parallel 16 PUT 数削減と帯域フル活用
ML 推論ログ集約 --prefetch 32MiB 読み取りスループット向上
再実行/Backfill --allow-overwrite --allow-delete 残骸自動クリーンアップ

7. 他サービス/ツール “特徴比較”

観点 Mountpoint for Amazon S3 AWS SDK (S3 PUT) s5cmd s3fs FSx for Lustre
タイプ FUSE ベースの高スループット“ファイルクライアント”(S3 をローカル FS としてマウント) プログラム API CLI 並列コピー FUSE ファイルシステム HPC 向け分散ファイルシステム
コード改修要否 原則不要 必要 不要 不要 不要
課金単位 S3 ストレージ & リクエスト課金のみ(Mountpoint 自体は OSS) 同左 同左 同左 GB-month のストレージ + MBps-month のスループット容量 + (任意)メタデータ IOPS・SSD キャッシュ
キャッシュ機構 読み取り時の リードアヘッドプリフェッチ オプションでキャッシュ SDK/アプリ実装に依存 なし OS ページキャッシュ + -o use_cache でローカルディスクを置きキャッシュ SSD 上のローカル OSS(BB)/高速バッファ + RAM メタデータキャッシュ
主ユースケース 読み取りが多い ML, データレイク ETL 等 アプリから直接 S3 大量バッチ転送 CI/検証、軽量レガシー互換 HPC、生成 AI、Media レンダリング
導入難易度 低(mount-s3 だけ) 中〜高(サブネット/スループット設計が必要)

8. まとめ

Mountpoint for Amazon S3 は「SDK 書き換え無し」「ほぼ POSIX」「高速」と三拍子揃った S3 クライアント。データ移行や分析パイプラインなど読み取り中心のバッチ処理にベストマッチです。一方、

  • 既存ファイルの上書き不可
  • 多ファイル同時書き込みは速度頭打ち
    など制約もあるため、書き込みヘビーや完全 POSIX が必須なら FSx for Lustre、バッチ転送だけなら s5cmd といった棲み分けが有効。ユースケースに応じて最適なストレージ/ツールを選択しましょう。

9. 参考資料





Source link

Views: 0

RELATED ARTICLES

返事を書く

あなたのコメントを入力してください。
ここにあなたの名前を入力してください

- Advertisment -