- ホーム
- お役立ち
- Google Service
- Cloud Spanner にまつわる7つの疑問を Google 社員が徹底解説
Cloud Spanner にまつわる7つの疑問を Google 社員が徹底解説
- Cloud
- RDBMS
- Spanner
- データベース
本記事は、2022年4月20日に開催された Google の公式イベント「 Google Cloud ML サミット」において、 Google Cloud のソリューション&テクノロジーグループデータ・プラットフォーム事業開発部長である大久保順氏が講演された「 Cloud Spanner 神話とその真実〜噂の真相にせまる〜」のレポート記事となります。
今回は Google が提供するフルマネージドなリレーショナルデータベース「 Cloud Spanner 」にまつわる7つの疑問の真相について、2022年4月時点の最新情報を交えながらご紹介します。
なお、本記事内で使用している画像に関しては、 Google Cloud ML サミット「 Cloud Spanner 神話とその真実〜噂の真相にせまる〜」を出典元として参照しております。
それでは、早速内容を見ていきましょう。
目次
Cloud Spanner とは?
はじめに、 Cloud Spanner の概要についてご説明します。
Cloud Spanner は Google Cloud (GCP)に内包されているリレーショナルデータベース(RDBMS)です。 RDBMS とはデータベースの一種であり、日本語では「関係データベース」と呼ばれることもあります。
Google Cloud (GCP)には様々なマネージドデータベースが揃っていますが、 その中で Cloud Spanner はモダナイズに適したクラウドネイティブなデータベースとして提供されています。
以下、 Cloud Spanner の主な特徴をご紹介します。
このように、 Cloud Spanner には多くの特徴が存在し、企業が活用することで様々なメリットを享受できます。
それでは、ここから先は Cloud Spanner に関する7つの疑問を紐解いていきましょう。
疑問1.Cloud Spanner は大規模用途向け?
Cloud Spanner は YouTube や Google ドライブ、 Gmail など、全世界で圧倒的なユーザー数を誇る Google サービスを支えており、ピーク時には1秒間に10億回以上のクエリを処理しています。
また、多くのユーザーは可用性やスケーラビリティの観点から Cloud Spanner を小規模なワークロードで活用しています。 Google での活用例としては Google Password Manager というサービスで Cloud Spanner が採用されており、小規模なワークロードを Cloud Spanner 上で実行しています。
こうしたユースケースでは、ダウンタイムがユーザーに与える影響が大きいため、高い可用性が必要になります。さらに、将来的な成長に備えてスケーラビリティの確保も重要なポイントになるため、その観点からも Cloud Spanner は最適なサービスだと言えるでしょう。
このように、 Cloud Spanner は決して大規模用途向けのサービスではなく、小規模なワークロードにも有効に活用できるサービスだとご理解ください。
疑問2.Cloud Spanner は費用が高いのか?
データベースのコストを考える場合、金額そのものよりも TCO ( Total Cost of Ownership :サービスのコストだけではなく管理費や維持費も含めたコストの総額)が重要な判断指標になります。
Cloud Spanner は可用性や価格性能比、運用コストの削減なども含めたデータベースサービスとして、ユーザーに価値を提供しています。従来のデータベース管理では、データセンターの準備やハードウェアの調達などの作業をすべて自社が行う必要がありましたが、 Cloud Spanner は フルマネージドサービスで提供されているため、これらの手間・コストを削減できます。
さらに Cloud Spanner では、2021年に「 Granular Instance Sizing 」という新機能をリリースしました。これは「 Processing Unit (処理ユニット)」という新しい単位でコンピューティング容量を指定できるものであり、従来の 1/10 からリソースの割当が可能になったことで、よりコストを抑えることができます。
そして、2022年3月には Cloud Spanner の「 Cloud Spanner Committed Use Discount (確定利用割引)」が発表されました。下図の通り、利用期間をあらかじめコミットすることで、 Cloud Spanner をお得な料金で使うことができます。
このように、 Cloud Spanner は決して費用が高いサービスではなく、コストを抑えるための新機能や割引制度などが次々とリリースされています。
疑問3.スケール、整合性、レイテンシーの間でトレードオフが必要?
インスタンスやユースケースの構成によっては、スケール、整合性、レイテンシーのいずれかを選ぶ必要がないように Cloud Spanner を使用できます。
Cloud Spanner は Paxos ベースの同期レプリケーションにより、強いデータ整合性を提供しており、マルチリージョン構成でも書き込みレイテンシーが許容範囲内に収まるよう、地理的な構成に注意深く設計されています。また、ユースケースによっては各ゾーンに存在するレプリカをうまく活用し、より低いレイテンシーで読み込みを行うことが可能です。
このように、 Cloud Spanner は状況に応じて柔軟に使用することができるため、スケールや整合性、レイテンシーなどを担保しつつ、サービスを運用することができます。
疑問4.Cloud Spanner は独自のインターフェースしか存在しない?
Cloud Spanner は独自のインターフェースしか存在しないと思われがちですが、実際には ANSI 2011 準拠の SQL や REST 、 gRPC API インターフェースに加えて、 PostgreSQL と互換性を持つインターフェースを提供しています。
また、各種 ORM ( Object Relational Mapping )マッパーへの対応が進み、アプリケーション開発者は Cloud Spanner 独自のインターフェースを意識せずにコードを書くことが可能です。
Cloud Spanner の PostgreSQL Interface は一般的なクエリ構文や関数、演算子を含む、オープンソースの PostgreSQL の豊富なサブセットを提供します。
また、下図は Postgres と Cloud Spanner PostgreSQL Interface の互換性の違いを示しています。それぞれの円が重なり合う部分が Postgres の互換性として、 Postgres インターフェースが持っている互換性となっています。
さらに顧客エクスペリエンスとしては、データベースを構築する際に標準の Cloud Spanner の SQL を使用するか、または Postgres 互換の SQL を使用するかを選ぶだけのシンプルで簡単な方法となっています。そして、 Postgres 互換の SQL でデータベースを作成した場合、 Postgres の SQL を Cloud Spanner 上で実行することができます。
加えて、 ORM を使うことでデータベースエンジンごとの差異を吸収し、アプリケーション開発者がバックエンドのデータベースの種類を意識することなく、アプリケーションコードの記述が可能になります。
Cloud Spanner では次の各種 ORM に対応しています。
このように、 Cloud Spanner は様々なインターフェースに対応しており、各種 SQL や ORM を活用することで手間なく扱うことができます。
疑問5.Cloud Spanner は管理コンソールからしか監視を行うことができない?
Cloud Spanner は管理コンソール以外にも様々な監視方法に対応しています。例えば、 Cloud Spanner のクライアントライブラリは OpenCensus によるメトリクス収集とトレーシングをサポートしています。
また、 Cloud Spanner は OpenTelemetery レシーバーにも対応しており、 Cloud Spanner のシステムテーブルからのメトリクスを Prometheus と Grafana を使用して可視化することもできます。
以下、 Prometheus と Grafana による可視化のイメージです。人間が直感的に理解できるよう、ビジュアライズされていることがわかると思います。
このように、 Cloud Spanner はコンソールだけではなく、様々な監視方法に対応しています。
疑問6.Cloud Spanner は複数リージョンを使うグローバル用途にのみ向いている?
すべてのリソースが1つの Google Cloud (GCP)リージョン内に存在するシングルリージョン構成の場合でも、高可用性やスケーラビリティといった Cloud Spanner の持つ特長は変わりません。
なお、マルチリージョンインスタンス構成については、アプリケーションが複数の地域でワークロードを実行する場合や、ビジネスで 99.999% の可用性 SLA が求められるようなリージョン障害に備える必要があるユースケースに向いていると言えます。
以下、シングルリージョン構成時の Cloud Spanner のアーキテクチャを示した図です。
コンピュート node と分散ストレージ上のデータは、リージョン内の3つのゾーンに複製されています。また、データは同期レプリケーションにより、強い整合性を持った複製を保持しています。さらにシングルリージョン構成では、 99.99 % の可用性 SLA とゾーンの障害に対する保護が適用されます。
このように、 Cloud Spanner は複数リージョンを使うグローバル用途だけではなく、シングルリージョン構成でも高いパフォーマンスを発揮します。
疑問7.スキーマ変更すると大規模なロックがかかる?
Cloud Spanner はスキーマ変更時に大規模なロックがかかると思われていますが、実はスキーマ変更中でもデータの読み書きを継続することができます。
Cloud Spanner にはテーブルレベルのロックが存在せず、マルチバージョン同時実行制御アーキテクチャにより、スキーマとデータの同時実行バージョンを管理しています。そのため、スキーマ更新を行う際にテーブルにどれだけデータが入っていても、データの読み書きを継続可能です。
このように、 Cloud Spanner はスキーマ変更すると大規模なロックがかかる、というのは誤った認識です。正しく理解しておきましょう。
Cloud Spanner に関する Q&A
Q.Cloud Spanner の名前の由来は何ですか?
A.Cloud Spanner のサービス名の由来は諸説ありますが、一説によると「 Spanner 」という単語は「様々な課題を解決できる万能な道具」という意味で海外で使われているため、これを基に命名したと言われています。
Q.MySQL には対応していませんか?
A.2022年4月時点では対応していません。今後のアップデートにご期待ください。
Q.1/10 Processing Unit での設定だとしても仕組みとしては 1 node と同じと考えて良いですか?
A.はい、仕組みや内部の挙動はまったく同じです。
Q.Cloud Spanner を小さい単位で使用したいのですが最小単位は下がらないですか?
A.2022年4月時点では「 1/10 Processing Unit 」が最小単位です。より小さい単位については今後のアップデートにご期待ください。
Q.Django ORM などを利用した際の性能劣化はどの程度ですか?
A.Cloud Spanner のデータベースサービスとしてのオーバーヘッドはありません。
Q.BigQuery と Cloud Spanner の違いは何ですか?
A.BigQuery は大規模なユースケースに対応できる分析用のデータストア・クエリエンジンであるため、主に自社データを分析するために使われるサービスです。一方、 Cloud Spanner はトランザクション目的のデータベースであるため、業務システムやアプリケーションのデータストアとして OLTP 用途で使われるサービスです。
まとめ
本記事では、 Google が提供するフルマネージドなリレーショナルデータベース「 Cloud Spanner 」にまつわる7つの疑問の真相について、2022年4月時点の最新情報を交えながらご紹介しました。 Cloud Spanner の適用範囲はとても広いことをご理解いただけたのではないでしょうか?
以下、 Cloud Spanner の特徴を再度まとめます。
このように、 Cloud Spanner には3つの大きな特徴があります。このうち、自社システムが1つでも必要な場合は Cloud Spanner の利用を検討してみてください。仮に2つ以上必要であれば、 Cloud Spanner がとてもオススメな選択肢になると言えます。
本記事を参考にして、 Cloud Spanner の導入を検討してみてはいかがでしょうか?
弊社G-genでは、Google Cloud (GCP)支払代行手数料無料、請求書払い可能などGoogle Cloud (GCP)をお得に便利に利用できます。さらに専門的な知見を活かし、幅広くあなたのビジネスを加速させるためにサポートをワンストップで対応することが可能です。
Google Workspace(旧G Suite)に関しても、実績に裏付けられた技術力やさまざまな導入支援実績があります。あなたの状況に最適な利用方法の提案から運用のサポートまでのあなたに寄り添ったサポートを実現します!
Google Cloud (GCP)、またはGoogle Workspace(旧G Suite)の導入をご検討をされている方はお気軽にお問い合わせください。
Contactお問い合わせ
Google Cloud / Google Workspace導入に関するお問い合わせ