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
Kubernetesの上に作る、統一されたマイクロサービス運用体験
tkuchiki
1
8.3k
メルペイSREチームのオンコール/oncall-merpay-sre
tkuchiki
0
320
/sre-next-2020
tkuchiki
5
16k
/fastly-meetup-3
tkuchiki
0
130
/fastly-yamagoya-meetup-2019
tkuchiki
0
260
2年間運用しているソーシャルゲームのサーバ構成の変遷
tkuchiki
3
5.2k
ソーシャルゲームにおける AWS 移行事例
tkuchiki
21
25k
Other Decks in Technology
See All in Technology
俺の仕事は AIに奪われないし、たぶんその BIも要らない
hikaruri
0
520
アプリをもっと"iOSアプリっぽく"する小さな工夫 / Small Touches That Make Your App Feel More Like an iOS App
matsuji
2
960
白金鉱業Meetup Vol.25 アウトカムが二値のデータに対するCausal Impact
brainpadpr
0
250
AgentCore Runtime上にAgentic Coding基盤を構築・展開する際の設計ポイントと限界点 / Design considerations and limitations when building an agentic coding platform on AgentCore Runtime
har1101
5
340
C#コードの結合を可視化する Roslyn解析による設計改善と リファクタリング判断
dora56
0
160
Azure Serverless 2026:Production-ready な AI エージェント基盤 / Azure Serverless 2026: Production-Ready AI Agent Platform
miyake
2
250
AIに任せた品質は、誰が見立てるのか - AI時代のテストマネジメント
nakanao
3
2.3k
銀行勘定系システムにおける開発プロセス刷新×AIによる環境モダナイゼーション / Development Process Transformation and AI-Driven Environment Modernization
muit
1
2.3k
作って終わりじゃないサーバーレス 〜9年運用する大規模EC物流API基盤の設計・運用のリアル〜
zozotech
PRO
0
190
エージェントはローカル、検証はMicroVM — Lambda MicroVMsでつくるServerless CI
fujioka6789
3
390
開発投資の期待値を上げるプロダクトロードマップづくり ~プロダクトエンジニアが越境して事業を伸ばす~
kekekenta
1
220
AIエージェントの権限管理 3: Agentic RAG の Fine grained access control 編
ren8k
0
130
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
72
12k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
320
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.7k
Ruling the World: When Life Gets Gamed
codingconduct
0
340
Unsuck your backbone
ammeep
672
58k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
940
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
550
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Balancing Empowerment & Direction
lara
6
1.3k
Building a Scalable Design System with Sketch
lauravandoore
464
34k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
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!