活動の様子

第一次MinIO革命

第一次MinIO革命

こんにちは、NUTMEG(技大祭実行委員会 情報局)のkubosakaです。

今回自分がPMを務めるプロダクト「FinanSu」で広告データ等のアップロード・ダウンロード機能が新しく追加されました。この機能を実装するためにMinIOというストレージサーバーを新しくNUTMEGに導入しました。このMinIOというものNUTMEGと技大祭にとってすごく便利なものであると個人的に考えています。今回のブログでは、MinIOの何が便利でどうすごいのか自分の感想を踏まえて書かせていただきます。また、今回のブログは新入生も見ることを想定していますので、補足なども適宜入れていきます。

image

FinanSuとは?

NUTMEG(情報局)が作っているプロダクトの1つで技大祭でかかるお金に関する業務の一括管理を目的とするプロダクトです。 学園祭の運営には多くのお金が動きます。物品の購入、学内募金、企業協賛活動など様々であり、複雑です。そうした業務の円滑化を図るために「FinanSu」を開発をしております。

  • 主なユーザー:財務局、渉外局、全学園祭実行員(学内募金時)
  • 使用言語・フレームワーク・ツール等:Next.js, TypeScript, Go, MySQL, Docker, GitHub, Figma
  • 現在メンバー:6名(5名エンジニア+1名デザイナー)で活動中です。メンバー募集中!
  • 毎週火曜日18:00~ FinanSu MT

興味があれば、kubosakaもしくはメンバーまでご連絡ください!

FinanSu

MinIOとは?

  • MinIOは、高性能のAWS S3互換オブジェクト ストア
  • 大規模なAI/ML、データ レイク、データベース ワークロード向けに構築されている。
  • あらゆるクラウドまたはオンプレミスのインフラストラクチャ上で実行される。
  • OSSのため、無料で使うことができる
  • 公式サイト
  • ブラウザ上でバケットの作成、ファイルのアップロード・ダウンロード・プレビューといったこともできる

AWSとは?

今回のブログ発表が新入生の体験会ということで軽く補足しておきます。

  • Amazonが提供するクラウドサービスの総称 AWS(Amazon Web services)
  • 仮想サーバー「EC2」、ストレージ「S3」、DB「Aurora」など150を超えるサービス
  • 2024年2月段階では世界で最も多く利用されているクラウドサービス
  • 多くのサービスを使うためにはお金が必要

すごく便利なサービスではあるが、学園祭の実行委員会であるNUTMEGはできるだけお金をかけずにサービスを提供したいため現在導入はしていません。

FinanSuの新機能のためMinIOの導入

今回顧客である渉外局 企業協賛部門から「FinanSuを使って企業協賛で使う広告データを管理したい」という要望をもらった 今年度版のリリースに合わせて、MinIOを使いファイルのアップロード、ダウンロード機能を実装しました!

スクリーンショット 2024-04-12 11.35.21

MinIOを選んだ理由

  • 自分達のサーバーで管理することができるため
  • OSSであり、無料で使うことができるため
  • 開発環境(ローカル)でMinIOコンテナを起動することができるため
  • 卒業生(いまいまい)がMinIOを実装したリポジトリがあり参考にできたため

MinIOの何がすごいの?何ができるの?

ここまでお聞きした多くの人が、「ファイルのアップロード・ダウンロードができることはわかったけど、革命って大袈裟すぎん? 他に何ができるん?」と思っていることと思います。正直タイトル負けしているブログと感じていますが、AWS S3の互換サービスということで他にも活用ができそうです。

Amazon S3のユースケース

Amazon S3には以下のユースケースがあります。MinIOはS3互換サービスであるため、これらと同様のことが実現できそうです。

  • オブジェクトストレージ
  • バックアップと復元
    • S3とEFS・EBSとバックアップ
  • データレイクとビッグデータの分析
    • 多数のソースからのビッグデータを元のままの多様な形式で保持するストレージリポジトリ
  • 静的ファイルの配信など

次に具体的に技大祭での活用案を提案します。

技大祭での活用案

他プロダクトでのファイル管理機能

形式は問わないので、どのようなデータ形式でもアップロード、ダウンロード機能の実装が可能です。

  • 動画データでYouTubeみたいな動画投稿プラットフォームの作成
  • csv、docs、txt、png..などなんでも、とりあえずファイルをアップロード・ダウンロードしたい
  • BINGOの景品データの保存先など

パンフレットの公開方法

昨年までは、Turn.jsなどを使い、サーバー上にデプロイをして電子パンフレットを公開していました。

MinIOでもpdfdファイルとして公開できます。その際のメリットが以下の通りです。

  • デプロイが格段に楽になる
    • MinIOサーバーにアップロードするだけのため、これまでのデプロイ作業が不要
    • 間違いなどがあった場合、修正→即公開ができる
  • pdfとして公開するため、ブラウザの拡張機能で閲覧できる
    • 見たいページへの移動が容易
    • ダウンロードできる

静的サイトの公開

静的サイトとは

  • 「誰が」「いつ」「どこで」見ても同じ情報が表示されるホームページ
  • 対義語:動的サイト

html、css、JavaScriptなどで作られたシンプルなサイトはMinIOにアップロードするだけで公開できます。 パンフレットの事例と同様、デプロイが素早く楽です。

機械学習などに使うデータレイクとして活用

現在NUTMEGのプロダクトとして、機械学習を活用した事例は多くないが、これから使う際に、データの保存先として使うことができる。

ログ保存、データバックアップ

サーバーのログの保存先として、DBなどのバックアップ先としても活用ができます。

最後に

このようにNUTMEGにMinIOというオブジェクトストレージが実装されたことで、できることの選択肢が増えました。自分達の活動目的は技大祭運営業務の円滑化であるため、NUTMEGに新しい技術を導入することは課題解決の選択肢を増やすことにつながるため、非常に良いことだと思います。引き続き、顧客(ユーザー)のニーズを満たすプロダクト開発を意識して、頑張りましょう。

Next.jsとMinIOによるファイルのアップロード機能に関してはまた別のブログで書こうかと思います。お楽しみに!

参考記事・サイト