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
550
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
360
Cloudflare を活用して変わったメルカリの開発体験 / How Cloudflare Changed Mercari's Development Experience
hatappi
1
970
RubyではじめるGraphQL
hatappi
0
990
RubyでChainerつくってます!!
hatappi
2
1.6k
TDDな個人開発
hatappi
0
400
できるだけ楽して楽しく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
AWS Quick 入門 | 目指せ Quick マスター 01
inariku
PRO
2
250
少ない人手 限られた予算 それでも守る 消せない・見つける・戻れる オールハザード型BCP on AWS / 20261107 Mitsutoshi Matsuo
shift_evolve
PRO
0
320
DBTS2026 盛り上がってますか!?Databricksが実現するAI時代のデータ基盤
akuwano
1
200
[JAWS Festa 2026]一番いい仕事は、請求書に現れない / jawsfesta2026
sh_fk2
2
420
Cloudflareの向き先
chimame
1
150
アラートを見直していたら営業組織への理解にちょっとだけ繋がった話
z63d
0
100
Software Engineering in an AI-Driven World
erikjhordan_rey
0
130
仕様と現実の間で落とし所を探るリモートMCPの認証・認可 — Sansanの認証基盤における課題と実践
sansantech
PRO
2
200
IBC 2026 動画技術関連レポート / IBC 2026 Report
cyberagentdevelopers
PRO
2
450
自律的なチームを作るためにTechPMがやらないこと
ny7760
1
530
AWS基盤改善を支える 私たちの理念と行動指針
kentosuzuki
0
140
内製アプリとClaudeスキルのセキュリティチェック、 Backlogの課題で回しています。
ayaka_egaaa
0
160
Featured
See All Featured
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1.3k
Odyssey Design
rkendrick25
PRO
2
930
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Side Projects
sachag
456
43k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
320
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
930
A Modern Web Designer's Workflow
chriscoyier
699
190k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
320
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
2
440
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
970
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 と して腕の見せ所になるので楽しみ まとめ