S3互換ストレージ(MinIO) えすすりーごかんすとれーじ(みにお)
S3MinIOオブジェクトストレージS3互換APIオンプレミスクラウドストレージ
S3互換ストレージ(MinIO)について教えて
簡単に言うとこんな感じ!
AWSのS3と同じ操作方法で使えるストレージを、自社サーバーや別のクラウドに構築できる仕組みだよ。MinIOはその代表選手で、S3用に書いたプログラムをそのまま流用できるのが最大の魅力!
S3互換ストレージ(MinIO)とは
S3互換ストレージとは、Amazon S3のAPIと同じインターフェースを持つオブジェクトストレージです。S3向けに作られたアプリケーションやツールをほぼ修正なしに利用できるため、AWS以外の環境でもS3の資産を活かせます。
MinIOは最も広く使われているオープンソースのS3互換オブジェクトストレージです。Go言語で書かれており、軽量かつ高パフォーマンスで、Kubernetes上へのデプロイにも対応しています。Apache 2.0ライセンスと商用ライセンスのデュアルライセンス構成で提供されています。
S3互換ストレージが注目される理由は主に3つあります。コスト削減(クラウドのストレージ料金を自社インフラで代替)、データ主権(データを自社管理下に置く)、ベンダーロックイン回避(特定クラウドへの依存を減らす)です。
仕組みと特徴
| 項目 | 内容 |
|---|---|
| APIの互換性 | AWS S3のREST API(PUT/GET/DELETE/LIST等)をそのまま実装 |
| 認証方式 | AWS Signature V4と同じ署名方式に対応 |
| データ保護 | イレイジャーコーディング(RAID-6相当)で障害耐性を確保 |
| マルチテナント | バケットポリシーとIAM互換の権限管理 |
| レプリケーション | サイト間レプリケーションでDR構成が可能 |
| パフォーマンス | 単一ノードで最大325 GB/s読み取りを実現(公式ベンチマーク) |
MinIOの主要コンポーネント
- minio server — ストレージサーバー本体
- mc(MinIO Client) — CLIツール。S3のAWS CLIと同様に操作可能
- MinIO Console — WebベースのGUI管理画面
- MinIO Operator — Kubernetes上でMinIOクラスターを管理するOperator
歴史と背景
- 2014年 — MinIOプロジェクト開始。Go言語製の軽量オブジェクトストレージとして公開
- 2019年 — Kubernetesネイティブ対応を強化。MinIO Operatorをリリース
- 2021年 — ライセンスをAGPLv3に変更(商用利用には有料ライセンスが必要に)
- 2022年 — SUBNET(サポートサービス)の強化とエンタープライズ向け機能を拡充
- 現在 — GitHubスター4万超を誇るオープンソースプロジェクトとして成長を続けている
S3互換APIが業界標準として定着したことで、MinIO以外にもCeph RGW、Wasabi、Cloudflare R2など多数のS3互換サービスが登場しています。
主要なS3互換ストレージの比較
関連する規格・RFC
| 規格・仕様 | 内容 |
|---|---|
| AWS S3 REST API | MinIOが互換実装している事実上の業界標準API |
| AWS Signature V4 | S3互換APIで使われる認証署名方式 |
| SNIA CDMI | クラウドデータ管理インターフェースの公式標準(S3ほど普及せず) |
関連用語
- 分散ストレージ(Ceph・Rook・Longhorn) — MinIOと組み合わせて使われることもある分散ストレージ
- CSI(Container Storage Interface) — KubernetesでMinIOボリュームをマウントする際に利用
- ストレージ暗号化 — MinIOもサーバーサイド暗号化をサポート
- データ主権・データレジデンシー — MinIO導入の主要な動機のひとつ