Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
『家族アルバム みてね』 AWSマルチリージョン構成における データベース運用 / Famil...
Search
kohbis
June 08, 2023
Technology
3.7k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
『家族アルバム みてね』 AWSマルチリージョン構成における データベース運用 / FamilyAlbum Database in AWS multi-region
【TimeTree × みてね勉強会】 グローバル対応への挑戦 〜SRE/インフラ編〜
https://mixi.connpass.com/event/285041/
kohbis
June 08, 2023
More Decks by kohbis
See All by kohbis
人にやさしく、AIにやさしく、書き手を選ばないIaCのガードレール再考 / Rethinking IaC Guardrails for Humans and AI Alike
kohbis
6
2.5k
AIに丸投げしないトイル削減 / Eliminating Toil Without Leaving It All to AI
kohbis
5
1.4k
『家族アルバム みてね』における インシデント対応との向き合い方 / Approach incident response in Family Album
kohbis
2
610
Kubernetes環境周りの責任範囲をいい機会なので考える / Taking the Opportunity to Clarify Kubernetes Responsibilities
kohbis
2
480
『家族アルバム みてね』におけるAmazon EKSコストとの向き合い方 / Optimizing Amazon EKS Costs: The FamilyAlbum Case
kohbis
4
1.9k
潜在的課題探索活動の近況報告 / Exploration of latent challenges
kohbis
2
210
いま、あらためて考えてみるアカウント管理 with IaC / Account management with IaC
kohbis
3
1.3k
〜『世界中の家族のこころのインフラ』を目指して”次の10年”へ〜 SREが導いたグローバルサービスの信頼性向上戦略とその舞台裏 / Towards the Next Decade: Enhancing Global Service Reliability
kohbis
4
8k
Grafana MCP serverでなんかし隊 / Try Grafana MCP server
kohbis
0
1.1k
Other Decks in Technology
See All in Technology
生き様としてのSRE
hokkai7go
1
140
OneLakeをデータソースにした AI Search(Foundry IQ)の ライフサイクル管理
ryuseiiida
0
210
視野はAIに、視座は人に / ai-for-breadth-humans-for-perspective
nkzn
6
2.6k
1週間、Opus封印でお願いします
kintotechdev
1
410
新米を「売り越さない」、Aurora DSQLで作る在庫ゼロ死守の限定ドロップEC
yama3133
0
120
仕様駆動開発の、その先へ。決める力と確かめる仕組み
inariku
1
150
Agent Loopを組み込んだ アンビエントなAI機能を実現する / Ambient AI fetures with Agent Loop
nekorush14
0
120
Claude for Google Workspaces ポン出し/claude-for-google-workspace-slide-conversion
emiki
0
13k
書き手が人でもAIでも正しくなる道、SREを埋め込んだDeveloper Platform / tech drivers day8
chmikata
4
860
Agent × Maestro で始める モバイル E2E 端末準備からテスト実行・結果確認まで
sansantech
PRO
0
240
構造で守らせる データ・法務・セキュリティ・開発チームとつくる AI時代のデータガバナンスとデータ基盤のリアル
legalontechnologies
PRO
3
700
[FECONF-2026] 신대륙을 향한 카카오페이증권 프론트엔드 항해기 (이주승)
l1ghthouse
0
330
Featured
See All Featured
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
290
How to build a perfect <img>
jonoalderson
1
6.2k
Technical Leadership for Architectural Decision Making
baasie
3
620
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
23k
The Cult of Friendly URLs
andyhume
79
7k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Transcript
『家族アルバム みてね』 AWSマルチリージョン構成における データベース運用 @kohbis 2023/06/08 TimeTree × みてね勉強会
MIXI, Inc. About Me Kohei SUGIMOTO 株式会社MIXI 2022/04 ~『家族アルバム みてね』
SRE Twitter : @kohbis
MIXI, Inc. Agenda 1. 『家族アルバム みてね』とは 2. 『家族アルバム みてね』の AWS
マルチリージョン構成 3. Amazon Aurora Global Database の活用 4. Amazon DynamoDB Global Tables の活用 5. Amazon ElastiCache for Memcached の活用 6. まとめ
MIXI, Inc. 『家族アルバム みてね』
MIXI, Inc. 子どもの写真・動画を家族で共有し、 コミュニケーションして楽しむサービス
MIXI, Inc. 子どもの写真・動画を、無料・無制限に 共有できるスマートフォンアプリです
MIXI, Inc.
MIXI, Inc. 家族アルバム みてね 世界中の家族の”こころのインフラ”を作る • 2015年4月リリース • 現在7言語・175の国と地域でサービスを提供 •
海外では FamilyAlbum という名称で展開中 • 2022年8月に利用者数が1,500万人を突破 ※1 • 日本国内ではママやパパの半数となる47.1%の 方がご利用 ※2 ※1 iOS・Android™ アプリ登録者数、ブラウザ版登録者数の合計 ※2「みてね」登録時に入力されたお子さまの誕生日と厚生労働省発表「人口動態統計」から算出。2022年8月時点で47.1%
MIXI, Inc. 『家族アルバム みてね』の AWS マルチリージョン構成
MIXI, Inc. 『家族アルバム みてね』のマルチリージョン概要 • 目的は海外ユーザー体験向上 ◦ 近いリージョンにアクセスできる = レスポンスタイム改善
• 現在は 2 リージョン構成 ◦ 東京リージョン(ap-northeast-1) ◦ バージニア北部リージョン (us-east-1) • ユーザー体験につながる特定のAPI ◦ 例 ▪ アプリ起動時 ▪ アルバムや写真の閲覧
MIXI, Inc. 『家族アルバム みてね』の AWS マルチリージョン概要 • API リクエストの振り分け ◦
CloudFront & Route 53 のレイテンシー ルーティング • データベースのレプリケーション ◦ Aurora Global Database ◦ DynamoDB Global Tables • オブザーバービリティ ◦ 東京リージョンの Managed Service for Prometheus にメトリクス集約 本日はデータベース周りのお話
MIXI, Inc. Amazon Aurora Global Database
MIXI, Inc. Amazon Aurora Global Database • ストレージベースの物理レプリケーション • どのリージョンでも通常
1 秒未満の レプリケーション (参考)Cross-region read Replica • バイナリログによる論理レプリケーション • ワークロードの変更率、リージョン間の ネットワークに強く依存 制約に当てはまらない限りは Global Database 推奨 ※ 参考元: https://aws.amazon.com/jp/dynamodb/global-tables/ ※ 2023/06 時点の AWS ドキュメントより
MIXI, Inc. Amazon Aurora Global Database を導入するまで • 当時利用していた RDS
Proxy のサポートがさ れておらず Cross-region Read Replica の検 証からはじめた • 試しに本番環境に作成したところ(みてねの 場合は)ピーク時に数時間レベルのレプリ ケーションラグが発生することが発覚 ⇩ RDS Proxy を頑張って外すしかない! • DB コネクション数の詳細調査 • DB コネクション数を減らすためのチューニ ング
MIXI, Inc. Amazon Aurora Global Database を導入するまで • 主に K8s
と Rails(Puma)のチューニング • 意図せずしてアプリケーションのリソース効率が大幅に改善 • RDS Proxy にかかるレスポンスタイム改善(10~20ms)とコスト削減 • Global Database を導入できるように
MIXI, Inc. Amazon Aurora Global Database を導入、運用してみて • Global Database
へのリージョン追加やクラスター削除(スタンドアロンへ昇格)はダウンタイム なしで実施可能 ◦ プライマリ DB への影響なく「とりあえず試したい!」ができる • レプリケーションが安定してはやい ◦ みてねのワークロードでは 100~300 ms で推移
MIXI, Inc. Amazon Aurora Global Database 運用上の課題 ※2023/06時点 • Aurora
MySQL 最新バージョンへの対応 ◦ 「Global Database ではまだ利用できない」ケースがある ◦ 最新(3.03.*)へのマイナーバージョンアップグレードには Global Database 再作成が必要 • インスタンスサイズの制約 ◦ 最低でも large 以上 ◦ プライマリーとセカンダリーは同じインスタンスサイズを推奨 ▪ ワークロードに対応しきれずセカンダリーの突発的な再起動が発生する可能性 → 開発や負荷が低い場合でもコストミニマムなインスタンスサイズを選択できない • 書き込み転送は検討中 ◦ 当初の目的である「海外ユーザーの閲覧体験」はすでに大きく改善
MIXI, Inc. Amazon Aurora Global Database 導入時のこぼれ話 Global Database とのすれ違いの日々
• RDS Proxy ◦ 2022年10月に RDS Proxy を外す → 12月に Global Database サポート • Aurora MySQL 2 → 3 系へのメジャーバージョンアップグレード ◦ 2023年2月上旬に Global Database 再作成で対応 → 2月下旬に In-place でのメジャーバージョンアップグレードが可能に 逆に言えば、機能アップデート・追従が活発に行われているということ(※希望的観測)
MIXI, Inc. Amazon DynamoDB Global Tables
MIXI, Inc. Amazon DynamoDB Global Tables • 通常 1 秒以内にすべてのレプリカテーブルに伝播
• ローカルのテーブルへの高速な読み取りと書き込 み ユーザーセッションのみ Aurora MySQL から切り出し • セッション管理は高頻度で呼び出される API = アプリ内の多くの操作でユーザー体験に直結 = 書き込み処理だがマルチリージョン化した い! 参考元: https://aws.amazon.com/jp/dynamodb/global-tables/
MIXI, Inc. Amazon DynamoDB Global Tables を導入、運用してみて • Global Tables
の追加、削除が容易 • レプリケーションがみてねのワークロードのピーク時で 1 秒前後で完了 ◦ Aurora Global Database よりは遅いが、みてねのユースケースでは十分に許容できる ◦ 基本的にはローカルでの書き込み/読み込みになるので高速(数 ms)
MIXI, Inc. Amazon DynamoDB Global Tables の注意点 ※2023/06時点 • オペレーションに対するキャパシティユニットの制限
◦ DynamoDB ではリザーブドキャパシティを購入してコスト削減 ◦ Global Tables では 書き込みキャパシティユニット(WCU)ではなくレプリケート書き込み キャパシティユニット(rWCU)で計算される ▪ レプリケート書き込みキャパシティユニット(rWCU) • リージョン分だけ rWCU が増える • リージョンによってユニット単位のコストも異なる ▪ ただし rWCU はリザーブドキャパシティを購入することはできない
MIXI, Inc. Amazon ElastiCache for Memcached
MIXI, Inc. Amazon ElastiCache for Memcached • それぞれのリージョンに ElastiCache for
Memcached クラスターを配置 • 毎回必要なデータ(ユーザーや家族)をキャッ シュしておく ◦ さらなるレスポンス高速化 ◦ マルチリージョン以前から活用 ▪ マルチリージョン構成でさらなる効果 (補足)Amazon ElastiCache for Redis - Global Datastore • ElastiCache for Redis のクロスリージョンリードレプリカクラスターを作成できる • みてねの用途には合わないので現状検討していない
MIXI, Inc. まとめ
MIXI, Inc. まとめ • 『家族アルバム みてね』は海外ユーザー体験向上のためにマルチリージョン化 • Aurora MySQL Global
Database で高速で安定したレプリケーション • DynamoDB Global Tables でピンポイントに利用してさらに改善 • ElastiCache for Memcached で毎回必要なデータをキャッシュして高速化 今回ご紹介したのは2022年10月のマルチリージョン化後に さらに試行錯誤して “みてね” に最適なかたちを目指した構成。 ほかの取り組みについても、ぜひブログなどご覧ください! https://team-blog.mitene.us/
MIXI, Inc.