Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Cloud Spanner勉強会(最初の一歩編)

Cloud Spanner勉強会(最初の一歩編)

2022年4月18日のクラウド技術情報共有コミュニティ勉強会の資料です。本セッションでは、Google CloudのデータベースサービスであるCloud Spannerについて、最初の一歩編として概要ならびに他のデータベースサービスとの使い分けについて紹介します。

※本資料に含まれる内容は勉強会当時の情報であり、最新の情報とは異なる場合があるためご注意ください。

Satoshi Matsuzawa (Matt)

April 18, 2022
Tweet

More Decks by Satoshi Matsuzawa (Matt)

Other Decks in Technology

Transcript

  1. © Matt. 2022. All rights reserved. 株式会社 日立製作所 / クラウドプロフェッショナルサービス部

    松沢 敏志 Google Cloud | Cloud Spanner勉強会 クラウド技術情報共有コミュニティ勉強会 © Matt. 2022. All rights reserved. API Gateway Web API Database 今回の主役です 図. APIシステムの例 2022年4月18日
  2. © Matt. 2022. All rights reserved. 1 本日のスピーカー 所属: 株式会社

    日立製作所 / クラウドプロフェッショナルサービス部 職歴: - 2007年に日立製作所入社、ソフトウェア開発、Linuxなどの サポートサービスL3、ソリューション企画などを担当 - 2020年4月に日立Gr.のクラウドCoEチーム設立とともに異動、 さまざまな業界のクラウド(AWS/Azure/Google Cloud)活用案件の 技術支援などを主に担当、通称 クラウドCoEの何でも屋 - 2022年3月にクラウドCoEチームとしては解散するも業務は継続 受賞歴: - 2021 APN AWS Top Engineers & APN ALL AWS Certifications Engineers アワード受賞 その他: - 好きなもの = 真っ赤なスポーツカー x ロックミュージック - 趣味 = 投資 x 仕事 x 子供と遊ぶこと 1 © Matt. 2022. All rights reserved. 松沢 敏志(まつざわ さとし)
  3. © Matt. 2022. All rights reserved. 2 Table of Contents

    2 © Matt. 2022. All rights reserved. 以降の勉強会にて初級編、中級編、上級編と拡充していきたい、、、 最初の一歩編、Cloud Spannerとは 3 Cloud Spannerを一言で表すと 4 Cloud Spannerを一枚絵で表すと 5 Cloud Spannerの事例と言えば 10 他のデータベースサービスとの使い分け 11
  4. © Matt. 2022. All rights reserved. © Matt. 2022. All

    rights reserved. 3 Cloud Spannerとは 最初の一歩編
  5. © Matt. 2022. All rights reserved. 4 Cloud Spannerを一言で表すと Googleが自社サービス向けに開発した

    データベース "Spanner(スパナー)" それのマネージドサービスが 今回紹介する "Cloud Spanner" です © Matt. 2022. All rights reserved. 4
  6. © Matt. 2022. All rights reserved. 6 Cloud Spannerを一枚絵で表すと 出典:

    https://github.com/priyankavergadia/GCPSketchnote Google Cloudが提供する フルマネージドなリレーショナル データベース(RDB)サービス RDBのACID特性を保ちつつ、 NoSQLデータベースのような 水平方向へのスケーラビリティ を兼ね備えたデータベース* Google独自の *これらの特性を持つものをNewSQLデータベースとも言う 一応RDBではあるものの既存の RDBMSからの置き換え先としては不向き (その役割はCloud SQLが担う) ゆえに、競合サービスは 「SQLライクな問合せができる 結果整合性/強い整合性を 持たせたNoSQLデータベース」 Amazon DynamoDB や Azure Cosmos DB (もちろんCloud Firestoreも、、、) = のイメージです
  7. © Matt. 2022. All rights reserved. 7 Cloud Spannerを一枚絵で表すと 出典:

    https://github.com/priyankavergadia/GCPSketchnote スパナー君の設定パラメータは たったの2つで超シンプル (1)1ゾーンあたりのノード数(処理ユニット数) (2)シングルリージョン or マルチリージョン スパナー君のイマイチポイント ✓ 日次などスケジュールでバックアップを 取得する機能がない ✓ 負荷に応じてノード数を自動で スケールアウト/インする機能がない *現時点ではコミュニティが公開するサンプルを参考に作りこみが必要 ノードに対する課金は 最低でも1時間分は必要なので 頻繁なスケールインはムダ *ノード追加してから1時間経過以降は分単位で課金
  8. © Matt. 2022. All rights reserved. 8 Cloud Spannerを一枚絵で表すと 出典:

    https://github.com/priyankavergadia/GCPSketchnote ご参考、マルチリージョンasia1の場合 各リージョンにレプリカ2個ずつ配置する形で配置 Zone1 Zone2 Zone1 Zone2 Zone1 Tokyo Region (Default leader) Osaka Region (Replica) Seoul Region (Witness) SPLIT 1 SPLIT 1 SPLIT 1 SPLIT 1 SPLIT 1 SPLIT N SPLIT N ・ ・ ・ ・ ・ ・ SPLIT N ・ ・ ・ SPLIT N ・ ・ ・ SPLIT N ・ ・ ・ : リーダー : RWレプリカ : ウィットネス ソウル(国外)なのがイケてない気持ち悪いポイント、、、 ウィットネスなのでデータまるまるは出てはいかないものの *競合サービスと同等レベル、他社優位性は特になし スパナー君のSLAは、 シングルリージョン: 99.99% マルチリージョン: 99.999% 計画的ダウンタイムなし スケーリング無制限、 自動シャーディング などで実現 ミラーリングとクォーラム で実現
  9. © Matt. 2022. All rights reserved. 9 Cloud Spannerを一枚絵で表すと 出典:

    https://github.com/priyankavergadia/GCPSketchnote 時刻同期とってますよ + Googleのネットワークはすごいですよ っていっているだけ
  10. © Matt. 2022. All rights reserved. 10 Cloud Spannerの事例と言えば みんなの銀行事例:

    https://cloud.google.com/blog/ja/topics/customers/minna-no-ginko-spanner Pokemon GO事例: https://cloud.google.com/blog/ja/topics/developers-practitioners/how-pok25c325a9mon-go-scales-millions-requests ドラクエウォーク事例: https://cloud.google.com/blog/ja/topics/customers/square-enix-colopl-dragonquest-walk-cloud-spanner-gke でも、MySQL のような従来型のデータベースのつもりで 安易に使うと痛い目を見るかも知れません(笑)
  11. © Matt. 2022. All rights reserved. 12 他のデータベースサービスとの使い分け 既存RDBMSの移行先、 汎用用途向きRDB

    Oracleを使いたい Oracleじゃないとダメ SQLライクな問合せ、 強い整合性などを持つ 汎用用途向き 大きなデータを扱った リアルタイム分析向き、 SQLライクな機能はない (Google検索で活用) 低レイテンシを要する キャッシュや一次ストア用途 redis/memcached移行先 余談ですがまだまだあります、、、 BigQuery MongoDB Atlas Datastore データ分析 複雑な検索 マネージド MongoDB 汎用NoSQL ただ後継のFirestore がすでにいるので(ry マルチリージョンに 展開するシステム向き、 なんちゃってじゃない 完全なSQL/整合性
  12. © Matt. 2022. All rights reserved. 13 他のデータベースサービスとの使い分け 既存からの移行? YES

    NO マルチリージョン展開、 かつ両現用運用が必要? Cloud Spanner 既存はOracleで 移行後もOracleを使う? YES NO YES Cloud SQL Oracle on Bare Metal NO ディシジョンツリーの例
  13. © Matt. 2022. All rights reserved. 14 他のデータベースサービスとの使い分け 完全な整合性が必要? NO

    Cloud Spanner YES Firestore YES 複雑な検索やちょっとした データ加工が必要? NO ディシジョンツリーの例
  14. © Matt. 2022. All rights reserved. 15 最初の一歩編のラップアップ © Matt.

    2022. All rights reserved. 15 Cloud SpannerはGoogleが独自に開発した "NewSQLデータベース"のマネージドサービス =RDBとNoSQLデータベースのいいとこどりしたもの いいとこどり=銀の弾丸か?というとそれはNO 少なくと既存のRDBMSからの移行先としては不向き (既存からの置き換えはCloud SQLの役割) ただし、マルチリージョンに展開して両現用運用、 かつ完全な整合性や複雑な検索などを要するシステムには 唯一無二となるデータベース (なのかもしれない)
  15. © Matt. 2022. All rights reserved. 16 次回予告 To be

    continued... 次回以降ではCloud Spannerの基本的な使い方や ベストプラクティス、Tipsなどを紹介していきたいと思います。 (よく質問いただく移行関連、アプリ開発側を楽にする仕組みも盛り込んでいきたい) 16 © Matt. 2022. All rights reserved.
  16. © Matt. 2022. All rights reserved. © Matt. 2022. All

    rights reserved. 17 Cloud Spannerとは 最初の一歩編 完