Findy Tools
開発ツールのレビューサイト

家族アルバム みてねのシステムアーキテクチャ

Xのツイートボタン
このエントリーをはてなブックマークに追加
Xのツイートボタン
このエントリーをはてなブックマークに追加

家族アルバム みてねのシステムアーキテクチャ

最終更新日 投稿日
mixi_architecture.png

アーキテクチャの工夫ポイント

みてねでは、APIサーバー(Rails)の負荷を下げるため、画像・動画のアップロード・ダウンロードはクライアントから直接S3/CloudFrontにアクセスします。
APIサーバーを介さずとも適切にアクセスコントロールできるよう、S3/CloudFrontの署名付きURLの機能を利用しています。また、APIサーバーを介さずアップロード後の後処理(サムネイル生成やメディア解析など)を行うため、アップロード完了時にS3からSNS+SQSを介してイベントを通知し、ジョブワーカーにてイベントを処理しています。
動画の解像度やフレームレートをクライアントに合わせて調整し、かつストレージコストを抑えるため、HLSを利用してオンデマンドで動画のエンコーディングを行なっています。
メディア解析を担当するチームが、通常のアプリケーション開発と独立して機械学習システムを開発できるよう、メディア解析のパイプラインは独立したコンポーネントとなっています。
メディア解析パイプラインのジョブフローを管理するオーケストレータが存在し、複数の解析器とSQSを通じて通信しています。

現在のアーキテクチャの課題と今後の改善予定

画像・動画のストレージコストを下げることが永遠の課題です。
アップロード後の後処理を行うためのジョブワーカーは、ここに書いたもの以外にも複数あり、それらが相互に関連しているため、全体像を把握しパフォーマンスを最適化することが難しくなっています。
解析結果をデータベースに書き込んでいますが、データ量が多くDBに負荷をかけています。
解析パイプライン全体のコストを下げることができないか、様々な手法を検討しています。

◆執筆:生島 光 株式会社MIXI みてねプロダクト開発部 プラットフォームグループ SREチーム  @ojima_h

【サービス公式サイト】
https://mitene.us/

アーキテクチャを構成するツール

Cloud Pub/Sub

インフラ

Cloud Pub/Sub

Amazon Aurora

データベース

Amazon Aurora

Amazon S3

サーバレス

Amazon S3

会社情報

株式会社MIXI

株式会社MIXI

MIXIは ”「心もつながる」場と機会の創造” をミッションとして、「モンスターストライク」や「家族アルバム みてね」など、友人や家族で一緒に楽しむコミュニケーションサービスを提供しています。