Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
データベースで見る『家族アルバム みてね』の変遷 / The Evolution of Fam...
Search
kohbis
April 03, 2025
Technology
1.6k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
データベースで見る『家族アルバム みてね』の変遷 / The Evolution of Family Album Through the Lens of Databases
春のSREまつり 〜 大規模サービス "あるある" との戦い事例 〜
https://mixi.connpass.com/event/347532/
kohbis
April 03, 2025
More Decks by kohbis
See All by kohbis
『家族アルバム みてね』における インシデント対応との向き合い方 / Approach incident response in Family Album
kohbis
2
320
Kubernetes環境周りの責任範囲をいい機会なので考える / Taking the Opportunity to Clarify Kubernetes Responsibilities
kohbis
2
400
『家族アルバム みてね』におけるAmazon EKSコストとの向き合い方 / Optimizing Amazon EKS Costs: The FamilyAlbum Case
kohbis
4
1.7k
潜在的課題探索活動の近況報告 / Exploration of latent challenges
kohbis
2
170
いま、あらためて考えてみるアカウント管理 with IaC / Account management with IaC
kohbis
3
1.1k
〜『世界中の家族のこころのインフラ』を目指して”次の10年”へ〜 SREが導いたグローバルサービスの信頼性向上戦略とその舞台裏 / Towards the Next Decade: Enhancing Global Service Reliability
kohbis
4
6.8k
Grafana MCP serverでなんかし隊 / Try Grafana MCP server
kohbis
0
990
Custom Prometheus Exporterによる オブザーバビリティ拡張 / Extending observability with Custom Prometheus Exporter
kohbis
1
290
SREコミュニティイベントとわたし / Me and SRE community events
kohbis
2
310
Other Decks in Technology
See All in Technology
NAB Show 2026 動画技術関連レポート / NAB Show 2026 Report
cyberagentdevelopers
PRO
0
200
【2026年版】 ベクトル検索䛸 Embedding最前線
mocobeta
0
120
Claude Code の Sandbox 機能を Anthropic Sandbox Runtime(srt) で試そう!/lets-play-anthropic-sandbox-runtime
tomoki10
1
600
連合学習と機密コンピューティング
lycorptech_jp
PRO
0
120
Bucharest Tech Week 2026 - Reinventing testing practices in the AI era
edeandrea
PRO
1
160
プロダクト開発から業務改善コンサルまで。事業全体へ「染み出す」ことで広がるエンジニアの可能性
ham0215
0
130
2026TECHFRESH畢業分享會 - 原生還是跨平台? App 開發踩坑實錄
line_developers_tw
PRO
0
1k
Agent Skills設計で柔軟性と硬さのバランスが難しい話
nassy20
0
130
気軽に使える"情報のハブ"としてのNotion活用 〜フロー情報の集積点 と、 Claude Code × Notion AI〜
syucream
1
110
FinOps × AIエージェントで実現する コストインシデントの自動調査
oasis1994liveforever
0
140
GitHub Copilot 最新アップデート – 「一歩先」の実践活用術
moulongzhang
2
360
ACE-Step-1.5で見る 音楽生成AIのしくみと“破綻だけ直す”Retake機能の開発【zennfes spring 2026 登壇資料】
personabb
1
460
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
[SF Ruby Conf 2025] Rails X
palkan
2
1.1k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
250
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Fireside Chat
paigeccino
42
3.9k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
380
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
Crafting Experiences
bethany
1
180
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Transcript
©MIXI データベースで見る 『家族アルバム みてね』の変遷 春のSREまつり 〜 大規模サービス "あるある" との戦い事例 〜
2025/04/03
©MIXI About Me Kohei SUGIMOTO 株式会社MIXI 2022/04 ~『家族アルバム みてね』 SRE
X / mixi2 : @kohbis
©MIXI Contents 『家族アルバム みてね』の • データベースにおけるAWSマネージドサービス活用 • 過去に発生した障害 • 現在直面している課題
主にメインデータベースとなるRDBのお話
©MIXI データベースにおける AWSマネージドサービス活用
©MIXI データベースにおけるAWSマネージドサービス活用(1/5)- 概要 • データベースは基本しんどい(ですよね?) • 「2,500万人利用している大規模サービス」と言いつつサービスとしては成長途中 • クラウドインフラを見ているSREの人的・時間的リソースも限られる •
サービス負荷の行き着くところがデータベース(なことが多い) 『家族アルバム みてね』においてはAWSマネージドサービスを積極活用 サービス成長やアーキテクチャ変更に伴う、適切なサービス移行や選定
©MIXI データベースにおけるAWSマネージドサービス活用(2/5) • 2015年4月 ◦ サービスリリース ◦ Amazon RDS for
MySQL • 2018年4月 ◦ Amazon Aurora MySQL 移行 • 2022年3月 ◦ Amazon RDS Proxy 導入 • 2022年10月 ◦ AWSマルチリージョン化 ◦ Amazon Aurora Global Database 採用 ※ iOS・Android™ アプリ登録者数、ブラウザ版登録者数の合計
©MIXI データベースにおけるAWSマネージドサービス活用(3/5) 2018年4月 Amazon Aurora MySQL 移行 (AWSサービス提供開始は2014年10月) • 高コストパフォーマンス
• ストレージ管理からの開放 2022年3月 Amazon RDS Proxy 導入 • ユーザー数 ≒ DB接続数増加に対応 • (のちに解除) ※ iOS・Android™ アプリ登録者数、ブラウザ版登録者数の合計
©MIXI データベースにおけるAWSマネージドサービス活用(4/5)- Multi-Region 2022年10月 AWSマルチリージョン化 Amazon Aurora Global Database 採用
(リージョン間レプリケーション) • ユーザーに近いリージョンのレプリカから データ読み取り • APIによってプライマリリージョンと同等の レスポンスタイムを実現
©MIXI データベースにおけるAWSマネージドサービス活用(5/5)- Multi-Region Amazon DynamoDB Global Tables • Multi-Writerなセッション管理など ピンポイント利用
Amazon ElastiCache for Memcached • 毎回必要なデータをキャッシュして高速化 ※詳細は『AWSマルチリージョン構成におけるデータベース運用』 https://speakerdeck.com/kohbis/familyalbum-database-in-aws-multi-region
©MIXI データベースにおけるAWSマネージドサービス活用 - Appendix • マネージドサービスだからこそ、新しい機能等には積極的にEarly Adopt ◦ Aurora I/O-Optimizedを有効化し、Write-heavyなワークロードだからこそ
コスト削減&パフォーマンス向上 ※1 ▪ 『DBのコストを半額に!〜Amazon Aurora I/O-Optimizedの活用〜』 https://team-blog.mitene.us/amazon-aurora-i-o-optimized-891130ca63cd ◦ Graviton3ベースのR7gインスタンスに変更し、DBパフォーマンスが改善 ※2 ※1 ワークロードや構成によっては必ずしもコストおよびパフォーマンスが改善しない可能性あり(前述ブログ参照) ※2 最新はGraviton4ベースのR8gインスタンスだが、2025/03時点でReserved Instances購入不可
©MIXI 過去に発生した障害 (ひとつだけ)
©MIXI 過去に発生した障害(1/3) 構成(当時) • Aurora MySQL Writer * 1台 /
Reader * 1台 概要 • DB負荷によりサービス接続性が悪化 • 緊急メンテナンスを実施
©MIXI 過去に発生した障害(2/3) 事象 • 休日ピークタイムに近づくにつれてReaderインスタンスのCPU使用率が高騰 Readerインスタンスが再起動し、すべてのクエリがWriterインスタンスに雪崩れ込む Writerインスタンスの負荷も高騰 ReaderインスタンスにFailoverするも...(以下略)
©MIXI 過去に発生した障害(3/3) 対応 • Readerインスタンスを複数台構成にすることで負荷分散 ◦ 障害発生まで問題なかったがサービス成長に伴い、データベースでは最低限以上の冗長構成 • スロークエリ改善 ◦
サービス成長とともにいつのまにか負荷をかけるようになっていたクエリ ◦ いつのまにかIN句に大量の値が入るようになっていたクエリ ▪ Rails(ActiveRecord)では Model.where(column: array) でいつのまにかarrayが肥大化することがある ◦ Performance InsightsやNew Relicでスロークエリを継続的に発見&解決する運用
©MIXI 現在直面している課題
©MIXI 現在直面している課題(1/2) サイズ(レコード数)が大きすぎてマイグレーションできないテーブル • 通常のALTERでは終わらない • pt-online-schema-changes ※1 も終わらない •
Aurora Blue/Green Deployments ※2 では要件がアンマッチ • gh-ost ※3 はどうだろう イマココ ※1 https://docs.percona.com/percona-toolkit/pt-online-schema-change.html ※2 https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/blue-green-deployments-overview.html ※3 https://github.com/github/gh-ost
©MIXI 現在直面している課題(2/2) 将来的なAuroraの性能&スケール限界 • インスタンスサイズには上限がある ◦ すでに大きめのサイズを利用している ◦ ストレージは自動プロビジョニングだが、一応サイズ上限はある •
一部のテーブルをAuroraクラスター単位で分割はしている • サービス成長に伴うスケール限界がすぐにではないが確実にやってくる • Amazon Aurora Limitless DatabaseやAmazon Aurora DSQLにも期待
©MIXI まとめ そういえばテーマ ”あるある” だった
©MIXI まとめ あるある • まずはAmazon RDS(いまだとAurora)から始める サービス成長やアーキテクチャ変更に伴う、適切なサービス移行や選定 • サービス当初は問題なかった構成が、ある日火をふく 「何か起きてから」でもどうにかなるが、可能ならば適切なキャパシティ計画
• いつのまにか “ただのクエリ” が “スロークエリ” になりうる コード変更がなくとも、時間経過とともに障害や体験悪化の起点になるかも 定期的なスロークエリの棚卸しが理想 データベースはボトルネックになりやすい だからこそご利用は計画的に(言うは易し)
MIXI, Inc.