コンテンツに移動
デベロッパー

新しい PostgreSQL Interface により、Cloud Spanner のスケーラビリティと可用性がより広く利用可能に

2021年10月28日
Google Cloud Japan Team

※この投稿は米国時間 2021 年 10 月 13 日に、Google Cloud blog に投稿されたものの抄訳です。

現在、金融サービス、ゲーム、小売りなど多くの業界のお客様が Cloud Spanner を使用して、ダウンタイムのないスケーリングが要求される、特に取り扱いの困難なリレーショナル データベースのワークロードを実行しています。Google Cloud Next ’21 では、Spanner へのアクセスをさらに多数のデベロッパーに開放する、Cloud Spanner の PostgreSQL Interface のプレビューをお知らせしました。この新たな Spanner の利用方法は、企業が信頼を寄せる Spanner のスケーラビリティおよび信頼性と、開発チームの求める PostgreSQL のなじみ深さとポータビリティを融合したものです。PostgreSQL Interface により、開発チームは既存のツールとスキルで、Spanner のグローバルなスケーラビリティ、強整合性、業界トップクラスの 99.999% の可用性を活用できます。その結果、斬新なアプリケーションの構築が簡素化されます。今すぐプレビューにご登録ください。

オペレーショナル データベースの「API」として浮上した PostgreSQL

組織にとって、クラウドでのマネージド サービスへの移行は、データベース使用のあり方を見直し、スケーリングの制限や前時代に設計されたアーキテクチャの複雑さを解消するための、一世代に一度のチャンスです。また組織は、モダナイズに際して、前世代のデータベースの特徴である制限付きの高額なライセンスを回避したいと考えています。

大企業もデジタル ネイティブも、オペレーショナル データベースの共通の「API」として PostgreSQL を使用し、標準化を進めています。PostgreSQL は成熟したオープンソースのデータベースで、その大きなエコシステムは拡大を続けており、複数のベンダーによってサポートされています。堅固な技術基盤を持ち急成長を遂げている PostgreSQL は、柔軟性に重きを置く先見性のある組織にとって、確実な選択肢となっています。

Spanner の PostgreSQL Interface は、多くのデベロッパーにとってなじみ深く、ポータビリティに優れているという PostgreSQL の強みを生かし、開発チームのニーズに対応します。デベロッパーは、業界標準のツールとスキルを使用しながら、Spanner のスケーラビリティと運用効果を手にできます。Spanner PostgreSQL Interface に構築するスキーマとクエリを別の PostgreSQL 環境に容易に移行できることが約束され、チームにとっての柔軟性と安心感が確保されます。これは、金融サービスのような規制対象の業界の組織にとって特に重要です。このような組織は、アプリケーションのポータビリティを実証してビジネス継続性を確保する必要があるためです。

Spanner がデベロッパーになじみ深く、よりポータビリティに優れたものに

Spanner の PostgreSQL Interface の中核的な機能は、PostgreSQL クエリを Spanner の既存の分散クエリ処理およびストレージの基本動作と組み合わせることです。また、クライアントの接続に使用される通信チャネルである PostgreSQL ワイヤ プロトコルにも対応しています。アプリケーションを構築するデベロッパーにとって、これは実質的に透過的です。データベースのプロビジョニングとモニタリングは Spanner および Google Cloud の既存のツールを使用していますが、データとのインタラクションは PostgreSQL のように行います。統合されたエクスペリエンスを確実に実現するため、実装の範囲はデータベースのすべてのレイヤに及びます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/Screen_Shot_2021-10-12_at_12.16.08_PM.max-60.max-600x600.png

スキーマ、データ型、メタデータ

PostgreSQL Interface 実装の最下層は PostgreSQL データ型と DDL 構文のうち中核的なものからなるサブセットです。これにより、ユーザーは標準の PostgreSQL SQL を使用してスキーマを定義できます。そのため、Spanner の PostgreSQL Interface に書かれたスキーマは、他の PostgreSQL 対応データベースで動作します。データの忠実度も完全です。この結果、チームは、複数の環境にアプリケーションを柔軟にデプロイできるとともに、共通のツールとプロセスを再利用することも可能です。

テーブル インターリーブのように PostgreSQL と同様ではない Spanner 機能には拡張 PostgreSQL 構文が用意されています。既存の PostgreSQL 構文にできる限り従い、このような相違を最小化しています。また、ユーザーとツールは、標準的な情報スキーマのクエリを行って、データベースとそのスキーマに関するメタデータにアクセスできます。

SQL クエリ

スキーマ レイヤの上層には PostgreSQL の SQL 言語の主要部分が実装されています。これには、多くの PostgreSQL 関数および演算子とともに、最も一般的な DQL(SELECT)、DML(INSERT、UPDATE、DELETE)構文も含まれます。そしてこのサブセットは Spanner の豊富な既存の機能に完全対応しているのです。

https://storage.googleapis.com/gweb-cloudblog-publish/images/image4_xrK46jI.max-1800x1800.max-1800x1800.png
Cloud Console から Spanner データベースに対し PostgreSQL クエリを発行

クライアントと接続性

最後に、PostgreSQL Interface は、アプリケーションとエコシステム ツールにラスト ワンマイルの接続性を提供します。Java、JDBC、Go、Python 用の Spanner ネイティブ クライアントは更新され、PostgreSQL クエリ言語もサポート対象となりました。これにより、ほとんどの一般的開発環境と簡単に統合できる一方、Spanner のフルマネージド グローバル エンドポイントを使用して最大 99.999% の可用性を実現することも可能となっています。今後、これは他の言語やよく使用される ORM にも拡大する予定です。

