SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
pontemでspannerの
バックアップとるぞ
酔いどれGCPUG 2018/06/25
ExistMikan
1
自己紹介という体の宣伝
卒業
GCP大好きカンパニー
・
・ ↑発の某ベンチャー企業に就職
所属
経歴
伊藤勇斗
(Ito Hayato)
@ExistMikan
・ 現職JOIN
Output
なエンジニア
なエンジニア
国内CloudSpanner初事例!
迎車料金無し! 新感覚タクシーアプリフル
クル
フルクル
絶賛社員募集中!!
2
今日の内容
・pontemって?
・spannerって?
・pontem4つの機能
・どういう感じでバックアップ&リストアすんの?
・使ってみようpontem
・やってみようバックアップ
・やってみようリストア
・パフォーマンスに気をつけよう
・ベンチマーク的な話
・コストの話
・まとめ
3
pontemって?
Spanner用のツールっぽい。 4
発端
5
spannerって?
整合性保ちながらガンガンスケールする凄いデータベース
Cloud Spanner
6
pontem4つの機能
7
普通のバックアップ①
整合性チェック付きバックアップ②
普通のリストア③
整合性チェック付きバックアップ④
正常に終了したかどうかをチェックしてくれるタイプ。
バックアップ対象のテーブルのリスト及び行の数をチェックする。
各値の中身まではチェックされない。
②の話と同一。
どういう感じでバックアップ&リストアすんの?
8
Dataflow、Spanner、GCSの3種で実行
Cloud
Dataflow
Cloud
Storage
Cloud
Spanner
Cloud
Dataflow
Cloud
Storage
Cloud
Spanner
バックアップ
リストア
つかってみようpontem
9
環境
java8 maven3 Google Cloud Shell
認証情報
ソース
pontem
git clone
サービスアカウントの
キー.json
事前準備
dataflow
GCS
bucket
Spanner
Instance, db, table
やってみようバックアップ
10
Spanner
GCS
GCS
作業エリア
やってみた
11
下記のようなやる気のないサンプルデータを入れてみた。
(pontem_table1はデータなし)
Cloud Shellにシェル(sample.sh)突っ込んで実行。
はたらくデータフロー
12
トランザクション貼って
spannerから読んで
データ変換して
中身をカキコム
この列はテーブルの
一覧を読み書き
このあたりはテーブルごとに処理。
GCS
13
やってみようリストア
14
Spanner
出力先
GCS
リストアする
ファイル
一応の仕込み
15
元のDBにデータを追加。
リストアしたものにこれが入ってなければオッケー。
リストア失敗
16
既存のdb指定したら上書きみたいなことが起こるのかなと思ったらそんなことは無かった。ダメらしい。
ソース見ても上書きオプションとか無いっぽい。
Database already exist
気を取り直して再実行
17DBはpontem-db-2と指定。バックアップした内容が再現された。
リストア運用のイメージ?
18
データにやばいことがおこった!
spannerへのアクセスを遮断
ステークホルダー様方に告知
既存インスタンスの名前を変える (退避目的)
新規インスタンス作成 (既存と同じ名前) 気のせいじゃなければDB名が変えられない
(コンソール調べ)
のでインスタンスまるごと行くしかない?GCSから新規インスタンスに対してリストア実行
データ戻る
うれしい
もし複雑なケースでなければ、
バックアップからおかしくなるまでの差分を、
ここからクエリで引っ張って新しいDBに入れるとかもアリか?
色々確認して色々連絡出す
やってみた感想
19
ほぼCloudConsoleだけで検証できたので
楽で良かった(小並感)
実際のソースはどうなってるの話
20
・・・は筆者が調査サボってたので全然紹介できなかったりする
基本的にGCSとspanner繋いでるだけなのでそんなに難しくは無いはず。
今回紹介できなかった整合性チェックとかも興味深い
パフォーマンスに気をつけよう
1.クォータ気をつけよう
Quotaをチェック。Dataflowを沢山つかうとCPUs(all regions),In-use IP addresses, CPUsあたりが伸びる。    
Persistent Disk Standard(GB)も要チェック。
2.SpannerのCPUが75%超えないかチェック
Spannerのパフォーマンスを維持するにはCPU使用率が75%くらいになったらノードを増やすことを検討すべし
3.Dataflowのワーカーをいい感じにしよう
早くやりたいなら増やそう。SpannerのCPUが上がって困るなら、ノード数UPでぶん殴るか、maxNumWorkersで数を制
限するかという感じ
4.同じリージョンで組もう
spannerとgcsとdataflow。領域別にしたら遅くなったり色々困るので。
21
ベンチマーク的な話
バックアップとリストアの必要時間についてのポイント
Spannerノード数
Dataflowワーカー数
Dataflowで使用可能な永続ディスク
親子表の数
リストア
①親
②子
ノード20、ワーカー1000(全部で250,000GB)で実行した場合の例
圧縮率
(減った割合)
34%
56.3%
56.7% 22
コストの話
バックアップとリストアの時にかかるコストとは?
Dataflow jobs (CPU,storage,memory)
GCS (network, storage)
Spanner (network, additional nodes)
サンプル
データサイズ: 2TB
Dataflow
ワーカー : 750
ストレージ : 250TB
GCS : 2TB
Spannerノード : 10
1日約300ドル・・・!
バックアップの場合。多分1日っていうより1回。
ベンチマークサンプルと合わせて見ると、かかる時間は約1時間くらいか
→ それが3時間くらいでゆっくりでいいならコストは落とせるだろうが。。
内訳知りたい。。。見れてない。。。 23
まとめ
24
導入
簡単で良い。仕組みもわかりやすい。
パフォーマンス
意外と時間かかる?イメージ。(サイズに対して妥当?)
コスト
大分気をつける必要あり。
パフォーマンスとトレードオフだが、、
全量バックアップなので色々しょうがない??
ご清聴ありがとうございました!

