Cloud Spanner というサービスをご存知でしょうか? Google が提供するデータベースの一種であり、フルマネージドサービスとしての提供や高い可用性など、様々な特徴を持っています。
本記事では、 Cloud Spanner とは何かという基礎的な内容に加えて、 Cloud Spanner の特徴やメリット、料金体系など、あらゆる観点から一挙にご紹介します。 Cloud Spanner について理解を深めたい方は、ぜひ最後までご覧ください。
目次
Cloud Spanner とは?
Cloud Spanner とは、 Google が提供しているデータベースの一つです。リレーショナルデータベース(以下 RDB と記載)として位置付けられているサービスであり、 Google のパブリッククラウドである Google Cloud の一機能として提供されています。
RDB は日本語で「関係データベース」と呼ばれており、データを複数の表として管理し、それぞれの関係性を定義することにより、複雑なデータ処理を実行できるデータベースです。数あるデータベースの中でも一般的なものとして広く認知されており、多くの企業がビジネスシーンで RDB を活用しています。
しかし、リレーショナルデータベース管理システム( RDBMS )を水平にスケーリングしようとすると、データの一貫性が大きな問題となります。そこで、この課題を解決するために、 RDB 構造のメリットと水平スケーリングを組み合わせた新たなデータベースとして Cloud Spanner が生み出されました。
このように、 Cloud Spanner は RDB の一種として位置付けられているものの、ホリゾンタルスケーリング(水平拡張)をサポートしている点で、従来の RDB とは異なる特徴を有していることを覚えておきましょう。
また、 Cloud Spanner は Google の専用ネットワーク上に構築されているため、状況を問わずに安定した稼働を見込むことができます。さらに、一般的なデータベースシステムは、設計・運用において専門知識が求められるケースが多いですが、 Google Cloud のサービスは使いやすいユーザーインターフェースが大きな特徴であり、公式ドキュメントなどの学習リソースも豊富に提供されているため、初心者でも安心して利用可能です。
このように、 Cloud Spanner は様々なメリットを有したデータベースであると言えるでしょう。実際に多くの企業が、高い信頼性やスケーラビリティ、グローバルなトランザクションのサポートなどの理由から、高負荷なアプリケーションやグローバルサービスのバックエンドとして Cloud Spanner を採用し、自社のビジネス成長に役立てています。
Cloud Spanner の特徴
Cloud Spanner には、具体的にどのような特徴があるのでしょうか?本章では、 Cloud Spanner の特徴をいくつかご紹介します。
可用性が高い
Cloud Spanner の特徴として、可用性が高い点が挙げられます。 Cloud Spanner は 99.999 % の可用性を誇り、ビジネスシーンでも安心して利用できるサービスとなっています。事業を安定的に継続させるためには、データベースの可用性が重要なポイントの一つになるため、この点は Cloud Spanner の大きな魅力だと言えるでしょう。
自動シャーディングを採用している
シャーディングはデータベースにおける負荷分散手法の一つであり、特定のデータベース内に複数テーブルを用意し、各テーブルに保存されているレコードを分散することで負荷分散を実現します。そして、 Cloud Spanner は自動シャーディングを採用しているため、リクエストの負荷やデータ容量に応じてシャーディングを自動的に実行し、パフォーマンスを最適化してくれます。これにより、データベースのスケーリングにかかる工数を削減し、自社の生産性向上に繋がります。
フルマネージドサービスとして提供されている
フルマネージドサービスとは、システムの監視や運用、障害対応などをベンダーが全て担ってくれるサービスのことです。 Cloud Spanner はフルマネージドで提供されているサービスであり、各種作業は Google のエンジニアが一手に対応するため、自社がサーバーの管理運用や保守などにリソースを割く必要はありません。その結果、社員は利益に直結するような重要性の高い仕事に集中でき、自社のビジネス成長に繋げることができます。
Cloud Spanner のメリット
企業が Cloud Spanner を活用することで、様々な恩恵を受けることができます。本章では、 Cloud Spanner のメリットについてご説明します。
柔軟にスケーリング可能
Cloud Spanner は柔軟にスケーリング(使用リソースを自由に増減すること)できる点が大きなメリットの一つです。例えば、シャーディングやトランザクションなどの処理を自動で行い、様々な使用パターンに応じてスケーリングすることが可能なため、リソースの最適化やデータベース運用の生産性向上に繋がります。
強固なインフラを採用
前述した通り、 Cloud Spanner は Google の専用ネットワーク上に構築されており、非常に盤石な環境下においてサービスが運用されています。グローバルで圧倒的なユーザー数を誇る Gmail や YouTube など、他の有名 Google サービスと同じインフラを採用しているため、メンテナンスなどが発生した際にも問題なく稼働を継続でき、低レイテンシ(遅延時間)で安全に利用できるサービスだと言えます。
直感的な操作性
一般的なデータベースでは、操作を行うのに専門的な知識が求められることも珍しくありません。しかし、 Cloud Spanner は直感的に使えるように設計されており、何回かクリックするだけで簡単にデータベースを作成できます。このように、初心者でも安心して利用できる点は、 Cloud Spanner の大きなメリットの一つだと言えるでしょう。
ダウンタイムなしのスキーマ変更
Cloud Spanner を活用することで、列追加やインデックス追加などのスキーマ変更をダウンタイム(システムが機能しなくなる時間)なしで処理できます。そのため、アプリケーションの可用性を担保したまま、状況に合わせてデータベースをカスタマイズすることが可能になります。
ACID の実装
ACID とは、
- Atomicity (不可分性)
- Consistency (一貫性)
- Isolation (独立性)
- Durability (永続性)
の頭文字を取った言葉であり、トランザクション処理を行う際に必要となる特性です。
以下、それぞれの意味を表にまとめます。
性質 | 概要 |
---|---|
Atomicity (不可分性) | トランザクションのタスクが全て実行される(または全く実行されない)ことを保証する性質 |
Consistency (一貫性) | トランザクションの開始・終了時に事前に与えられた整合性を満たすことを保証する性質 |
Isolation (独立性) | トランザクション中の操作の過程が他の操作から隠蔽されることを保証する性質 |
Durability (永続性) | トランザクション操作の完了通知をユーザーが受けた時点で、その操作が永続かつ結果が失われないことを保証する性質 |
そして、 Cloud Spanner はこれらの要素を満たしているため、あらゆるトランザクション処理を問題なく実行でき、ビジネスシーンでも安心して利用できます。
多言語への対応
Cloud Spanner は数多くのプログラミング言語に対応しています。
例えば、
- C#
- C++
- Go
- Java
- Node.js
- PHP
- Python
- Ruby
などが、対応言語として挙げられます。
Cloud Spanner はこれらの様々なプログラミング言語に関するライブラリが豊富に揃っているため、利用シーンに応じて好きな言語を選択し、利用することが可能になります。
Cloud Spanner の料金体系
次に、 Cloud Spanner の料金体系について解説します。
Cloud Spanner は、
- コンピューティング容量
- データベースストレージ
- バックアップストレージ
- ネットワーク使用量
の 4 つの要素に基づき、料金が決まる仕組みとなっています。
以下、カテゴリ別の料金を表にまとめます。
サービス | カテゴリ | 料金 |
---|---|---|
コンピューティング容量 | リージョン構成 | 0.09 米ドル( 100 処理ユニット / 1 時間あたり) |
マルチリージョン構成 | 0.30 米ドル( 100 処理ユニット / 1 時間あたり) | |
データベースストレージ | リージョン構成 | 0.30 米ドル( GB 単位/月) |
マルチリージョン構成 | 0.50 米ドル( GB 単位/月) | |
バックアップストレージ | リージョン構成 | 0.10 米ドル( GB 単位/月) |
マルチリージョン構成 | 0.30 米ドル( GB 単位/月) | |
ネットワーク | 上り(内向き) | 無料 |
同じリージョン内の下り(外向き) | 無料 | |
同じ大陸内のリージョン間の下り(外向き) | 0.10 米ドル( GB 単位/月) |
※2024年2月時点の内容
※参照元:<a href="https://cloud.google.com/spanner?hl=ja#pricing" target="_blank" rel="noopener">Spanner の料金の仕組み</a>
コンピューティング容量に関しては、処理ユニットまたはノード単位でプロビジョニングされる形となり、リージョンインスタンスの料金には、単一リージョンにおける 3 つの読み取り(書き込み)レプリカが含まれています。
また、データベースストレージの料金は、データベースに保存されているデータ量に基づき、レプリカのストレージ費用も含まれているほか、バックアップストレージの料金も同様に、バックアップストレージの量に応じて計算され、レプリカのストレージ費用も含まれています。
このように、 Cloud Spanner は前述した 4 つの要素に基づき、サービスの利用料金が決定されます。なお、 Google 公式サイトには「料金計算ツール」が用意されており、リージョン固有の料金や手数料を含む、 Cloud Spanner の毎月の利用料金を試算できるため、事前のコストシミュレーションに役立てることが可能です。
Cloud Spanner のよくある質問
最後に、 Cloud Spanner に関するよくある質問をご紹介します。
Q. Cloud Spanner では SQL を使用しますか?
A. Cloud Spanner は、同一の豊富な機能セットに対して「 GoogleSQL 」と「 PostgreSQL 」 の 2 つの ANSI ベースの SQL 言語を使用できます。 GoogleSQL は BigQuery と構文を共有しているため、チームのデータ管理のワークフローを標準化できます。また、 PostgreSQL Interface により、既に PostgreSQL を理解しているチームにとっては馴染みやすく、他の PostgreSQL 環境へのスキーマやクエリのポータビリティを得ることができます。
Q.データベースを Cloud Spanner へ移行するにはどうすれば良いですか?
A. Cloud Spanner への移行に関しては、
- ソースデータベース
- データサイズ
- ダウンタイム要件
- アプリケーションコードの複雑さ
- シャーディングスキーマ
- カスタム関数または変換
- フェイルオーバーとレプリケーション戦略
など、多くの要因によって大きく異なる場合があります。スキーマとデータの移行用には HarbourBridge のようなオープンソースツール、評価用には migVisor などのサードパーティツールをおすすめします。移行プロセスの詳細については、 Google が公式ドキュメントを用意していますので、参考までにご覧ください。
なお、当社センティリオンシステム 大阪事業所でも、データベース移行や Google Cloud のスキルアップ支援に関するサポートを提供しています。無料相談も可能なため、関心のある方は問い合わせフォームよりお気軽にご連絡いただければと思います。
Q. Cloud Spanner を運用する際に考慮すべき重要事項は何ですか?
Cloud Spanner はフルマネージドのデータベースであるため、インフラストラクチャの包括的な管理機能が自動的に提供されますが、ワークロードによっては、アプリケーション固有の管理アクションが必要になる場合があります。
また、本番環境を常にスムーズに稼働させるには、適切なアラートとモニタリングをセットアップし、注意深く監視する必要があります。時間の経過とともにトラフィックが有機的に増加した場合やピークトラフィックが想定される場合に、どう対処すべきかや、アプリケーションのバグに起因するデータの破損を処理する方法を理解する必要があります。
加えて、パフォーマンスの問題をトラブルシューティングする方法と、レイテンシ増加の原因となるコンポーネントを把握する方法を理解することも重要なポイントになります。
まとめ
本記事では、 Cloud Spanner とは何かという基礎的な内容に加えて、 Cloud Spanner の特徴やメリット、料金体系など、あらゆる観点から一挙にご紹介しました。
企業が Cloud Spanner を活用することで、柔軟なスケーリングや多言語対応など、様々なメリットを享受できます。この記事を読み返して、サービスの特徴や料金体系などを理解しておきましょう。
当社センティリオンシステム 大阪事業所はこれまでの多くのクラウド開発を支援してきた知見を活かし、Cloud Build の導入支援や CI/CD パイプラインの設計・構築などクラウドを活用した内製化に取り組まれるお客様を全力でサポートします。
以下のような課題をお持ちの方は、ぜひお気軽にご相談ください。
- クラウド活用を推進するための開発体制作りが進まない
- 既存資産をどのようにクラウド移行するか検討する知見が不足している
- 内製化するためのクラウド開発スキルを持った人材が不足している
- コスト削減の実現方法に悩んでいる
- SRE を実現したい
貴社の状況に合わせて、体制づくり支援や開発計画支援、クラウド開発スキルアップ支援など、様々な支援メニューを提供しています。また、今回ご紹介した「 Google Cloud 」に特化したメニューも数多く提供しています。 Google Cloud に関するスキルの底上げや平坦化を検討されている方は、ベストプラクティスセミナーやテクニカル・アドバイザリーサービス、テクニカルコンサルティングなどをご検討ください。
無料相談も可能なため、まずは問い合わせフォームからお気軽にご連絡いただければと思います。
本記事を参考にして、 Google Cloud の導入および Cloud Spanner の活用を検討してみてはいかがでしょうか?