技術スタックと選定理由(なぜこの構成か)

Frontend:Nuxt(Vue) + hls.js

役割:視聴・配信者・管理画面のWeb構築と動画プレイヤー
  • 読込が速くSSR/SEO良好・脱React(非Meta)でBig Tech非依存
  • hls.jsは完全OSS。回線が弱い視聴者は自動で画質を下げる(ABR)
  • PWA+Tailwindで開発時間を約40%短縮・デザイン一貫性

Backend:NestJS + PostgreSQL + Redis

役割:ログイン・アップロード・決済・チャット等の全API処理=司令塔
  • NestJSはモジュール構造+TypeScriptでバグ削減・WebSocket強い
  • PostgreSQLはOSS・30年の安定実績・JSON+全文検索・数百万件までスケール
  • Redisは読書き<1ms。ライブチャット(Pub/Sub)とキャッシュの業界標準

ジョブ処理:BullMQ + Prisma(ORM)

役割:重い処理を裏で実行/DBアクセスの型安全な橋渡し
  • 1GB動画アップロードも即レスポンス→変換は裏で実行(待たせない)
  • Prismaは型安全・スキーマ自動生成でバグ削減
  • AI開発(Claude Code)との親和性が高く開発を高速化

配信:SRS cluster + FFmpeg + NVENC(GPU)

役割:RTMP受信→HLS/LL-HLS変換・複数画質化=配信の心臓部
  • SRSは主要プロトコル全対応・クラスタで1万+視聴へスケール
  • FFmpegは業界標準OSS・worker poolで同時アップロードに対応
  • NVENC(GPU)はCPU比5〜10倍。1080p60×1,000を非Big Techで実現する鍵

Storage / CDN:MinIO + Bunny

役割:動画・アーカイブ保管(S3互換)と高速エッジ配信
  • MinIOは100% OSS・自社ホストでデータ主権100%・HDD追加で拡張
  • BunnyはCloudFront比 約70%安価・日本にエッジ→JP視聴者に低遅延
  • S3互換のため将来の移行が容易(ロックインなし)

Infra / 監視:Hetzner等 + OSS監視

役割:物理サーバ実行環境と24/7監視・運用
  • bare metalはAWS/GCP比 約1/3価格・VMより高性能(配信用途で重要)
  • Prometheus/Grafana/LokiはOSSデファクト・障害時にメール/Slackアラート
  • GitLab CI+Terraformで3環境・DR再現 ※海外DCはデータ所在を要確認
12 / 51