Más contenido relacionado

Similar a pontemでspannerのバックアップとるぞ

国内Cloud spanner初事例!「迎車料金無し!新感覚タクシーアプリ「フルクル」」
国内Cloud spanner初事例!「迎車料金無し!新感覚タクシーアプリ「フルクル」」 国内Cloud spanner初事例!「迎車料金無し!新感覚タクシーアプリ「フルクル」」
国内Cloud spanner初事例!「迎車料金無し!新感覚タクシーアプリ「フルクル」」
Hayato Ito
 
Scrum始めました
Scrum始めましたScrum始めました
Scrum始めました
minamo
 
A2i 20110728 for_slide_share
A2i 20110728 for_slide_shareA2i 20110728 for_slide_share
A2i 20110728 for_slide_share
Kotaro Haruta
 
電通、リクルート、サントリーショッピングクラブ、有名企業がいち早く選んだ kintone を徹底解説
電通、リクルート、サントリーショッピングクラブ、有名企業がいち早く選んだ kintone を徹底解説電通、リクルート、サントリーショッピングクラブ、有名企業がいち早く選んだ kintone を徹底解説
電通、リクルート、サントリーショッピングクラブ、有名企業がいち早く選んだ kintone を徹底解説
Cybozucommunity
 
Employees become corporate engineers
 Employees become corporate engineers Employees become corporate engineers
Employees become corporate engineers
Takashi Hasegawa
 

Similar a pontemでspannerのバックアップとるぞ (20)

Stripeで決済運用を自動化しよう
Stripeで決済運用を自動化しようStripeで決済運用を自動化しよう
Stripeで決済運用を自動化しよう
 
Reproのオンボーディングの話をします
Reproのオンボーディングの話をしますReproのオンボーディングの話をします
Reproのオンボーディングの話をします
 
TPI NEXT ざっくり概要
TPI NEXT ざっくり概要TPI NEXT ざっくり概要
TPI NEXT ざっくり概要
 
