会員制動画視聴、販売サービス構築

開発事例

受託開発 スタートアップ開発 要件定義 運用/保守 コーディング インフラ 設計 Ruby Payment Ruby on Rails 機械学習 REST API React SPA AWS
新規にフリーミアム制の動画コンテンツ販売・配信サイトをAWS上に構築したいというご依頼をいただき、開発・リリースしました。

概要

  • クライアントより直接開発依頼を受注
  • バックエンドアプリ
    • Ruby on Rails 4.2
    • ユーザー向けには主にREST APIサーバとして構築
    • 動画変換をはじめ非同期処理はActiveJobを活用、ワーカーデーモンを作成
    • AmazonEMR+Mahoutによる機械学習(ユーザーベース/アイテムベースレコメンデーション)
  • フロントエンドアプリ
    • Reactjs SPA
    • UXにつよいフロントエンジニアと協業
  • インフラ開発
    • AWS OpsWorksでデプロイ、運用管理を自動化
    • 静的ファイルおよび動的に生成した画像等はCloudFront
    • その他各種サービスを組み合わせて構築

技術

用いている技術など列挙します。
  • フロントエンド
    • SPA (React + Flux)
    • Browserify
    • ES2015 (Babel)
    • SASS
    • gulp
    • HTTP Live Streaming
  • バックエンド
    • Ruby on Rails 4.2
    • Amazon Web Service
  • AWSの利用(主なもの)
    • EC2
      • EC2 AmazonLinuxにRails環境を構築しています。
    • RDS
      • Auroraを利用しています。
    • OpsWorks
      • EC2各インスタンスへのデプロイや、負荷に応じたスケールアップ/ダウンに利用しています。
    • S3
      • サーバーが生成するファイルはすべてS3に展開され、基本的にローカルサーバー上には残しません。
      • 用途によりバケット、リージョンを使い分けています。たとえばダウンロード販売用のデータは東京リージョンよりも安価なシンガポールリージョンにあります。
    • SQS
      • ActiveJobのバックエンドとして利用しており、バックグラウンド処理に活用しています。
    • Elastic Transcoder
      • アップロードされた動画をストリーミング用に変換するのに用いています。
    • SWF
      • アップロードされた動画の結合やエンコーディング処理のワークフロー管理に用いています。
    • Data Pipeline + EMR
      • 視聴実績によるコンテンツレコメンデーションに使用しています。
    • Cloud Front
      • ストリーミング配信用の動画ファイルを含む静的ファイルはCloud Frontを介して配信されます。