Cloud Spanner をより便利にする運用支援ツールの紹介
by
gree_tech
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Cloud Spanner をより便利に する運用支援ツールの紹介 グリー株式会社 インフラエンジニア 石松佑太
Slide 2
Slide 2 text
2 自己紹介 名前: 石松 佑太 所属: • 開発本部 インフラストラクチャ部 サービスオペレーショングループ サービスオペレーションチーム • RDBMS ユニット 一緒にコーディングするぐらい インコが大好きです!
Slide 3
Slide 3 text
3 Cloud Spanner
Slide 4
Slide 4 text
4 Cloud Spanner とは GCP が提供するデータベースのマネージドサービス • RDBMS の特性を持つ • スキーマ • 強整合性 • SQL クエリ • NoSQL の特性を持つ • 水平方向のスケーラビリティ ( ダウンタイムなしにノード数の増減が可能 )
Slide 5
Slide 5 text
5 Cloud Spanner を利用する上での課題 1.ウォームアップ リリース前に負荷をかけてスプリットを分割させる必要がある → ♨ Spanner 温めるくん 1.オートスケール スケジュールや負荷状況に合わせてオートスケールしたい → 🔧 Spanner 上げ下げくん
Slide 6
Slide 6 text
6 Spanner 温めるくん
Slide 7
Slide 7 text
7 Spanner 温めるくん リリース前にウォームアップを行うツール 発表の流れ 1.ウォームアップの流れ 2.Spanner 温めるくんの特徴 3.Spanner 温めるくんを使った事例
Slide 8
Slide 8 text
8 Spanner 温めるくん: ウォームアップの流れ 準備 ダミーデータ INSERT ダミーデータ SELECT ダミーデータ DELETE ダミーデータ 生成
Slide 9
Slide 9 text
9 Spanner 温めるくん: ウォームアップの流れ 準備 ダミーデータ INSERT ダミーデータ SELECT ダミーデータ DELETE ダミーデータ 生成 事前にスケジュールをスプレッドシートに設定
Slide 10
Slide 10 text
10 Spanner 温めるくん: ウォームアップの流れ 準備 ダミーデータ INSERT ダミーデータ SELECT ダミーデータ DELETE ダミーデータ 生成 Scheduler が各機能の CronJob を作成
Slide 11
Slide 11 text
11 Spanner 温めるくん: ウォームアップの流れ 準備 ダミーデータ INSERT ダミーデータ SELECT ダミーデータ DELETE ダミーデータ 生成
Slide 12
Slide 12 text
12 Spanner 温めるくん: ウォームアップの流れ 準備 ダミーデータ INSERT ダミーデータ SELECT ダミーデータ DELETE ダミーデータ 生成
Slide 13
Slide 13 text
13 Spanner 温めるくん: ウォームアップの流れ 準備 ダミーデータ INSERT ダミーデータ SELECT ダミーデータ DELETE ダミーデータ 生成
Slide 14
Slide 14 text
14 Spanner 温めるくん: ウォームアップの流れ 準備 ダミーデータ INSERT ダミーデータ SELECT ダミーデータ DELETE ダミーデータ 生成 Spanner からダミーデータを削除
Slide 15
Slide 15 text
15 Spanner 温めるくん: 特徴 1 2 SELECT だけで負荷をかけることが可能 背景 リリース後の運用段階でもウォームアップが必要な場合がある • 例: 大規模なスキーマの変更 • 例: 2 日以上の長期メンテ • ( スプリットが削除されてしまうため )
Slide 16
Slide 16 text
16 Spanner 温めるくん: 特徴 1 2 SELECT だけで負荷をかけることが可能 問題 運用段階でダミーデータを INSERT すると、 テーブル内に実データとダミーデータが混在してしまう → 実データを SELECT することで気軽にウォームアップ可能
Slide 17
Slide 17 text
17 Spanner 温めるくん: 特徴 1 2 SELECT する Bot を自動で追加 → CPU使用率が上がるように Bot の台数を自動で調整
Slide 18
Slide 18 text
18 事例: プロダクトリリース前のウォームアップ INSERT レイテンシ悪化 レイテンシ安定 SELECT
Slide 19
Slide 19 text
19 Spanner 上げ下げくん
Slide 20
Slide 20 text
20 Spanner 上げ下げくん Spanner のノード数をオートスケールするツール 発表の流れ 1.オートスケールの流れ 2.Spanner 上げ下げくんの特徴 3.Spanner 上げ下げくんを使った事例
Slide 21
Slide 21 text
21 Spanner 上げ下げくん: オートスケールの流れ 事前にスケジュールをスプレッドシートに設定 準備 ノード数 調整 Cloud Functions 定期実行
Slide 22
Slide 22 text
22 Spanner 上げ下げくん: オートスケールの流れ ノード数を調整する Cloud Functions が定期実行 準備 ノード数 調整 Cloud Functions 定期実行
Slide 23
Slide 23 text
23 Spanner 上げ下げくん: オートスケールの流れ スケジュールと負荷状況に合わせてノード数を調整 準備 ノード数 調整 Cloud Functions 定期実行
Slide 24
Slide 24 text
24 Spanner 上げ下げくん: 特徴 スケジュールに沿ったスケール 1 2 3 例1: 深夜帯にノード数を減らす → コスト削減
Slide 25
Slide 25 text
25 Spanner 上げ下げくん: 特徴 スケジュールに沿ったスケール 1 2 3 例2: ガチャ更新やイベント前にノード数を増やす → 安定稼働
Slide 26
Slide 26 text
26 Spanner 上げ下げくん: 特徴 負荷状況に合わせたスケール 1 2 3 想定以上のリクエストが来た場合はノード数を自動で調整
Slide 27
Slide 27 text
27 Spanner 上げ下げくん: 特徴 ノード数を徐々に下げる 1 2 3 減らす時は少ない台数を10〜30分かけて徐々に減らすことが推奨 自動でやってくれるので便利
Slide 28
Slide 28 text
28 事例: 開発環境におけるノード数の調整 → 深夜に性能を下げてコスト削減 深夜は使っていないので 性能を下げられる
Slide 29
Slide 29 text
29 まとめ
Slide 30
Slide 30 text
30 まとめ ♨ Spanner 温めるくん リリース前に Spanner をウォームアップするツール 特徴 • SELECT だけで負荷をかけることが可能 • SELECT する Bot を自動で追加 🔧 Spanner 上げ下げくん Spanner のノード数をオートスケールするツール 特徴 • スケジュールに沿ったスケール • 負荷状況に合わせたスケール • ノード数を徐々に下げる
Slide 31
Slide 31 text
31