プログラミングで少し世界を広げよう(MPS)
プログラミングで少し世界を広げよう(MPS)プログラミングで少し世界を広げよう(MPS)
プログラミングで少し世界を広げよう(MPS)
 
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けようDjango ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
 
Machine Learning Nagoya 20161015
Machine Learning Nagoya 20161015Machine Learning Nagoya 20161015
Machine Learning Nagoya 20161015
 
Origami studio (ver2) 勉強会 #2 - 仕組みやコンセプトを理解しよう
Origami studio (ver2) 勉強会 #2 - 仕組みやコンセプトを理解しようOrigami studio (ver2) 勉強会 #2 - 仕組みやコンセプトを理解しよう
Origami studio (ver2) 勉強会 #2 - 仕組みやコンセプトを理解しよう
 
3-コンテナスターターパックのご紹介
3-コンテナスターターパックのご紹介3-コンテナスターターパックのご紹介
3-コンテナスターターパックのご紹介
 
センサーxIo tx機械学習が実現する導線分析のビジネス貢献
センサーxIo tx機械学習が実現する導線分析のビジネス貢献センサーxIo tx機械学習が実現する導線分析のビジネス貢献
センサーxIo tx機械学習が実現する導線分析のビジネス貢献
 
国内Cloud spanner初事例!「迎車料金無し!新感覚タクシーアプリ「フルクル」」
国内Cloud spanner初事例!「迎車料金無し!新感覚タクシーアプリ「フルクル」」 国内Cloud spanner初事例!「迎車料金無し!新感覚タクシーアプリ「フルクル」」
国内Cloud spanner初事例!「迎車料金無し!新感覚タクシーアプリ「フルクル」」
 
Cpi mega mix
Cpi mega mixCpi mega mix
Cpi mega mix
 
Re: ご注文は自動化ですか?[2]
Re: ご注文は自動化ですか?[2]Re: ご注文は自動化ですか?[2]
Re: ご注文は自動化ですか?[2]
 
Mashup Awards は 新しい技術を試す 絶好の機会です
Mashup Awards は新しい技術を試す絶好の機会ですMashup Awards は新しい技術を試す絶好の機会です
Mashup Awards は 新しい技術を試す 絶好の機会です
 
Scrum始めました
Scrum始めましたScrum始めました
Scrum始めました
 
A2i 20110728 for_slide_share
A2i 20110728 for_slide_shareA2i 20110728 for_slide_share
A2i 20110728 for_slide_share
 
電通、リクルート、サントリーショッピングクラブ、有名企業がいち早く選んだ kintone を徹底解説
電通、リクルート、サントリーショッピングクラブ、有名企業がいち早く選んだ kintone を徹底解説電通、リクルート、サントリーショッピングクラブ、有名企業がいち早く選んだ kintone を徹底解説
電通、リクルート、サントリーショッピングクラブ、有名企業がいち早く選んだ kintone を徹底解説
 
LT13(前半)Workshipにおけるレコメンドエンジン実装
LT13(前半)Workshipにおけるレコメンドエンジン実装LT13(前半)Workshipにおけるレコメンドエンジン実装
LT13(前半)Workshipにおけるレコメンドエンジン実装
 
mypy - 待望のPython3.9型ヒント対応
mypy - 待望のPython3.9型ヒント対応mypy - 待望のPython3.9型ヒント対応
mypy - 待望のPython3.9型ヒント対応
 
Employees become corporate engineers
 Employees become corporate engineers Employees become corporate engineers
Employees become corporate engineers
 
【Unite Tokyo 2019】SRPで一から描画フローを作ってみた! ~Unity描画フローからの脱却~
【Unite Tokyo 2019】SRPで一から描画フローを作ってみた! ~Unity描画フローからの脱却~【Unite Tokyo 2019】SRPで一から描画フローを作ってみた! ~Unity描画フローからの脱却~
【Unite Tokyo 2019】SRPで一から描画フローを作ってみた! ~Unity描画フローからの脱却~
 

pontemでspannerのバックアップとるぞ