# 20240419_第一次MinIO革命 (例:20210901_LT会を開催しました) ###### tags: `ブログ記事` - [ ] 公開(ブログ公開担当者がいじるやつ) 太字斜体で書いてある内容を埋めて行ってください. 文章,画像は太字斜体の下の行に入れてください. 最初に書く時はREADMEを読んだら読むといいと思います. <br> ## 表示されない情報 ***書いた人の名前(自己紹介文と同じ名前)*** {  窪坂 駿吾 } ***記事の簡単な説明(検索した時にタイトルの下に出てくる文章)*** { MinIOというストレージサーバーを新しくNUTMEGに導入しました。このMinIOがNUTMEGと技大祭においてどのように活用できるかをブログにしました。 } <br> ## 表示される部分 ***サムネイル画像*** { ![minio革命](https://hackmd.io/_uploads/SJ8jK7Ul0.png) } ***カテゴリ*** 以下の中から該当しそうなカテゴリを選択してください ※一つだけ選択してください - [ ] 対外活動 - [x] 活動の様子 - [ ] メンバーの趣味 - [ ] 実務訓練体験記 - [ ] NUTMEG Advent Calendar 2023 ***タグ*** 以下の中から該当しそうなカテゴリを選択してください.当てはまる物がない場合は適宜追加してください. 言語 - [ ] HTML - [ ] CSS - [ ] Python - [ ] Go - [ ] Ruby - [ ] JavaScript - [ ] TypeScript - [ ] Dart - [ ] Rust - [ ] Kotlin - [ ] Swift フレームワーク・ライブラリ - [ ] Ruby on rails - [ ] Vue.js - [ ] Nuxt.js - [ ] React.js - [ ] Next.js - [ ] Gin - [ ] Flluter ツール - [ ] GitHub - [ ] ターミナル - [ ] WSL - [ ] Ubuntu - [ ] Docker - [ ] Raspberry Pi - [ ] Figma - [x] MinIO 分野 - [ ] チームづくり - [ ] フロントエンド - [ ] バックエンド - [ ] インフラ - [ ] Web-design - [ ] API関係 --- ***以下に本文を記載してください*** こんにちは、NUTMEG(技大祭実行委員会 情報局)のkubosakaです。 今回自分がPMを務めるプロダクト「FinanSu」で広告データ等のアップロード・ダウンロード機能が新しく追加されました。この機能を実装するためにMinIOというストレージサーバーを新しくNUTMEGに導入しました。このMinIOというものNUTMEGと技大祭にとってすごく便利なものであると個人的に考えています。今回のブログでは、MinIOの何が便利でどうすごいのか自分の感想を踏まえて書かせていただきます。また、今回のブログは新入生も見ることを想定していますので、補足なども適宜入れていきます。 ![image](https://hackmd.io/_uploads/HyuCY7UgC.png) ## FinanSuとは? NUTMEG(情報局)が作っているプロダクトの1つで技大祭でかかるお金に関する業務の一括管理を目的とするプロダクトです。 学園祭の運営には、多くのお金が動きます。物品の購入、学内募金、企業協賛活動など様々であり、複雑です。それらを「FinanSu」で業務の円滑化を図るために開発をしております。 主なユーザー:財務局、渉外局、全学園祭実行員(学内募金時) 使用言語・フレームワーク・ツール等:Next.js, TypeScript, Go, MySQL, Docker, GitHub, Figma 現在メンバー6名(5名エンジニア+1名デザイナー)で活動中です。メンバー募集中! 毎週火曜日18:00~ FinanSu MT 興味があれば、kubosakaもしくはメンバーまでご連絡ください! ![FinanSu](https://hackmd.io/_uploads/S1kC8zUlR.png) ### MinIOとは? - MinIO は、高性能の AWS S3 互換オブジェクト ストア - 大規模な AI/ML、データ レイク、データベース ワークロード向けに構築されている。 - あらゆるクラウドまたはオンプレミスのインフラストラクチャ上で実行される。 - **OSSのため、無料で使うことができる** - [公式サイト](https://min.io/) - ブラウザ上でバケットの作成、ファイルのアップロード・ダウンロード・プレビューといったこともできる ### AWSとは? 今回のブログ発表が新入生の体験会ということで軽く補足しておきます。 - Amazonが提供するクラウドサービスの総称 AWS(Amazon Web services) - 仮想サーバー「EC2」、ストレージ「S3」、DB「Aurora」など150を超えるサービス - 2024年2月段階では世界で最も多く利用されているクラウドサービス - 多くのサービスを使うためにはお金が必要 すごく便利なサービスではあるが、学園祭の実行委員会であるNUTMEGはできるだけお金をかけずにサービスを提供したいため現在導入はしていません。 ## FinanSuの新機能のためMinIOの導入 今回顧客である渉外局 企業協賛部門から「FinanSuで企業協賛で使う広告データを管理したい」という要望をもらった 今年度版のリリースに合わせて、MinIOを使いファイルのアップロード、ダウンロード機能を実装しました! ![スクリーンショット 2024-04-12 11.35.21](https://hackmd.io/_uploads/BkNMRMIl0.png) ### MinIOを選んだ理由 - 自分達のサーバーで管理することができるため - OSSであり、無料で使うことができるため - 開発環境(ローカル)でMinIOコンテナを起動することができるため - 卒業生(いまいまい)がMinIOを実装したリポジトリがあり参考にできたため ## MinIOの何がすごいの?何ができるの? ここまでお聞きした多くの人が、「ファイルのアップロード・ダウンロードができることはわかったけど、革命って大袈裟すぎん? 他に何ができるん?」と思っていることと思います。正直タイトル負けしているブログと感じていますが、AWS S3の互換サービスということで他にも活用ができそうです。 ### Amazon S3のユースケース Amazon S3には以下のユースケースがあります。MinIOはS3互換サービスであるため、これらと同様のことが実現できそうです。 - オブジェクトストレージ - バックアップと復元 - S3とEFS・EBSとバックアップ - データレイクとビッグデータの分析 - 多数のソースからのビッグデータを元のままの多様な形式で保持するストレージリポジトリ - 静的ファイルの配信など 次に具体的に技大祭での活用案を提案します。 ## 技大祭での活用案 ### 他プロダクトでのファイル管理機能 形式は問わないので、どのようなデータ形式でもアップロード、ダウンロード機能の実装が可能です。 * 動画データでYouTubeみたいな動画投稿プラットフォームの作成 * csv、docs、txt、png..などなんでも、とりあえずファイルをアップロード・ダウンロードしたい * BINGOの景品データの保存先など ### パンフレットの公開方法 昨年までは、Turn.jsなどを使い、サーバー上にデプロイをして電子パンフレットを公開していました。 - [昨年度の電子パンフレット](https://pamphlet.nutfes.net/) MinIOでもpdfdファイルとして公開することができます。その際のメリットが以下の通りです。 - デプロイが格段に楽になる - MinIOサーバーにアップロードするだけのため、これまでのデプロイ作業が不要 - 間違いなどがあった場合、修正→即公開ができる - pdfとして公開するため、ブラウザの拡張機能で閲覧できる - 見たいページへの移動が容易 - ダウンロードできる ### 静的サイトの公開 **静的サイト**とは - **「誰が」「いつ」「どこで」見ても同じ情報が表示されるホームページ** - 対義語:動的サイト html、css、JavaScriptなどで作られたシンプルなサイトはMinIOにアップロードするだけで公開できます。 パンフレットの事例と同様、デプロイが素早く楽です。 ### 機械学習などに使うデータレイクとして活用 現在NUTMEGのプロダクトとして、機械学習を活用した事例は多くないが、これから使う際に、データの保存先として使うことができる。 ### ログ保存、データバックアップ サーバーのログの保存先として、DBなどのバックアップ先としても活用ができます。 ## 最後に このようにNUTMEGにMinIOというオブジェクトストレージが実装されたことで、できることの選択肢が増えました。自分達の活動目的は技大祭運営業務の円滑化であるため、NUTMEGに新しい技術を導入することは課題解決の選択肢を増やすことにつながるため、非常に良いことだと思います。引き続き、顧客(ユーザー)のニーズを満たすプロダクト開発を意識して、頑張りましょう。 Next.jsとMinIOによるファイルのアップロード機能に関してはまた別のブログで書こうかと思います。お楽しみに! ## 参考記事・サイト - [AWSとは?意味・定義](https://www.ntt.com/bizon/glossary/e-a/aws.html) - [MinIO](https://min.io/) - [【AWS初心者向け】ストレージサービス「Amazon S3」とは?実際に使用してみた](https://business.ntt-east.co.jp/content/cloudsolution/column-try-43.html)