Spanner にまったく関連のない PostgreSQL ツールを有効にするため、PostgreSQL Interface にはオープンソースのアダプタも含まれています。このアダプタは、クライアント側の環境でサイドカー プロキシとして動作します。このアダプタにより、オープンな PostgreSQL ワイヤ プロトコルを介して Spanner インスタンスに接続できます。これは当初、psql コマンドライン ツールを使用して Spanner データベースを操作する開発シナリオに焦点を当てていました。しかしながら、今後は他のコミュニティ ツールとドライバに拡張する予定です。

https://storage.googleapis.com/gweb-cloudblog-publish/images/image2_q4VnKjL.max-800x800.max-800x800.png
Spanner データベースでテーブルを調査する psql セッション

これらすべては、Spanner の基盤となっている実証済みの分散クエリおよびストレージ エンジンの上に構築されています。その結果、PostgreSQL Interface は、現在の Spanner と同様の可用性、整合性、スケーラビリティ、およびセキュリティ保証を提供し、パフォーマンスの相違はわずかです。つまり、開発チームは慣れ親しんだ SQL やツールを使用して、高コストな再設計やダウンタイムなしで、アプリケーションをスケールアップ、スケールダウンできます。

目標は 100% の互換性ではなく、なじみ深さとポータビリティ

このプレビュー リリースは、Spanner をもっとオープンでアクセス可能にするための、大規模かつ長期的な投資の第 1 段階です。最初は、Spanner PostgreSQL Interface は、PostgreSQL の提供する機能の主要サブセットをサポートします。これらは、現在本番環境にあるミッション クリティカルな幅広いアプリケーションで利用されている Spanner の現在の機能と整合するよう意図しています。PostgreSQL Interface を使用するクエリとスキーマでは、他の PostgreSQL 環境と同じセマンティクスが用意される予定です。目標は 100% の PostgreSQL 互換性ではありません。なじみ深さとポータビリティに焦点をあてることで、デプロイの柔軟性を低減せずに Spanner の大規模な整合性と可用性を簡単に利用できるようにします。

PostgreSQL との最高レベルの互換性が必要なアプリケーションでは、Cloud SQL for PostgreSQL が、今後も Google Cloud での最適な選択肢となります。Cloud SQL は、PostgreSQL アプリケーションをクラウドにリフト&シフトするための最短ルートです。フルマネージド サービスの運用効果とパフォーマンス上のメリットを活用できます。さらに、専用データベースからの異なるタイプの移行では、Spanner の一部の独自機能を必要とするのでない限り、多くの場合 Cloud SQL が最適です。Database Migration Service は、追加料金なしで移行を合理化します。

https://storage.googleapis.com/gweb-cloudblog-publish/images/image1_0FEooxM.max-1600x1600.max-1300x1300.png
Cloud SQL は、PostgreSQL との完全な互換性があるため、移行が容易です。Spanner は、PostgreSQL のなじみ深さとポータビリティによって、変革を可能にします。

チームは既存のデータベースをそのままで移行することの先を見据え、新しく斬新なアプリケーションを構築するにあたり、Spanner は比類のない大規模な可用性と整合性を提供します。複雑なアプリケーションによるシャーディングや壊れやすいレプリカ、マルチマスター構成など、前世代のデータベースでの回避策を心配する必要はありません。PostgreSQL Interface は、変革への投資が将来も有効となるようにサポートします。

適切なインターフェースの選択

Spanner の既存のお客様に向けては、ANSI SQL を基盤とする Google 標準 SQL の継続的なサポートと進化を Google はお約束します。Google Cloud にすでに慣れ親しんでいるチームには、Spanner の既存の SQL 言語とエコシステムが最良の選択肢です。幅広い機能とともに、BigQuery の SQL との互換性も提供されるため、クエリとコンセプトを再利用できます。一般提供後は、スタックが PostgreSQL で標準化されたチームの場合、最初に Spanner の PostgreSQL Interface をご検討ください。管理者は、作成時にデータベースで使用する言語を構成します。Spanner インスタンスは、いずれの言語でも複数のデータベースをホストできます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/image3_zRwNwQi.max-1200x1200.max-1200x1200.png
データベース作成時に Cloud Console を使用して言語を選択する

これは、PostgreSQL に対する取り組みの序章にすぎません。Spanner は、データベースに新機能を追加し、既存および新しい PostgreSQL Interface の両方でそれらを公開して、サポートする PostgreSQL 構文を拡張します。最終的に、ユーザーは両方のインターフェース間の機能を同様に使用できるようになります。インターフェースは、運用するエコシステムに基づいて選択します。スケーラビリティ、可用性、パフォーマンスなど、機能的側面と機能以外の側面は同じです。

使ってみる

Spanner の PostgreSQL Interface のプレビューは、新しいお客様も既存のお客様も追加費用なしでご利用いただけます。お申込みは今すぐ可能になっています。また、プレビュー ドキュメントをご覧いただくことも、Cloud Next ’21 のデモとリリースのお知らせをご確認いただくこともできます。

- Cloud Spanner プロダクト マネージャー Justin Makeig

投稿先