MinIO のシングルノードローカルS3代替案
Alternatives to MinIO for single-node local S3 (rmoff.net)
要約
MinIO が開発終了したことを受け、ローカル開発環境で S3 互換ストレージをエミュレートするための代替案が検討されています。記事では、Docker イメージがあり、S3 互換性、無料利用、シンプルなシングルノードデプロイ、アクティブなコミュニティを持つ S3Proxy、RustFS、SeaweedFS、Zenko CloudServer、Garage といった選択肢が評価されています。
全文翻訳
シングルノードローカルS3のためのMinIOの代替案
MinIOの代替となる様々な選択肢と、MinIOを置き換える際の容易さについて探ってみましょう。
上記のプロジェクトを、MinIOの置き換えとして最小限の変更で実装しようと試みました。MinIO S3クライアントであるmcはそのまま残しています。これは、MinIOを完全に削除したい場合に置き換えるのが容易だからです(s3cmd、aws CLIなど)。
S3Proxy 🔗
テストバージョン: 3.0.0
-
✅ Dockerイメージ (5M+プル)
-
✅ ライセンス: Apache 2.0
-
✅ S3互換性
設定の容易さ: 👍👍
実装は非常に簡単で、軽量なオプションとして良さそうです。
| 気づいた点として、S3Proxyが使用しているプロジェクトの一つであるjcloudsが2025年半ばにApache Attic(つまり引退)に移管されたことが挙げられます。ただし、ローカルストレージのみを使用している場合は問題ないでしょう。 |
RustFS 🔗
テストバージョン: 1.0.0-alpha.79
設定の容易さ: ✅✅
-
✅ Dockerイメージ (100k+プル)
-
✅ ライセンス: Apache 2.0
-
✅ S3互換性
| 最近、RustFSでかなり深刻なセキュリティ脆弱性が見つかったことに注意してください。これにより、一部のユーザーは使用を避けています。ウェブサイトは洗練されていますが、いくつかのリンクが同じページに解決するため、新しいプロジェクトの「ペンキ塗りたて」のような印象を与えます。デモ用であれば、置き換えが容易なため、これはあまり問題にならないかもしれません。また、プロジェクトは現在アルファリリースのみであることにも注意してください。 |
[画像: rustfs.excalidraw]
RustFSにはGUIも含まれています。
[画像: rustfs gui]
SeaweedFS 🔗
テストバージョン: 4.06
-
✅ Dockerイメージ (5M+プル)
-
✅ ライセンス: Apache 2.0
-
✅ S3互換性
設定の容易さ: 👍
[画像: seaweedfs.excalidraw]
このクイックスタートは、最小限のS3機能を取得するのに役立ちます。(とはいえ、実装はClaudeに手伝ってもらいました…)。全体として、ここではあまり変更する必要はありません。Dockerイメージの置き換えは比較的簡単ですが、認証には独自の構成ファイルが必要です(Garageと同様に、Docker Composeにインライン化しました)。
編集: このブログ記事を投稿した直後に、プロジェクト側からこの追加要件を削除する予定であるとの返信がありました。これにより、さらに使いやすくなるでしょう。素晴らしいですね!:)
SeaweedFSには独自の基本的なUIが付属しており、便利です。
[画像: seaweedfs ui]
SeaweedFSのウェブサイトは驚くほど簡素で、一見するとOSSプロジェクトであることを見落としがちです。「価格」オプションがあり、フロントページのタイトルが「SeaweedFS Enterprise」となっているためです(見つけられるGitHubリンクもありませんでした!)。しかし、これはOSSプロジェクトであり、長年確立されたものです。SeaweedFSは、2018年の0.91リリース以来S3サポートを提供しています。これらのスライドや、MinIOとの比較表からも、SeaweedFSについてさらに学ぶことができます。
Zenko CloudServer 🔗
テストバージョン: 9.2.8
-
✅ Dockerイメージ (また、Docker Hubには5M+プルを持つ古いものもあります)
-
✅ ライセンス: Apache 2.0
-
✅ S3互換性
設定の容易さ: 👍
[画像: cloudserver.excalidraw]
以前はS3 Serverとして知られていたCloudServerは、Scalityが公開しているZenkoというツールセットの一部です。MinIOを pretty easily に置き換えることができますが、名前のセット(cloudserver/zenko/scality)と実際に実行する必要のあるソフトウェアを切り分けるのに最初は少し戸惑いました。また、ドキュメントのリンクが古いDockerイメージを指しているという少し奇妙な点もあります。
Garage 🔗
設定の容易さ: 😵
テストバージョン: 1.0.0
-
✅ Dockerイメージ (1M+プル)
-
✅ ライセンス: AGPL
-
✅ S3互換性
この件は友人に助けてもらう必要がありました。garageコンテナに加えて、初期設定を行うための別のコンテナとTOML設定ファイルが必要でした。簡潔にするために、これらはDocker Composeにインライン化しました。
[画像: garage.excalidraw]
自分で座ってRTFM(Read The F***ing Manual)して理解できたでしょうか?はい。私の時間の使い道として、もっと良いことはあるでしょうか?それも、はい。
したがって、Garageは機能しますが、コードの変更という点では単なるドロップインリプレイスメントではありません。初期化のために異なる配線が必要であり、それは簡単ではありません。簡単な例として、「指定されたキーIDは有効なGarageキーIDではありません(GKで始まり、12バイトの16進数エンコードされたバイトが続きます)」。本番環境の衛生管理には優れていますが、ローカルデモには過剰であり、実際にはある程度の障害となります。
| これは完全に公平な評価でしょうか?もし私がそれをそれ自体で新しい技術として見ていたなら、全くそうではありません!特に分散実行をサポートできる多くの優れた技術は、設定に急な学習曲線があります。しかし、私の要件はMinIOの簡単なドロップインリプレイスメントであり、Garageはそうではありません。 |
Apache Ozone 🔗
テストバージョン: 2.1.0
-
✅ Dockerイメージ (1M+プル)
-
✅ ライセンス: Apache 2.0
-
✅ S3互換性
Ozoneは、2015年にHDFSプロジェクトの一部として最初に作成された後、2020年にApache Hadoop(覚えていますか?)からスピンオフされました。
設定の容易さ: 😵
[画像: apacheozone.excalidraw]
MinIOの代替として機能しますが、軽量な代替ではありません。私自身もClaudeも、4つ未満のノードでデプロイする方法を見つけることができませんでした。重厚なHadoopの雰囲気があり、このユースケースのために採用を急ぐことはないでしょう。
Ceph Object Gateway
Ozone(上記)は十分にヘビー級です。どちらもそれぞれの用途で優れていると思いますが、ローカルデモ用のDocker Composeスタックにスロットインする軽量なコンテナではありません。