120 Views
April 18, 22
スライド概要
2022年4月18日のクラウド技術情報共有コミュニティ勉強会の資料です。本セッションでは、Google CloudのデータベースサービスであるCloud Spannerについて、最初の一歩編として概要ならびに他のデータベースサービスとの使い分けについて紹介します。
※本資料に含まれる内容は勉強会当時の情報であり、最新の情報とは異なる場合があるためご注意ください。
クラウドCoEの何でも屋と呼ばれてました。クラウド資格いっぱい持ってます。ありがたいことに2021年から3年連続でJapan AWS Top Engineersなどに選出いただきました。とはいえAzureもGoogle Cloudも得意です。SRE/FinOpsなどの方法論の普及啓発にも力を入れてます。好きなものは赤いスポーツカーとロックミュージック、趣味は投資と仕事です(え?w
Google Cloud | Cloud Spanner勉強会 クラウド技術情報共有コミュニティ勉強会 今回の主役です 2022年4月18日 株式会社 日立製作所 / クラウドプロフェッショナルサービス部 松沢 敏志 API Gateway Web API Database 図. APIシステムの例 © Matt. 2022. All rights reserved.
本日のスピーカー 松沢 敏志(まつざわ さとし) 所属: 株式会社 日立製作所 / クラウドプロフェッショナルサービス部 職歴: - 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 子供と遊ぶこと © Matt. 2022. All rights reserved. 1
Table of Contents 最初の一歩編、Cloud Spannerとは Cloud Spannerを一言で表すと Cloud Spannerを一枚絵で表すと Cloud Spannerの事例と言えば 他のデータベースサービスとの使い分け 3 4 5 10 11 以降の勉強会にて初級編、中級編、上級編と拡充していきたい、、、 © Matt. 2022. All rights reserved. 2
最初の一歩編 Cloud Spannerとは © Matt. 2022. All rights reserved. 3
Cloud Spannerを一言で表すと Googleが自社サービス向けに開発した データベース "Spanner(スパナー)" それのマネージドサービスが 今回紹介する "Cloud Spanner" です © Matt. 2022. All rights reserved. 4
Cloud Spannerを一枚絵で表すと 出典: https://github.com/priyankavergadia/GCPSketchnote © Matt. 2022. All rights reserved. 5
Cloud Spannerを一枚絵で表すと Google Cloudが提供する フルマネージドなリレーショナル データベース(RDB)サービス 一応RDBではあるものの既存の RDBMSからの置き換え先としては不向き (その役割はCloud SQLが担う) ゆえに、競合サービスは 「SQLライクな問合せができる 結果整合性/強い整合性を 持たせたNoSQLデータベース」 RDBのACID特性を保ちつつ、 NoSQLデータベースのような 水平方向へのスケーラビリティ を兼ね備えたデータベース* = のイメージです Amazon DynamoDB や Azure Cosmos DB (もちろんCloud Firestoreも、、、) Google独自の *これらの特性を持つものをNewSQLデータベースとも言う 出典: https://github.com/priyankavergadia/GCPSketchnote © Matt. 2022. All rights reserved. 6
Cloud Spannerを一枚絵で表すと スパナー君の設定パラメータは たったの2つで超シンプル (1)1ゾーンあたりのノード数(処理ユニット数) (2)シングルリージョン or マルチリージョン スパナー君のイマイチポイント ✓ 日次などスケジュールでバックアップを 取得する機能がない ✓ 負荷に応じてノード数を自動で スケールアウト/インする機能がない ノードに対する課金は 最低でも1時間分は必要なので 頻繁なスケールインはムダ *現時点ではコミュニティが公開するサンプルを参考に作りこみが必要 *ノード追加してから1時間経過以降は分単位で課金 出典: https://github.com/priyankavergadia/GCPSketchnote © Matt. 2022. All rights reserved. 7
Cloud Spannerを一枚絵で表すと ご参考、マルチリージョンasia1の場合 各リージョンにレプリカ2個ずつ配置する形で配置 Tokyo Region (Default leader) Osaka Region (Replica) Seoul Region (Witness) Zone1 Zone2 Zone1 Zone2 Zone1 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% *競合サービスと同等レベル、他社優位性は特になし 計画的ダウンタイムなし スケーリング無制限、 自動シャーディング などで実現 : ウィットネス ソウル(国外)なのがイケてない気持ち悪いポイント、、、 ウィットネスなのでデータまるまるは出てはいかないものの ミラーリングとクォーラム で実現 出典: https://github.com/priyankavergadia/GCPSketchnote © Matt. 2022. All rights reserved. 8
Cloud Spannerを一枚絵で表すと 時刻同期とってますよ + Googleのネットワークはすごいですよ っていっているだけ 出典: https://github.com/priyankavergadia/GCPSketchnote © Matt. 2022. All rights reserved. 9
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 のような従来型のデータベースのつもりで 安易に使うと痛い目を見るかも知れません(笑) © Matt. 2022. All rights reserved. 10
他のデータベースサービスとの使い分け © Matt. 2022. All rights reserved. 11
他のデータベースサービスとの使い分け 既存RDBMSの移行先、 汎用用途向きRDB マルチリージョンに 展開するシステム向き、 なんちゃってじゃない 完全なSQL/整合性 Oracleを使いたい Oracleじゃないとダメ SQLライクな問合せ、 強い整合性などを持つ 汎用用途向き 大きなデータを扱った リアルタイム分析向き、 SQLライクな機能はない (Google検索で活用) 低レイテンシを要する キャッシュや一次ストア用途 redis/memcached移行先 余談ですがまだまだあります、、、 BigQuery Datastore データ分析 汎用NoSQL 複雑な検索 ただ後継のFirestore がすでにいるので(ry MongoDB Atlas マネージド MongoDB © Matt. 2022. All rights reserved. 12
他のデータベースサービスとの使い分け ディシジョンツリーの例 既存からの移行? NO YES マルチリージョン展開、 既存はOracleで かつ両現用運用が必要? 移行後もOracleを使う? YES Cloud Spanner NO NO Cloud SQL YES Oracle on Bare Metal © Matt. 2022. All rights reserved. 13
他のデータベースサービスとの使い分け ディシジョンツリーの例 完全な整合性が必要? NO YES 複雑な検索やちょっとした データ加工が必要? YES Cloud Spanner NO Firestore © Matt. 2022. All rights reserved. 14
最初の一歩編のラップアップ Cloud SpannerはGoogleが独自に開発した "NewSQLデータベース"のマネージドサービス =RDBとNoSQLデータベースのいいとこどりしたもの いいとこどり=銀の弾丸か?というとそれはNO 少なくと既存のRDBMSからの移行先としては不向き (既存からの置き換えはCloud SQLの役割) ただし、マルチリージョンに展開して両現用運用、 かつ完全な整合性や複雑な検索などを要するシステムには 唯一無二となるデータベース (なのかもしれない) © Matt. 2022. All rights reserved. 15
次回予告 次回以降ではCloud Spannerの基本的な使い方や ベストプラクティス、Tipsなどを紹介していきたいと思います。 (よく質問いただく移行関連、アプリ開発側を楽にする仕組みも盛り込んでいきたい) To be continued... © Matt. 2022. All rights reserved. 16
最初の一歩編 Cloud Spannerとは 完 © Matt. 2022. All rights reserved. 17