Cloud Spanner vs Cloud SQL

Cloud Spanner vs Cloud SQL

エンジニアブログ

投稿日:2021/10/21 | 最終更新日:2021/11/17

はじめまして。kyo2bay です。今日は Cloud Spanner と Cloud SQL についてご紹介します。

Google Cloud で リレーショナルデータベースのマネージドサービスを使いたいとき、候補になるプロダクトは Cloud Spanner(以降 Spanner) と Cloud SQL になるかと思います。しかし、両者の違いについて、

    Spanner = Cloud SQL よりスケーラビリティはあるが、かなり高額なやつといった理解に留まっている方もいらっしゃるのではないでしょうか(私がそうでした!)。そこで今日は Spanner と Cloud SQL の違いについて、機能面での共通点/相違点、また料金面で差がどれくらいあるかを整理し、理解を深めたいと思います。

機能比較

Spanner も Cloud SQL もリレーショナルデータベースですので、基本的なRDBにある機能や、SQLは使用することができます。また、両者ともACID(原子性、一貫性、独立性、永続性)や OLTP (Online Transaction processing)機能を備えています。

それ以外の部分では機能、割当、ベストプラクティスなどで異なるところがあるので、表形式で以下に列挙します。

比較表

  Spanner Cloud SQL
顧客管理の暗号鍵(CMEK) OK OK
SLO(稼働率) -マルチリージョン: >= 99.999%
-リージョン: >= 99.99%
->= 99.95%
レプリケーション -読み書きレプリカ
-読み取り専用レプリカ
-ウィットネスレプリカ
-リードレプリカ
テーブル間の関係定義 インターリーブ、外部キー 外部キー
ストレージ上限 1ノードあたり2TB 最大 64 TB まで。マシンタイプによって異なる。

使用料金

  • Spanner の料金は主に、ノード数 + ストレージ量
  • Cloud SQL の料金は主に、インスタンス性能 + ストレージ量

で算出されます。

Spanner

ノード数
Spanner では Cloud SQL のように ノード(インスタンス)の性能を選択することはできないので、ノード数とリージョン構成(リージョン / マルチリージョン)のみによって料金が決定されます。東京 / アジアの場合は下の表になります。

リージョン構成 1 ノードあたりの料金/時間
asia-northeast1 $1.17
asia1 $3.90

ストレージ量
ストレージ料金はリージョン構成(リージョン / マルチリージョン)のみによって料金が決定されます。東京 / アジアの場合は下の表になります。

リージョン構成 料金(GB 単位/月)
asia-northeast1 $0.39
asia1 $0.65

Cloud SQL

インスタンス性能
インスタンスにかかる料金は、CPU数 とメモリ容量で決定されます。東京の場合は下の表になります。なお、CPU を共有するマシンタイプ(db-f1-micro と db-g1-small)は Cloud SQL SLA の対象外となるので、本記事では扱いません。また、以降で記載している「HA」は 「高可用性構成」の意味でリージョン内でデータの冗長性を確保するオプションです。

  料金 / 時間 HA料金 / 時間
vCPU 1 vCPU あたり $0.0537 1 vCPU あたり $0.1074
メモリ $0.0091/GB $0.0182/GB

この表だと実際の料金感覚が掴みづらいと思うので、上記をマシンタイプに置き換えて計算します。

マシンタイプ vCPU数 メモリ 料金 / 時間
db-n1-standard-1 1 3.75 $0.087825
db-n1-standard-1 64 240 $5.6208

基本的にはやはり 「Spanner の方が Cloud SQL より高額である」ということが言えそうです。しかし、上記はHAの料金でないにもかかわらず、db-n1-standard-64 相当のインスタンスの場合
$5.6208 > $1.17 (asia-northeast1 のSpanner 1ノード)

となることから、一概に Spanner の方が Cloud SQL より高くなるわけではない。つまり、「高性能な Cloud SQL インスタンスを利用する場合、Cloud SQL の方が Spanner より高額になる」ということが言えそうです。

ストレージ量
ストレージ料金はリージョン構成(リージョン / マルチリージョン)、SSD / HDD よって料金が決定されます(基本的にはSSDが推奨されています)。東京 / アジアの場合は下記。

SSD / HDD 料金(GB 単位/月) HA料金(GB 単位/月)
SSD $0.221 $0.442
HDD $0.117 $0.234

SSD かつ HAの場合、
$0.442 ≅ $0.39 (Spanner の asia-northeast1)
となることから、availability を加味すれば 「ストレージ料金に関しては Spanner と Cloud SQL に大きな差はない」と言えそうです。

どちらを選択するか

基本的には、

  • グローバル水平スケールが求められる → Spanner
  • 大量データ(64TB以上)を扱う → Spanner
  • 上記に当てはまらない → Cloud SQL

という選択でいいと思います。ですが、やはり Spanner を使用するのは料金面で不安があるといった場合には、まずは 料金計算ツール で料金を予測し、予算アラート を設定することを推奨します。また別の方法としては きめ細かなインスタンスのサイズ設定 を利用するという方法もあります。こちらは 8/25 時点では公開プレビュー版となっていますが、従来 Spanner のノード容量指定が 最低 1000 処理ユニット(PU)から だったものが、最低 100PU から 100 PUのバッチ単位 で指定できるようになったことで、より低価格で Spanner を試せるようになったものです。

まとめ

本記事では Spanner と Cloud SQL について紹介しました。記事を読み終えて、両プロダクトの理解が深まっていれば幸いです。

Spanner は不可能とされていた「トランザクション処理の大規模分散処理」を実現させた「夢のデータベース」でもあります。もし技術者として興味があれば、そのメカニズムを探ってみることも楽しいのではないかと思います。

本記事の執筆にあたり、以下の記事を参考にさせていただきました。
* Google Cloud SQL vs Google Cloud Spanner

執筆者:kyo2bay



弊社トップゲートでは、 Google Cloud (GCP) 、または 20ID以上のGoogle Workspace(旧G Suite) 導入をご検討をされているお客様へ「Google Meet で無料個別相談会」を実施いたします。導入前に懸念点を解決したい方、そもそも導入した方がいいのかをお聞きしたい方はお気軽にお申し込みください!

トップゲート経由でGoogle Cloud (GCP) をご契約いただけるとGoogle Cloud (GCP) の利用料金はずっと3%オフとお得になります!

お申込みはこちら

記事を探す

GCP・G Suite のご相談・
お見積り依頼はお気軽に
お問合せフォーム TEL.03-5840-8815

GCP のご利用をご検討の方、
事例紹介資料

無料ダウンロード

GCP、G Suite、TOPGATE の
最新情報満載!

メルマガ登録

最近の記事

人気の記事一覧

サイト内検索

カテゴリー一覧

タグ一覧

GCP のメリットを最大限に活用しよう!

Google Cloud・Google Workspace のご相談・
お見積り依頼はお気軽に
お問合せフォーム