Cloud Spanner vs Cloud SQL
- Cloud SQL
- Spanner
はじめまして。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) 利用料3%OFFや支払代行手数料無料、請求書払い可能などGoogle Cloud (GCP)をお得に便利に利用できます。さらに専門的な知見を活かし、
- Google Cloud (GCP)支払い代行
- システム構築からアプリケーション開発
- Google Cloud (GCP)運用サポート
- Google Cloud (GCP)に関する技術サポート、コンサルティング
など幅広くあなたのビジネスを加速させるためにサポートをワンストップで対応することが可能です。
Google Workspace(旧G Suite)に関しても、実績に裏付けられた技術力やさまざまな導入支援実績があります。あなたの状況に最適な利用方法の提案から運用のサポートまでのあなたに寄り添ったサポートを実現します!
Google Cloud (GCP)、またはGoogle Workspace(旧G Suite)の導入をご検討をされている方はお気軽にお問い合わせください。
メール登録者数3万件!TOPGATE MAGAZINE大好評配信中!
Google Cloud(GCP)、Google Workspace(旧G Suite) 、TOPGATEの最新情報が満載!