「家族アルバム みてね」を支えるS3ライフサイクル戦略
MIXI のSREエンジニア fanglang(尾関 芳郎)による SpeakerDeck スライド。2025-04-03「春のSREまつり 〜 大規模サービス “あるある” との戦い事例 〜」での登壇資料。家族アルバムアプリ「みてね」(2500万ユーザー・写真動画131億件超)のS3コスト最適化戦略を解説。
サービス概要
- サービス名: 家族アルバム みてね
- 提供元: MIXI(みてねプロダクト開発部)
- ミッション: 「世界中の家族のこころのインフラをつくる」
- ユーザー数: 2500万人以上(2025年1月時点)
- 蓄積データ: 写真・動画131億件以上(2024年3月時点)
- 主な機能: 写真・動画の無制限保存・家族共有・フォトブック・写真プリント・みてねみまもりGPS
課題と目的
- 課題: 大量の画像・動画データをS3に保存しており、データ量増加に伴うストレージコストが増大
- 発表の目的: S3ライフサイクルルールを用いたコスト削減テクニックの具体例紹介
S3バージョニングによるデータ保護
- ユーザーの大切な写真・動画の誤削除を絶対に避けるため S3バージョニング を全バケットに導入
- ただし、過去バージョンにもストレージコストが発生する(「消したつもり」でもコストは減らない)
- 対策: ライフサイクルルールで一定期間経過後の旧バージョンを自動削除し、リスクとコストのバランスを維持
- ルール: 特別な理由がない限り、全てのS3バケットでバージョニングを有効化
→ 詳細: S3ライフサイクル戦略(みてね)
ストレージクラスとライフサイクルルールによるコスト最適化
アクセスパターン分析
| フェーズ | 特性 | 最適ストレージクラス |
|---|---|---|
| アップロード直後(0〜30日) | 最もアクセス頻度が高い(ユーザーアクセス・端末保存・解析処理・月1フォトブック提案) | S3 Standard |
| 30日以降 | 極端にアクセス頻度が落ちるが、UXのためリアルタイム性は維持必要 | Glacier Instant Retrieval |
- 30日間のライフサイクルルールで S3 Standard → Glacier Instant Retrieval に自動移行
- 取り出し料金が月1回のフォトブック・写真プリント自動提案に影響するため、最初の1ヶ月は Standard を維持する設計
→ 詳細: S3ライフサイクル戦略(みてね)
動画配信(HLS)におけるライフサイクルルールの活用
- アプリ上の動画再生は HLS(HTTP Live Streaming) を利用
- HLSデータがS3に存在しない場合はリアルタイムに生成して配信
- 一定期間経過後にHLSファイルを削除することで、再生用動画の保存コストを削減
HLS保存期間の最適化
- 保存期間を長くする → S3ストレージコスト増
- 保存期間を短くする → HLS再生成回数増・EC2コスト増
- 動画再生ログのアクセスパターン分析から「保存期間ごとのコストシミュレーション」を行い、コストが最も低くなる保存期間を算出
→ 詳細: S3ライフサイクル戦略(みてね)
まとめ(スライドより)
ストレージクラスの適切な選択とライフサイクルルールの組み合わせが、大量データのコスト削減に不可欠。アクセスパターンを分析し、ライフサイクルルールを柔軟に活用することで、UXとコスト最適化を両立する。
関連ページ
- fanglang — 登壇者(MIXI SREエンジニア)
- MIXI — みてねの運営組織
- S3ライフサイクル戦略(みてね) — 本発表から抽出した概念ページ