Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Cloud Spanner をより便利にする運用支援ツールの紹介
gree_tech
PRO
November 11, 2021
Technology
0
100
Cloud Spanner をより便利にする運用支援ツールの紹介
GREE Tech Conference 2021 で発表された資料です。
https://techcon.gree.jp/2021/session/ShortSession-6
gree_tech
PRO
November 11, 2021
Tweet
Share
More Decks by gree_tech
See All by gree_tech
基調講演-サステナブルなチームであるために-
gree_tech
PRO
0
280
クリエイターツール「QUANT」の開発の話 & クライアントに寄り添ったデータ分析基盤の構築
gree_tech
PRO
0
220
爆速で成長するおでかけ情報サービスの成長を支えるデザインと開発の取り組みについて
gree_tech
PRO
0
350
グリーの新卒1年目が半年間働いて感じたグリーのカルチャー 〜新卒でもこんなに任せて貰えるんですか!?〜
gree_tech
PRO
0
350
クラウド - オンプレ間の通信品質向上作戦!〜ネットワーク編〜
gree_tech
PRO
0
190
よくわかる!「データアナリスト」の作り方 〜とある新卒の成長物語〜
gree_tech
PRO
0
400
事業環境の変化に対応するインフラ組織 その取り組みと現状
gree_tech
PRO
0
270
簡単!Slack+GAS+GCPでIT棚卸自動化
gree_tech
PRO
0
260
GREE VR Studio Laboratory - UXDev R&D Summary 2022
gree_tech
PRO
0
670
Other Decks in Technology
See All in Technology
CSS Variable をもっと活用する / Kyoto.js 18
spring_raining
2
880
Periodic Multi-Agent Path Planning
hziwara
0
110
地方自治体業務あるある ーアナログ最適化編-
y150saya
1
270
AWS Cloud Forensics & Incident Response
e11i0t_4lders0n
0
380
Exploring MapStore Release 2022.02: improved 3DTiles support and more
simboss
PRO
0
370
re:Inventで発表があったIoT事例の紹介と考察
kizawa2020
0
190
データ分析基盤の要件分析の話(202201_JEDAI)
yabooun
0
270
組織に対してSREを適用するとどうなるか
kuniim
7
2.8k
CES_2023_FleetWise_demo.pdf
sparkgene
0
120
MarvelClient Upgrade 64bit クライアントへの自動アップグレード設定
mitsuru_katoh
0
160
cdk deployに必要な権限ってなんだ?
kinyok
0
180
Kaggleシミュレーションコンペの動向
nagiss
0
270
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
59
5.7k
Practical Orchestrator
shlominoach
178
8.9k
How To Stay Up To Date on Web Technology
chriscoyier
779
250k
Testing 201, or: Great Expectations
jmmastey
25
5.7k
How GitHub (no longer) Works
holman
298
140k
Large-scale JavaScript Application Architecture
addyosmani
499
110k
A Philosophy of Restraint
colly
193
15k
What's in a price? How to price your products and services
michaelherold
233
9.7k
Building Your Own Lightsaber
phodgson
96
4.9k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
657
120k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
236
1.1M
Web development in the modern age
philhawksworth
197
9.6k
Transcript
Cloud Spanner をより便利に する運用支援ツールの紹介 グリー株式会社 インフラエンジニア 石松佑太
2 自己紹介 名前: 石松 佑太 所属: • 開発本部 インフラストラクチャ部 サービスオペレーショングループ
サービスオペレーションチーム • RDBMS ユニット 一緒にコーディングするぐらい インコが大好きです!
3 Cloud Spanner
4 Cloud Spanner とは GCP が提供するデータベースのマネージドサービス • RDBMS の特性を持つ •
スキーマ • 強整合性 • SQL クエリ • NoSQL の特性を持つ • 水平方向のスケーラビリティ ( ダウンタイムなしにノード数の増減が可能 )
5 Cloud Spanner を利用する上での課題 1.ウォームアップ リリース前に負荷をかけてスプリットを分割させる必要がある → ♨ Spanner 温めるくん
1.オートスケール スケジュールや負荷状況に合わせてオートスケールしたい → 🔧 Spanner 上げ下げくん
6 Spanner 温めるくん
7 Spanner 温めるくん リリース前にウォームアップを行うツール 発表の流れ 1.ウォームアップの流れ 2.Spanner 温めるくんの特徴 3.Spanner 温めるくんを使った事例
8 Spanner 温めるくん: ウォームアップの流れ 準備 ダミーデータ INSERT ダミーデータ SELECT ダミーデータ
DELETE ダミーデータ 生成
9 Spanner 温めるくん: ウォームアップの流れ 準備 ダミーデータ INSERT ダミーデータ SELECT ダミーデータ
DELETE ダミーデータ 生成 事前にスケジュールをスプレッドシートに設定
10 Spanner 温めるくん: ウォームアップの流れ 準備 ダミーデータ INSERT ダミーデータ SELECT ダミーデータ
DELETE ダミーデータ 生成 Scheduler が各機能の CronJob を作成
11 Spanner 温めるくん: ウォームアップの流れ 準備 ダミーデータ INSERT ダミーデータ SELECT ダミーデータ
DELETE ダミーデータ 生成
12 Spanner 温めるくん: ウォームアップの流れ 準備 ダミーデータ INSERT ダミーデータ SELECT ダミーデータ
DELETE ダミーデータ 生成
13 Spanner 温めるくん: ウォームアップの流れ 準備 ダミーデータ INSERT ダミーデータ SELECT ダミーデータ
DELETE ダミーデータ 生成
14 Spanner 温めるくん: ウォームアップの流れ 準備 ダミーデータ INSERT ダミーデータ SELECT ダミーデータ
DELETE ダミーデータ 生成 Spanner からダミーデータを削除
15 Spanner 温めるくん: 特徴 1 2 SELECT だけで負荷をかけることが可能 背景 リリース後の運用段階でもウォームアップが必要な場合がある
• 例: 大規模なスキーマの変更 • 例: 2 日以上の長期メンテ • ( スプリットが削除されてしまうため )
16 Spanner 温めるくん: 特徴 1 2 SELECT だけで負荷をかけることが可能 問題 運用段階でダミーデータを
INSERT すると、 テーブル内に実データとダミーデータが混在してしまう → 実データを SELECT することで気軽にウォームアップ可能
17 Spanner 温めるくん: 特徴 1 2 SELECT する Bot を自動で追加
→ CPU使用率が上がるように Bot の台数を自動で調整
18 事例: プロダクトリリース前のウォームアップ INSERT レイテンシ悪化 レイテンシ安定 SELECT
19 Spanner 上げ下げくん
20 Spanner 上げ下げくん Spanner のノード数をオートスケールするツール 発表の流れ 1.オートスケールの流れ 2.Spanner 上げ下げくんの特徴 3.Spanner
上げ下げくんを使った事例
21 Spanner 上げ下げくん: オートスケールの流れ 事前にスケジュールをスプレッドシートに設定 準備 ノード数 調整 Cloud Functions
定期実行
22 Spanner 上げ下げくん: オートスケールの流れ ノード数を調整する Cloud Functions が定期実行 準備 ノード数
調整 Cloud Functions 定期実行
23 Spanner 上げ下げくん: オートスケールの流れ スケジュールと負荷状況に合わせてノード数を調整 準備 ノード数 調整 Cloud Functions
定期実行
24 Spanner 上げ下げくん: 特徴 スケジュールに沿ったスケール 1 2 3 例1: 深夜帯にノード数を減らす
→ コスト削減
25 Spanner 上げ下げくん: 特徴 スケジュールに沿ったスケール 1 2 3 例2: ガチャ更新やイベント前にノード数を増やす
→ 安定稼働
26 Spanner 上げ下げくん: 特徴 負荷状況に合わせたスケール 1 2 3 想定以上のリクエストが来た場合はノード数を自動で調整
27 Spanner 上げ下げくん: 特徴 ノード数を徐々に下げる 1 2 3 減らす時は少ない台数を10〜30分かけて徐々に減らすことが推奨 自動でやってくれるので便利
28 事例: 開発環境におけるノード数の調整 → 深夜に性能を下げてコスト削減 深夜は使っていないので 性能を下げられる
29 まとめ
30 まとめ ♨ Spanner 温めるくん リリース前に Spanner をウォームアップするツール 特徴 •
SELECT だけで負荷をかけることが可能 • SELECT する Bot を自動で追加 🔧 Spanner 上げ下げくん Spanner のノード数をオートスケールするツール 特徴 • スケジュールに沿ったスケール • 負荷状況に合わせたスケール • ノード数を徐々に下げる
31