会員制動画視聴、販売サービス構築
開発事例
新規にフリーミアム制の動画コンテンツ販売・配信サイトを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
- OpsWorks
- EC2各インスタンスへのデプロイや、負荷に応じたスケールアップ/ダウンに利用しています。
- S3
- サーバーが生成するファイルはすべてS3に展開され、基本的にローカルサーバー上には残しません。
- 用途によりバケット、リージョンを使い分けています。たとえばダウンロード販売用のデータは東京リージョンよりも安価なシンガポールリージョンにあります。
- SQS
- ActiveJobのバックエンドとして利用しており、バックグラウンド処理に活用しています。
- Elastic Transcoder
- アップロードされた動画をストリーミング用に変換するのに用いています。
- SWF
- アップロードされた動画の結合やエンコーディング処理のワークフロー管理に用いています。
- Data Pipeline + EMR
- 視聴実績によるコンテンツレコメンデーションに使用しています。
- Cloud Front
- ストリーミング配信用の動画ファイルを含む静的ファイルはCloud Frontを介して配信されます。