記事検索

検索ワードを入力してください。
Sky Tech Blog
MinIOの​代替と​して​RustFSを​試してみた

MinIOの​代替と​して​RustFSを​試してみた

弊社ではこれまで、S3 APIの動作検証にMinIOを利用していましたが、Dockerイメージのサポート終了に伴い代替を検討。本記事では、選定理由、注意点、導入手順について、Rust製のS3互換ストレージ「RustFS」を実際に検証した内容をまとめます。

はじめに

弊社はAWSを基盤としたクラウドサービスを提供しており、ローカル開発環境上でS3 API動作検証(エミュレーション)を容易に行うため、これまでMinIOを利用していました。

MinIOは、Amazon S3と互換性のあるオブジェクトストレージをローカル環境で簡単に構築できるOSSです。
弊社では、クラウドサービス開発時のS3 API動作検証にMinIOを活用していました。

しかし、MinIOのDockerイメージのサポート終了に伴い、ローカル開発環境(Docker)でAmazon S3互換ストレージの代替が必要となりました。

そこで、Rust製S3互換ストレージ「RustFS」を実際に検証した内容について、選定理由・注意点・導入手順をまとめます。

選定理由

  • S3互換APIをサポートしている
  • Docker Composeで簡単にセットアップできる
  • 管理コンソールに対応している
  • データ永続化がDockerボリュームで可能

これらの条件を満していたため、RustFSを試してみました。

注意点

  • RustFSは2026年1月時点でα版です。
    公式に「本番環境では使用しないでください」と明記されています
  • RustFSは日本語の情報がまだ少ないです
  • MinIOとは異なり、RustFSがサポートしているS3互換APIは基本的な操作に限定されています
    • MinIOは完全なS3互換APIを提供しています
    • RustFSはマルチパートアップロードなどは非対応です。RustFSの導入検証時には特に問題はありませんでしたが…
  • IAM設定エクスポートを行うと、ユーザーのパスワードが平文で含まれます

RustFSは開発中のプロダクトのため注意すべき点が多いですが、S3 API動作検証の用途では問題ないと判断したため、導入検証を行いました。

導入手順

1. docker-compose.ymlで​RustFSを​起動

services:
  s3:
    image: rustfs/rustfs:latest
    container_name: test-rustfs
    ports:
      - "9000:9000" # S3 API用ポート
      - "9001:9001" # 管理コンソール用ポート
    volumes:
      - ./s3/data:/data
    command: >
      --address 0.0.0.0:9000
      --console-enable
      --access-key rustfs-access
      --secret-key rustfs-secret
      /data
    restart: unless-stopped
    networks:
      - n_s3
networks:
  n_s3:
    driver: bridge
  • イメージタグはlatestを使用していますが、バージョン指定を推奨します。
  • access-key/secret-keyはスクリプトに直接書き込まず、外部定義(例:.envファイル等)を利用することを推奨します。

起動コマンド例:

docker compose up -d

2. 管理コンソールから​バケット作成

  1. ブラウザで http://localhost:9001 にアクセスします
  2. ログイン画面でRustFSのaccess-key/secret-keyを入力します
  3. バケットを作成します

RustFSの​管理コンソールの​ログイン画面キャプチャ

(RustFSの管理コンソールのスクリーンショット画像)

  • 管理コンソールからバケット・フォルダ・ファイルの登録や編集が可能です
  • データは ./s3/data 内に保存され、再起動後も保持されます
  • ./s3/data/.rustfs.sys はRustFSのメタデータ管理用ディレクトリです

RustFSの​バケット一覧と​フォルダの​キャプチャ

(RustFSの管理コンソールのスクリーンショット画像)

3. AWS CLIで​接続テスト

  1. C:\Users<ユーザー名>.aws\credentials に以下を記載します
[default]
aws_access_key_id=rustfs-access
aws_secret_access_key=rustfs-secret
  1. 疎通確認(バケット一覧表示)
aws --endpoint-url http://127.0.0.1:9000 s3api list-buckets

まとめ

Docker環境があれば、上記手順でRustFSを簡単に導入できます。

RustFSはα版ですが、S3の検証用途(S3エミュレーション)には十分利用可能でした。

今後、問題がなければMinIOの代替としてRustFSを継続利用したいと考えています。

追記

  • MinIOとは異なり、RustFSがサポートしているS3互換APIは基本的な操作に限定されています
    • MinIOは完全なS3互換APIを提供しています
    • RustFSはマルチパートアップロードなどは非対応です

導入検証の際は特に問題ありませんでしたが、最近、弊社クラウドサービスにS3のマルチパートアップロードを利用する機能が追加されました。

この機能は大容量ファイルのアップロード時のみ使用されるため、通常の検証では問題ありませんが、大容量ファイルのアップロードに関する検証はAWS上で実施する必要があります。

また、最近、脆弱性(https://nvd.nist.gov/vuln/detail/CVE-2025-68926)が公開されました(※ 1.0.0-alpha.78 で対処済み)。

RustFSはまだα版です。ご使用の際はご注意ください。


\シェアをお願いします!/
  • X
  • Facebook
  • LINE
キャリア採用募集中!

入社後にスキルアップを目指す若手の方も、ご自身の経験を幅広いフィールドで生かしたいベテランの方も、お一人おひとりの経験に応じたキャリア採用を行っています。

Sky株式会社のソフトウェア開発や製品、採用に関するお問い合わせについては、下記のリンクをご確認ください。
お問い合わせ
ホーム