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
/cloud-spanner-operation-on-merpay
Search
tkuchiki
June 21, 2019
Technology
1.6k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
/cloud-spanner-operation-on-merpay
https://mercari.connpass.com/event/134959/
の発表資料です。
tkuchiki
June 21, 2019
More Decks by tkuchiki
See All by tkuchiki
spanner-autoscalerに学ぶ CRD設計パターン 〜自動化と緊急時対応を両立する Kubernetesコントローラーの作り方〜
tkuchiki
0
240
Lessons from spanner-autoscaler: CRD Design Patterns — Building a Kubernetes Controller that Balances Automation and Emergency Response —
tkuchiki
0
28
Kubernetesの上に作る、統一されたマイクロサービス運用体験
tkuchiki
1
8.3k
メルペイSREチームのオンコール/oncall-merpay-sre
tkuchiki
0
330
/sre-next-2020
tkuchiki
5
16k
/fastly-meetup-3
tkuchiki
0
130
/fastly-yamagoya-meetup-2019
tkuchiki
0
270
2年間運用しているソーシャルゲームのサーバ構成の変遷
tkuchiki
3
5.2k
ソーシャルゲームにおける AWS 移行事例
tkuchiki
21
25k
Other Decks in Technology
See All in Technology
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
150
IR Today: Theory, Practice, and Agents
dtunkelang
0
350
AI駆動開発、viviONの1年 ── うまくいったこと・いかなかったこと
vivion
0
260
[2026-09-30]ロックンロールは鳴り止まないっ - 信頼性かまってちゃん - 「データ駆動を投げ捨ててまで。」追いかける信頼性改善に向けた取り組みの話
tosite
0
210
生成AIで高い生産性を求められて、 悩み、乗り越えた話
mot_techtalk
2
130
雪かき部 #7 もう怖くない!SELECT文!
foursue
0
280
オンラインゲームのシステム全体像 - コロプラ 2026年度 新卒研修
colopl
0
840
Execution in the Kingdom of Agents: Reflections on Abstraction and Complexity
bcantrill
0
870
Codex概要
ymiya55
0
440
Kernel testing frameworks
ennael
PRO
0
110
【データ横丁主催】AI Agentがコンテキストを使って仕事をした後、何が残るのか― 組織の経験を次の判断に引き継ぐ「Agent Memory」
shisyu_gaku
2
330
[2026 Oracle Technical Deep Dive] Apache Iceberg × Oracle AI Database -Oracle Autonomous AI Lakehouseが実現するAI時代のデータ基盤- (2026年9月17日開催)
oracle4engineer
PRO
0
120
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
550
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
270
Designing for Performance
lara
611
70k
Rails Girls Zürich Keynote
gr2m
96
14k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
450
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Fireside Chat
paigeccino
43
4.1k
Transcript
Merpay における Cloud Spanner の オペレーション Merpay SRE @tkuchiki
WHOAMI(1) • @tkuchiki • Merpay SRE 2
Agenda • Cloud Spanner の監視 • Cloud Spanner の backup
• Cloud Spanner の node 数を定期的に変更する 3
Cloud Spanner の 監視
監視 • Metrics は Datadog の GCP Integration で収集 ◦
CPU 使用率 ◦ ディスク使用量 ◦ Spanner API のレイテンシ ◦ Spanner API のステータス ◦ QPS ◦ Session数 ◦ Network I/O • 監視で主に見ているのはCPU 使用率 ◦ その他の metrics は朝会でグラフを見て、予兆がないか確認 • その他の監視は調整中 ◦ e.g. QPS の急激な上昇・減少、 Spanner API ステータス OK の急激な減少、など 5 https://cloud.google.com/monitoring/api/metrics_gcp#gcp-spanner https://www.datadoghq.com/abo ut/press/resources/
CPU metrics • Cloud Spanner の CPU metrics には合計、優先度(low、high)、移動平均24時間 がある
◦ 合計は 優先度 low + high • アプリケーションから実行するクエリは基本的に優先度 high ◦ バッチ読み取りやバッチクエリは優先度 low になるとドキュメントに記載されている ▪ BatchReadOnlyTransaction、ExecuteBatchDml ? 6 https://cloud.google.com/spanner/docs/cpu-utilization
CPU metrics • CPU 使用率の推奨最大値がドキュメントに記載されており、その値を超えた場合は アラートを出すべきとされている ◦ 優先度 high: シングルリージョン
65%、マルチリージョン 45% ◦ 移動平均24時間: 90% • 優先度 low が一定期間高いのも問題とされているので監視が必要 ◦ 一定期間 = 数時間から1日程度 7 https://cloud.google.com/spanner/docs/cpu-utilization
8 合計
9 low priority
10 high priority
11 移動平均24時間
12
13
14
Cloud Spanner の backup
Backup • Cloud Spanner には database を export する機能がある ◦
https://cloud.google.com/spanner/docs/export ◦ Cloud Dataflow を使用して、Cloud Storage に export ◦ Avro & JSON • ただし、定期的に export する機能はない • App Engine cron で export をスケジュール実行している • フルバックアップなので時間がかかる & 容量が大きい 16
17 Cloud Dataflow Cloud Storage Cloud Spanner App Engine cron
& task queue 3.Run Cloud Dataflow 4.Get template 2. Get database names 1.Run Job 6.Export database 5.Run Job 7.Upload Avro & JSON files
Restore • Console から restore 可能 ◦ GCS の path
を指定する • https://cloud.google.com/spanner/docs/import 18
19
Cloud Spanner の node 数を 定期的に変更する
Node 数を変更したいケース • キャンペーン開始や Push 通知、TV 放映などのスパイクアクセスが見込まれる ケース ◦ 事前に
node 数を増やしておくことで対応 • バッチ処理で一時的に Cloud Spanner の CPU 使用率が上昇するケース ◦ 開始時間が明確で、終了時間も予測可能 ◦ Cloud Spanner は 簡単に node 数を増やせるので、定期的に Node 数を増減させたい • Cloud Scheduler の cron ジョブで Cloud Spanner のノード数を変更する方法 ◦ https://tech.mercari.com/entry/2019/05/29/120000 • ※検証段階で未導入 21
22 Cloud Scheduler Cloud Spanner Increase/Decrease NodeCount
Cloud Scheduler から API を実行 • プログラムを書かなくても動かせる • Node 数を絶対値で指定するため、べき等になる
◦ Cloud Scheduler は1回のスケジュールで複数回実行される可能性がある • Node 数を相対値で増減させたい場合はプログラムを書く必要がある ◦ e.g. 3 nodes 増やしたい, + 30% したい 23 https://cloud.google.com/scheduler/docs/creating
24 Cloud Pub/Sub Cloud Scheduler Cloud Spanner Cloud Functions 1.Publish
(increase/decrease) NodeCount 2. Subscribe (increase/decrease) NodeCount 3. (Increase / Decrease) NodeCount
Cloud Scheduler + Cloud Pub/Sub + Cloud Functions • 複数回実行されても問題ないような工夫が必要
◦ (再掲) Cloud Scheduler は1回のスケジュールで複数回実行される可能性がある ◦ Node を増やす分には多少費用が発生するだけなので問題ないが、減らすのが複数回実行される のは危険 ▪ e.g. 現在の node 数から3 node 減らす処理が2回実行されてしまう • Cloud Scheduler を使うのであればこの構成になるが、App Engine cron を使った ほうが一つのサービスで完結するので良さそう 25 https://cloud.google.com/scheduler/docs/creating
26 Cloud Spanner Increase/Decrease NodeCount App Engine cron
今後の展望 • Auto Scaling 対応 • e.g. Datadog Webhooks ->
App Engine / Cloud Functions -> Cloud Spanner API ◦ Datadog の IP ranges が公開されているので制限をかけられそう ◦ `$ curl -s https://ip-ranges.datadoghq.com/ | jq .webhooks.prefixes_ipv4` ◦ Alert 契機の Scaling は考慮することが多そうなので要検証 27
Thank you!