家族アルバム みてねのシステムアーキテクチャ
アーキテクチャの工夫ポイント
みてねでは、APIサーバー(Rails)の負荷を下げるため、画像・動画のアップロード・ダウンロードはクライアントから直接S3/CloudFrontにアクセスします。
APIサーバーを介さずとも適切にアクセスコントロールできるよう、S3/CloudFrontの署名付きURLの機能を利用しています。また、APIサーバーを介さずアップロード後の後処理(サムネイル生成やメディア解析など)を行うため、アップロード完了時にS3からSNS+SQSを介してイベントを通知し、ジョブワーカーにてイベントを処理しています。
動画の解像度やフレームレートをクライアントに合わせて調整し、かつストレージコストを抑えるため、HLSを利用してオンデマンドで動画のエンコーディングを行なっています。
メディア解析を担当するチームが、通常のアプリケーション開発と独立して機械学習システムを開発できるよう、メディア解析のパイプラインは独立したコンポーネントとなっています。
メディア解析パイプラインのジョブフローを管理するオーケストレータが存在し、複数の解析器とSQSを通じて通信しています。
現在のアーキテクチャの課題と今後の改善予定
画像・動画のストレージコストを下げることが永遠の課題です。
アップロード後の後処理を行うためのジョブワーカーは、ここに書いたもの以外にも複数あり、それらが相互に関連しているため、全体像を把握しパフォーマンスを最適化することが難しくなっています。
解析結果をデータベースに書き込んでいますが、データ量が多くDBに負荷をかけています。
解析パイプライン全体のコストを下げることができないか、様々な手法を検討しています。
◆執筆:生島 光 株式会社MIXI みてねプロダクト開発部 プラットフォームグループ SREチーム @ojima_h
【サービス公式サイト】
https://mitene.us/
アーキテクチャを構成するツール
会社情報
株式会社MIXI
MIXIは ”「心もつながる」場と機会の創造” をミッションとして、「モンスターストライク」や「家族アルバム みてね」など、友人や家族で一緒に楽しむコミュニケーションサービスを提供しています。
株式会社MIXIの利用ツールレビュー
IaC
HCP Terraform による開発生産性とセキュリティ向上の実現
株式会社MIXI / Yusuke Hamano
メンバー / バックエンドエンジニア / 従業員規模: 1,001〜5,000名 / エンジニア組織: 301名〜500名
プロジェクト管理
MIXI における Jira Cloud への移行の決断とその後の状況
株式会社MIXI / ishunshu
チームリーダー / 情報システム / 従業員規模: 1,001〜5,000名 / エンジニア組織: 301名〜500名
監視・オブザーバビリティ
New Relicの導入効果をレビューでご紹介(Isao Shimizu-株式会社MIXI)
株式会社MIXI / Isao Shimizu
EM / EM / 従業員規模: 51名〜100名 / エンジニア組織: 11名〜50名