MinioをAWS S3の代替として。Minioの概要とインストール。

概要とMinioのインストール

目次

MinIO は、Amazon S3 API と完全に互換性のある、オープンソースで高性能な分散型オブジェクトストレージシステムです。

オンプレミス、クラウド、エッジ環境のいずれにも展開でき、速度、拡張性、セキュリティが最適化されています。MinIO は、AI/ML、分析、バックアップ、ハイブリッドクラウド環境など、現代のデータワークロードで広く使用されています。

aws-s3 vs minio

MinIO は非常に使いやすいです。

  • 簡単な展開: MinIO は、インストールおよび設定プロセスが簡単で知られています。Ceph などのより複雑なセルフホストされたソリューションと比較して、セットアップおよび管理がはるかに簡単です。
  • S3 API 互換性: S3 API に厳密に準拠しているため、AWS S3 用に構築されたアプリケーションやツールは、変更なしに MinIO と連携でき、移行および統合を簡素化します。
  • ユーザー体験: MinIO は、ウェブベースのUIとCLIの両方を提供しており、どちらもシンプルさと使いやすさで称賛されています。
  • ドキュメントとコミュニティ: MinIO には成長しているコミュニティとそれなりのドキュメントがありますが、AWS S3 に比べて豊富なリソースは提供されていません。

比較: MinIO vs AWS S3

機能 MinIO AWS S3
展開 セルフホスト/オンプレミス/クラウド/エッジ AWS が完全に管理
拡張性 手動/水平拡張 自動、ほぼ無限
API 互換性 S3 互換 ネイティブ S3
カスタマイズ性 高度にカスタマイズ可能 限定的(AWS エコシステム内)
統合 幅広い(S3 互換のツール) AWS サービスとの深い統合
合規性 ユーザー管理 AWS 管理、基準の認証済み
パフォーマンス 速度最適化、ハードウェア依存 リージョン/ティアによって異なる
サポート コミュニティ/商用サポート AWS エンタープライズサポート
コスト ライセンス料なし、コモディティHWで動作 使用量ベース、ペイ・アズ・ユーアー

Systemd サービスとして Minio をインストールする

deb パッケージをダウンロードして dpkg でインストールすることをお勧めします。これにより、minio の systemd サービスファイルも作成されます。

wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio_20250422221226.0.0_amd64.deb -O minio.deb
sudo dpkg -i minio.deb

Docker で MinIO をインストールする方法

MinIO は、単一コマンドで Docker を使用して迅速に展開できます。以下は、基本的な単一ノード、単一ドライブの設定のステップバイステップの手順です。

1. データディレクトリの準備

ホストシステム上に MinIO データを永続化するディレクトリを作成します:

mkdir -p ~/minio/data

これにより、コンテナが削除または再起動されてもデータが保持されます。

2. Docker で MinIO を実行する

以下のコマンドを使用して MinIO を起動します:

docker run -p 9000:9000 -p 9001:9001 \
  --name minio1 \
  -e "MINIO_ROOT_USER=minioadmin" \
  -e "MINIO_ROOT_PASSWORD=minioadmin" \
  -v ~/minio/data:/data \
  minio/minio server /data --console-address ":9001"
  • -p 9000:9000: MinIO API をポート 9000 で公開します。
  • -p 9001:9001: MinIO ウェブコンソールをポート 9001 で公開します。
  • --name minio1: コンテナを簡単に管理できるように名前を付けます。
  • -e "MINIO_ROOT_USER=minioadmin" および -e "MINIO_ROOT_PASSWORD=minioadmin": ルートユーザーとパスワードを設定します(本番環境では変更してください)。
  • -v ~/minio/data:/data: ローカルデータディレクトリをコンテナにマウントして永続ストレージを提供します。
  • minio/minio server /data --console-address ":9001": MinIO サーバーを起動し、ウェブコンソールを有効にします。

3. MinIO コンソールにアクセスする

  • ブラウザを開き、http://localhost:9001 にアクセスしてください。
  • 上記で設定した資格情報を使用してログインしてください(デフォルトは minioadmin / minioadmin)。

4. (オプション) Docker Compose の使用

より高度な設定や開発には、Docker Compose を使用できます。コミュニティリポジトリには、例の Compose ファイルと手順が用意されています。

5. (オプション) MinIO クライアントのインストール

MinIO サーバーと CLI でやり取りするには、MinIO クライアント(mc)をインストールしてください:

curl -O https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/mc

その後、MinIO サーバーに接続するように設定してください:

mc alias set local http://127.0.0.1:9000 minioadmin minioadmin

この設定により、Docker を通じてローカルで動作する、S3 互換のオブジェクトストレージサーバーが提供されます。本番環境の展開については、公式の MinIO ドキュメントを参照して、高度な設定、セキュリティ、拡張オプションをご確認ください。

Docker Compose を使用して MinIO を設定するステップ

