トップ OSS紹介 MinIO

MinIO

サポート対象

NRIのOpenStandiaが提供するMinIO最新情報

MinIO情報

MinIOとは

MinIOは、Go言語で実装されたAmazon S3クラウド・ストレージ・サービスと互換性のあるオブジェクト・ストレージ・サーバーです。Anand Babu Periasamy氏、Garima Kapoor氏、Harshavardhana氏により2014年に設立されたMinIO, Inc.によって、主な開発が行われています。
MinIOは、写真や動画、ログファイル、バックアップ、コンテナ、VMイメージなどの非構造化データを格納するのに最適です。1つのオブジェクトサイズとしては、数KBのものから最大5TBまで対応します。MinIOサーバーは非常に軽量なので、Node.jsやRedis、MySQLなどと同様にアプリケーションスタックにバンドルすることができます。
MinIOはAmazon S3と互換性があるため、Amazon S3と全く同じインタフェース(AWS CLIや、AWS SDK)からもアクセスが可能です(ただし一部、MinIOではサポートしていないAPIもあります)。そのため、本番環境ではAmazon S3を使用するが、開発時には、MinIOで開発/テストを行うなどの用途で利用することができます。

MinIOをソースからビルドするには、Go言語(1.12以上)が必要です。ですが、主要なOSにはコンパイル済みのバイナリが提供されているため、ビルドを行わずにそのバイナリをダウンロードするだけで簡単に動作を試すことが可能です。

主な特徴

MinIOの主な特徴は以下の通りです。

SQL Select

Spark、Presto、Hive、Flinkなどのデータ処理プラットフォームでは、S3/Select APIによりオブジェクト全体ではなく、データの一部を抽出します。MinIOでは、Parquet、CSV、JSONフォーマットのオブジェクトに対して、Select APIの利用が可能です。オブジェクトはZIP圧縮、暗号化にも対応しています。

マルチサイトフェデレーション

複数のMinIOインスタンスを組み合わせて、Bucketごとに振り分けるインスタンスを変えたり、複数のユーザーに対してマルチテナントで運用したり、データ保護や高可用性のために分散構成をとることが可能です。

アイデンティティおよびアクセス管理

MinIOサーバーのSecurity Token Service (STS)を使うことにより、アプリケーションやユーザーの認証のために、WSO2、Keycloak、Okta、Ping Identity、Active Directory等のアイデンティティ・プロバイダーと統合できます。

暗号化とWORM

Amazon S3と同様にServer-Side Encryption with customer(SSE-C)に対応しています。ユーザーが管理する鍵によってサーバーサイドで暗号化を行い、機密性、整合性、信頼性を保証します

ラムダコンピュート

MinIOは、AWS SNS/SQS互換のイベント通知サービスを通じてLambda機能をトリガーできます。
サポートされる通知先はApache Kafka、NATS、AMQP、MQTT、Webhookなどのメッセージキュー、Elasticsearch、Redis、PostgreSQL、MySQLなどのデータベースが含まれます。

Erasure CodeとBit Rot保護

MinIOは、Erasure Codeとチェックサムを利用して、ハードウェア障害などのデータ破損から、データを保護します。最高レベルの冗長性を使用すると、合計ドライブの最大半分(N / 2)が失われても、データを回復できる可能性があります。
また、Bit Rotのようなハードウェアとしては異常を検知しないデータ破損を防止するため、高速なHighwayHashチェックサムが使用されます。

類似プロダクト

Amazon S3互換を持つOSSのオブジェクト・ストレージ・サーバーとしては、以下のものがあります。

  • LeoFS
  • Riak CS(Cloud Strage)
  • Cloudian
  • Ceph
  • SwiftStack

動作環境

MinIO Server、MinIO Clientが提供されているバイナリ/イメージは以下の通りです。

  • GNU/Linux
    • バイナリ(x64)
  • MacOS
    • brew
    • バイナリ(x64)
  • Windows
    • バイナリ(x64)
  • Dockerコンテナイメージ

また、MinIOはマルチテナント環境で水平スケール可能となるように設計されたクラウドネイティブアプリケーションであるため、様々なコンテナオーケストレーション上でMinIOを展開できます。以下のプラットフォームに関しては展開方法を具体的に記したドキュメントがあります。

  • Docker Swarm
  • Docker Compose
  • Kubernetes
  • DC/OS

加えて、MinIO Serverを含むAmazon S3 互換のオブジェクト・ストレージ・サーバーへアクセスするためのMinIO SDKも提供されており、以下の言語用ライブラリが利用可能です。

  • Java
  • JavaScript
  • Haskell
  • Go
  • Python
  • .NET

MinIOのライセンス

MinIOは、GPLライセンスです
GPLライセンスの正式名称は「GNU General Public License」です。ソフトウェアのコピーや配布、ソースコードの公開を原則とし、ソースコードを改変も認められています。

製品ダウンロード

参考情報

オープンソース年間サポートサービス

OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。

お気軽にお問い合わせください

関連OSS

  • GlusterFS

    GlusterFS

    グラスターエフエス。オープンソースの分散ファイルシステムであり、クラウドストレージやメディアストリーミングなどの用途にも利用可能な性能を持っています。

  • Ceph

    Ceph

    セフ。分散オブジェクトストレージ機能を提供する、オープンソースのストレージソフトウェアです。

オープンソースに関するさまざまな課題、OpenStandiaがまるごと解決します。
下記コンテンツも
あわせてご確認ください。