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
AlloyDB 奮闘記
Search
hatappi
March 19, 2026
Technology
520
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AlloyDB 奮闘記
https://layerx.connpass.com/event/385842
hatappi
March 19, 2026
More Decks by hatappi
See All by hatappi
メルカリのグローバルアプリで挑んだ AlloyDB 運用と課題解決の実践記
hatappi
0
340
Cloudflare を活用して変わったメルカリの開発体験 / How Cloudflare Changed Mercari's Development Experience
hatappi
1
960
RubyではじめるGraphQL
hatappi
0
990
RubyでChainerつくってます!!
hatappi
2
1.6k
TDDな個人開発
hatappi
0
390
できるだけ楽して楽しくRails開発しよう
hatappi
2
400
EKSにRailsをのせた
hatappi
1
1.3k
RubyとApache Arrow
hatappi
0
2.7k
Red Chainerを なぜ作って今後どうするのか
hatappi
2
2.6k
Other Decks in Technology
See All in Technology
実体験から学ぶ分析エージェントの開発と運⽤
recruitengineers
PRO
8
2.4k
S3 Filesで挑む! 八戸せんべい汁の食べ頃問題
usanchuu
0
110
Rust で関数型ドメインモデリング
takonda
0
170
トークン化預金DCJPYの取り組みと活用ユースケース
finengine
0
130
専門領域のAIをどう評価するか
bengo4com
2
280
AI コーディングと人間の認知スループット / CTO Night & Day 2026 Morning Session / AI Coding and Human Cognitive Throughput
prog893
4
1.2k
Optunaの最新リリースv5.0について
pfn
PRO
0
120
AIにシークレットを見せない、WSL2で安全な開発環境
yazm
0
310
⾮構造化データを価値に変える AI エージェント基盤とその組織
ivry_presentationmaterials
0
200
Post AI時代のリファクタリング実践記 / Refactoring in the post AI era
kaminashi
1
270
Temporal 最高!でも改めて「日付」について調べたら人類の負債すぎる件
riyaamemiya
0
180
フィンテック養成勉強会#68
finengine
0
120
Featured
See All Featured
A designer walks into a library…
pauljervisheath
211
25k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.8k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
67k
Design in an AI World
tapps
1
350
Technical Leadership for Architectural Decision Making
baasie
3
600
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
600
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
630
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
Utilizing Notion as your number one productivity tool
mfonobong
4
620
Transcript
1 AlloyDB 奮闘記 ふかぼりSRE ー現場の深淵ー @hatappi
2 • 株式会社メルカリ • 2019年入社 • Cross-Border SRE & Enabling
チーム @hatappi
3 1. メルカリ グローバルアプリ / AlloyDB の紹介 2. 運用の中で起きた課題 3.
どのように解決を試みたか 4. まとめ アジェンダ
4 メルカリ グローバルアプリ / AlloyDB の紹介
5 世界共通アプリ「メルカリ グローバルアプリ」 2025年9月に台湾・香港で提供開始、3年以内に50以上の国や地域への拡大を目指す 海外の購入者と日本国内の事業者の双方の体験を向上し、よりかんたんかつ安心・安全な取引環境構築を実現に向けて 越境取引における購入者・事業者双方の課題を解決し、グローバルでの事業拡大を目指す。 5
6 AlloyDB for PostgreSQL とは • コンピューティングとストレージが分離 ◦ 独立スケーリング可能。セルフマネージド PostgreSQL
比で 4 倍以上高速 • 高可用性 ◦ 99.99% の可用性 SLA(メンテナンス含む)。自動フェイルオーバーと復元 • フルマネージド ◦ Backup、Replication、パッチ適用、メモリ・ストレージ管理を自動化 PostgreSQL 互換の Google Cloud フルマネージド DB
7 運用の中で起きた課題
8 https://speakerdeck.com/mercari/mercari-gears-2025-building-foundation-for-mercaris-global-expansion?slide=56
9 https://speakerdeck.com/mercari/mercari-gears-2025-building-foundation-for-mercaris-global-expansion?slide=59
10 商品情報の同期フロー
11 モジュール間で AlloyDB Cluster を共有しているため 他の Module の処理にも影響が出てしまった 😢 1.
障害や一時的な高負荷により、メッセージの ack に失敗 2. ack されなかったメッセージが大量に再送される 3. 処理のために新規コネクションが増加する 4. コネクションが逼迫する Pub/Sub メッセージの Retry Storm 発生 🔥
12 どのように解決を試みたか
13 • アプリケーションの改善 • Dead Letter Queue 導入 • データベース周りの改善
改善策の全体
14 コネクション管理の最適化 読み込み負荷の分散 データベース周りの改善 Read Replica Managed Connection Pooling
15 改善 Before / After Before After
16 コネクション管理の最適化 読み込み負荷の分散 データベース周りの改善 Read Replica Managed Connection Pooling
17 Read Replica 対応の課題 • Module 数が多いため1つ1つ対応するのには時間がかかる • 開発者がクエリごとにPrimary, Read
Poolのどちらを使用すべきかを 判断するコストを下げたい ◦ これが実現できるとRead Replicaの対応だけでなく将来的に別のデータベースへ 移行したいとなった時などもスムーズに移行できるようになる
18 実装の課題 • Primary と Read Pool で接続先が違うため sql.DB は最低2つ必要になるた
め使い分けクエリ種別で使い分けが必要 • sqlc はクエリ種別でメソッドを分けるが、接続先の選択(Read Replica振 り分け等)は非対応
19 sqlc が生成する DBTX インターフェースを満たす PrimaryとRead Pool へのルー ティング機能をもったクライアントを実装する 解決策
透過的にクエリを振り分ける
20 Read Replica: 解決策 実装イメージ
21 コネクション管理の最適化 読み込み負荷の分散 データベース周りの改善 Read Replica Managed Connection Pooling
22 STEP 1: MCnP を Enable する STEP 2: 各
Module を徐々に MCnP 経由に移行する Managed Connection Pooling (MCnP) 移行ステップ
23 Language Connector で自動 IAM 認証をしている場合は MCnP がサポートされていなかった 壁 ①:MCnP
を Enable できない https://docs.cloud.google.com/alloydb/docs/release-notes#January_21_2026
24 解決策: Manual IAM Authへの切り替え
25 壁 ②:段階的移行ができない Language Connector を使っていると、自動的に MCnP 経由に切り替わる 想定 実際
26 壁 ②:段階的移行ができない Language Connector と Direct Connect で Pooler
の数が違う
27 • Language Connector を使用しない Direct 接続により複数台の Pooler を 活用しつつ
Module ごとの段階的な 移行を実現 • Pooler は台数やコネクション数の 上限があるため引き続きコネクションの設 計は必要 解決策:Direct 接続
28 結果 データベースごとのコネクション数も落ち着いた 🎉
29 まとめ
30 ① Managed サービスは「丸投げ」ではない 内部の挙動(認証方式、Pooler のデプロイ方法、コネクションの経路)を 理解した上で使うことが重要 ② 抽象化レイヤーが移行時には障壁になることも Language
Connector のような便利な抽象化も、移行・チューニング時には「中で 何が起きているか」が見えなくなるリスクがある ③ スケールの挑戦はこれから 今後より多くの国や地域に展開されていく中でどうスケールさせていくかなど SRE と して腕の見せ所になるので楽しみ まとめ