1. データディレクトリの準備

ホストマシン上に MinIO データを永続化するディレクトリを作成します:

mkdir -p ~/minio/data

このディレクトリは、コンテナにマウントされて、再起動時にデータが保持されます。


2. Docker Compose ファイルの作成

作業ディレクトリに docker-compose.yml という名前のファイルを作成し、以下の内容を追加してください(必要に応じてカスタマイズしてください):

version: '3.7'

services:
  minio:
    image: minio/minio
    container_name: minio
    ports:
      - "9000:9000"
      - "9001:9001"
    environment:
      MINIO_ROOT_USER: minioadmin
      MINIO_ROOT_PASSWORD: minioadmin
    volumes:
      - ~/minio/data:/data
    command: server /data --console-address ":9001"
  • 本番環境では MINIO_ROOT_USER および MINIO_ROOT_PASSWORD をセキュアな値に変更してください。
  • 他のディレクトリを使用している場合は、ボリュームのパスを調整してください。

3. MinIO サービスの起動

docker-compose.yml ファイルと同じディレクトリで以下のコマンドを実行してください:

docker-compose up -d

このコマンドは、MinIO イメージが存在しない場合はイメージをプルし、コンテナを作成してサービスをデタッチドモードで起動します。


4. サービスの確認

MinIO が動作しているかを確認してください:

docker-compose ps

エラーがないかを確認するためにログを表示することもできます:

docker-compose logs minio

5. MinIO コンソールへのアクセス

  • ブラウザを開き、http://localhost:9001 にアクセスしてください。
  • 上記で設定した資格情報を使用してログインしてください(デフォルトは minioadmin / minioadmin)。

サマリーテーブル

ステップ 説明
ディレクトリの準備 mkdir -p ~/minio/data
Compose ファイル docker-compose.yml を作成・編集
サービスの起動 docker-compose up -d
確認 docker-compose ps および docker-compose logs
コンソールへのアクセス ブラウザで http://localhost:9001 にアクセス

より高度な設定(例: 分散モード、カスタム設定)については、公式の MinIO Compose ドキュメントまたはコミュニティガイドを参照してください。

MinIO の利点

  • コスト効率: ライセンス料なし; コモディティハードウェアで動作し、管理されたクラウドストレージと比較して、所有コストを大幅に削減できます。
  • オープンソース: 完全にオープンソースで、カスタマイズと透明性が可能です。
  • S3 API 互換性: S3 ベースのアプリケーションの移行がスムーズ; 既存の S3 ツールやワークフローと連携可能です。
  • パフォーマンス: 高いスループットと低レイテンシーに最適化されており、特に現代のハードウェアでは、特定のワークロードでは AWS S3 を上回ることがあります。
  • 展開の柔軟性: どこにでも展開可能 - オンプレミス、クラウド、エッジ - ハイブリッドおよびマルチクラウド戦略を可能にします。
  • データのコントロール: 組織はデータの場所とアクセスの完全なコントロールを保持し、データ主権とセキュリティが重要です。

MinIO の課題

  • 手動スケーリング: スケーリングには手動の設定と管理が必要で、AWS S3 の自動スケーリングとは異なります。
  • 合規性の負担: GDPR、HIPAA などの基準の遵守は、展開組織の責任であり、MinIO 自体ではありません。
  • サポート: MinIO は商業サポートを提供していますが、サポートの範囲と深さは AWS のエンタープライズレベルの提供と比べて劣る可能性があります。
  • 運用の負荷: セルフホストされたソリューションであるため、ユーザー自身が継続的なメンテナンス、モニタリング、アップデートを必要とします。
  • 機能のギャップ: AWS S3 に存在する一部の高度な機能や統合は、MinIO には存在しないか、成熟度が低い可能性があります。

MinIO vs AWS S3 の価格

  • MinIO: オープンソースライセンス(AGPL v3)の下で無料で使用可能。コストは主に下層インフラ(サーバー、ストレージ、ネットワーク)および任意の商業サポート契約のコストです。
  • AWS S3: 使用量に基づくペイ・アズ・ユーアー価格。ストレージ使用量、データ転送、API リクエストに基づいています。複数のストレージクラスがあり、コスト最適化が可能です 異なるユースケース

まとめ

MinIO は、AWS S3 に代わる強力なオープンソースの代替ソリューションであり、S3 API 互換性、高性能、展開の柔軟性を低コストで提供します - 特に セルフホスト ストレージを好むまたは必要とする組織にとってです。使いやすく、既存の S3 互換のツールと統合が良好です。ただし、スケーリングおよび合規性に関してはより手動の管理が必要であり、AWS S3 に比べて深い統合とサポートエコシステムは欠如しています。MinIO と AWS S3 の選択は、コントロール、コスト、スケーラビリティ、合規性、運用負荷のあなたの具体的なニーズに依存します。

有用なリンク