Successfully reported this slideshow.
Your SlideShare is downloading. ×

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

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
Stripe x freee
Stripe x freee
Loading in …3
×

Check these out next

1 of 25 Ad

More Related Content

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

Recently uploaded (20)

Advertisement

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

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

×