コンテンツに移動
データベース

Spanner 用のクロスクラウド アーキテクチャの構築

2023年11月28日
Google Cloud Japan Team

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

Spanner は、リレーショナル ワークロードと非リレーショナル ワークロードの両方に適したフルマネージドのデータベース サービスで、クローバル規模の強整合性、事実上無制限のスケーリングでも保たれる高い性能、SLA が 99.999% におよぶ高い可用性を備えています。クロスクラウドやハイブリッド クラウドの戦略が注目を集める中で、これまで以上にお客様に求められているのが、Spanner の群を抜くデータベース機能を、サード パーティーのクラウド プロバイダでコンピューティング スタックを実行して利用できる能力です。

クロスクラウド環境において考慮すべきポイントには以下のようなものがあります。

  • レイテンシ: OLTP ワークロードに対するアプリケーションの応答時間が短いことが求められます。
  • セキュリティ: データがクラウド境界をまたがり、機密性の高い情報が Spanner に保存されるため、データのセキュアな転送は非常に重要です。
  • 可用性: Spanner が誇る高い SLA は、お客様に高く評価されています。クロスクラウド環境でも同様に高い SLA を確保する必要があります。
  • 簡単な設定: 最初の 3 点を満たすクロスクラウド アクセスの実現は、複雑になる可能性があります。
  • 費用対効果: クラウド間でデータ転送が発生するため、クロスクラウド ソリューションには優れた費用対効果が求められます。

このブログでは、Google Cloud の Cross-Cloud Interconnect を使用して前述の目標を実現する方法について述べます。

Cross-Cloud Interconnect

最も単純なモデルでは、アプリケーションは公共のインターネットを経由して spanner.googleapis.com というアドレスの Spanner に接続できます。しかし、信頼性、レイテンシ、セキュリティ、プライバシーについて厳しい要件を持つお客様は、ワークロードを非公開でデータベース環境に接続することを望まれます。

さまざまなパブリック クラウド プロバイダによる最高品質のサービスを利用するアプリケーションのオーナーにとっては、複数の環境にまたがるシームレスで堅牢なネットワーク接続が必要です。Google Cloud は先日、Spanner などの Google Cloud サービスへの多様なパブリック クラウド環境からの使用を単純化できる Cross-Cloud Interconnect をネットワーク接続ポートフォリオに追加しました。

Cross-Cloud Interconnect には次のような特長があります。

  • シンプル。コロケーション施設での、物理的なインフラストラクチャの購入や、設置や管理の必要がないため。
  • 高可用性。サードパーティのクラウドに届くまでの接続 SLA は 99.99%。
  • 以下を備えたエンタープライズ グレードの性能:
    • 低いクラウド間レイテンシにより、単一プロバイダのクロスゾーン設定と同等の性能を実現。
    • 専用の帯域幅割当により、サードパーティ クラウド環境で 10Gbps と 100Gbps の専用帯域オプションを利用可能。
    • プロビジョニング時間が高速なため、エンドツーエンドのクロスクラウド接続を数日で設定可能。
  • 所有コストが低いため、インターコネクト上のデータ転送費用が、インターネット上のデータ転送費用に比較しても安価だというメリットがあります。

このブログでは、さまざまなプライベート接続のオプションを紹介し、サードパーティのパブリック クラウド環境から Spanner へのクロスクラウド接続を設定する方法について説明します。次の図にこれを示しています。

https://storage.googleapis.com/gweb-cloudblog-publish/images/1_Building_a_cross-cloud_architecture_for_.max-1600x1600.png

接続オプション

オンプレミス環境またはパブリック クラウド環境を Google Cloud VPC に接続する方法には、多数のオプションがあります。

  • HA VPN を使用すれば、オンプレミス環境やパブリック クラウド環境から、公共のインターネットの上にセキュアなオーバーレイ トンネルを構築できます。データ転送量が小さく、アンダーレイ ネットワークを非公開にする必要性が低いユーザーに推奨されるソリューションです。
  • Cloud Interconnect によれば、プライベート回線を使用してオンプレミス環境やパブリック クラウド環境に接続できます。以下のようないくつかの種類の Cloud Interconnect から選択できます。
    • Dedicated Interconnect: お客様のオンプレミス ネットワークと Google VPC ネットワークの間に、専用の物理的な直接の接続を作成します。これにより、大量のデータをネットワーク間で転送できます。この方法では、公共のインターネット上の帯域幅を追加購入するよりもコスト効率が良くなる場合があります。このオプションを使用するためには、お客様のネットワークがコロケーション施設の Google のネットワークと物理的に整合していることが必要です。オンプレミス環境から Google Cloud への接続について、アンダーレイ ネットワークを非公開にすること、帯域幅の広い接続、Cloud Interconnect のポイント オブ プレゼンスにおいて Google に適合するように自ネットワークを拡張できることなど、厳格な要件を持つお客様に向けて推奨されるソリューションです。
    • Partner Interconnect: オンプレミス ネットワークと Google VPC ネットワークの間を、サポート対象のサービス プロバイダを経由して接続します。Partner Interconnect はネットワーキングのさまざまな状況で有用で、お客様の帯域幅の要求が 10 Gbps の接続全体の完全な保証を必要としない場合に、最も広く使用されます。オンプレミス環境から Google Cloud への接続について、アンダーレイ ネットワークを非公開にすることや、10 Gbps 未満の接続速度保証など、厳格な要件を持つお客様に向けて推奨されるソリューションです。
    • Cross-Cloud Interconnect: サードパーティのパブリック クラウド上のお客様のネットワークと Google Cloud VPC ネットワークの間を直接つなぐ、専用の物理的な接続を作成します。これによりクラウド環境間で大量のデータを低レイテンシで転送できて、公共のインターネットを経由して転送するよりもコスト効率が高くなります。サードパーティ クラウド環境から Google Cloud への接続について、アンダーレイ ネットワークを非公開にすること、低レイテンシ、帯域幅の広い接続、Cloud Interconnect のポイント オブ プレゼンスにおいて Google に適合するよう自ネットワークを拡張できることなど、厳格な要件を持つお客様に向けて推奨されるソリューションです。

そして、プライベート エンドポイントを使用して、オンプレミスまたはパブリック クラウドを Google の API やサービスに接続できます。詳細とオプションについては、Google Cloud の接続性のドキュメントをご覧ください。Spanner を使用する場合の方法については、次のセクションで述べます。

Spanner へのクロスクラウド接続の設定

サードパーティのクラウド プロバイダから Spanner へのクロスクラウド接続の確立は、難しい作業ではありません。次のセクションで、この接続を設定する手順ガイドを示します。

1. 物理的接続

最初に設定が必要なのは、他のクラウドから接続できるVirtual Private Cloud(VPC)ネットワークです。VPC ネットワークは、Google Cloud 内で仮想化されているという点を除いては、物理ネットワークと同じようなものであると考えることができます。データセンター内のリージョン仮想サブネットワーク(サブネット)のリストで構成され、サブネットはすべてグローバルな広域ネットワークで接続されています。また VPC を使用すれば、Google 外のネットワークを Google Cloud プロダクトに非公開で接続することも可能です。

https://storage.googleapis.com/gweb-cloudblog-publish/images/2_Building_a_cross-cloud_architecture_for_.max-1700x1700.png

(a) Google Cloud コンソールを使用した VPC ネットワークの設定

同様に、接続を終端しようとする他方のクラウド プロバイダにも VPC ネットワークが必要になるはずです。

次に、Cross-Cloud Interconnect を経由して Google Cloud VPC ネットワークをサードパーティのパブリック クラウド環境に接続します。Interconnect のコンソールに移動し、Cross-Cloud Interconnect を選択して、新しくクラウド間接続を設定します。

https://storage.googleapis.com/gweb-cloudblog-publish/images/3_Building_a_cross-cloud_architecture_for_Sp.max-800x800.png

(b) Google Cloud コンソールを使用した Cross-Cloud Interconnect の設定

次に、接続しようとするパブリック クラウドのプロバイダを選択し、ロケーションと容量を選びます。

リージョン Spanner を使用する場合は、その Spanner と同じロケーションに接続を設定すれば、レイテンシを最適化できます。マルチリージョンの Spanner の場合には、すべての読み取り / 書き込みリージョンおよび読み取り専用リージョンに相互接続を設定することを推奨します。たとえば、nam3 構成を使用する場合、us-east4 リージョンと us-east1 リージョンに相互接続を設定します。

同様に、接続しようとするサードパーティのパブリック クラウドから接続するプライベート回線の設定が必要になります。詳細な手順については、こちらをご覧ください。

VLAN アタッチメントと Cloud Router

物理的な接続が設定できれば、VLAN アタッチメントを作成できて、これによりサードパーティのパブリック クラウド環境でのゲートウェイへのアクセスに必要な論理的接続が作成されます。また、どのサブネットワークが Cloud Routers を使用して Cross-Cloud Interconnect を経由してピア ネットワークにアクセスできるかが決定します。Cloud Router を使用すると、VPC とピア ネットワークの間で Border Gateway Protocol(BGP)を使用してルートを動的に交換できます。VPC ネットワーク内の新しいサブネット IP アドレス範囲を自動的に学習し、ピア ネットワークに通知します。

VLAN アタッチメントを作成するときには、Google と相互接続するリージョンと同じリージョンにある Cloud Router を指定するべきです。VLAN アタッチメントによって、VLAN ID と BGP ピアリング IP アドレスが自動的に割り振られます。この情報を使用して、サードパーティ パブリック クラウドのピアルーターを構成し、Cloud Router と BGP セッションを確立できます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/4_Building_a_cross-cloud_architecture_for_.max-1000x1000.png

(c) Google Cloud コンソールを使用した Cross-Cloud Interconnect の VLAN アタッチメントの設定

99.99% の可用性を実現するためには、少なくとも 4 つの Cross-Cloud Interconnects を設定し、うち 2 つずつをそれぞれ別の接続に設定することを推奨します。同じリージョン内の相互接続用の接続は、別のアベイラビリティ ゾーンに配置する必要があります。同様に、少なくとも 2 つの異なる Google Cloud リージョンに少なくとも 2 つの Cloud Router を設定することを推奨します。こうすれば、障害が発生した場合には、Google Cloud は Spanner と接続されているもう一方のリージョンにトラフィックをルート変更できます。各 Cloud Router を同一リージョン内の同じ相互接続用接続のペアに接続する必要があります。VPC ネットワークの動的ルーティング モードはグローバルにする必要があります。こうすると、Cloud Router がその VPC 内の全サブネットをアドバタイズし、サブネットのリージョンに関係なく、学習したルートをすべてのサブネットに伝播します。

次に、冗長性を高めるために、各相互接続に対し 1 つずつ、計 4 つの VLAN アタッチメントを作成する必要があります。リージョン内のアタッチメントは、そのリージョン内に構成された Cloud Router を使用します。

高可用性を実現するため、ピア ネットワーク内に 2 つのルータを配置し、それぞれのルータを Google Cloud リージョンのどれかに接続することを推奨します。この処理により、トラフィックが VPC ネットワークからピア ネットワークまで移動するための経路が複数になります。

詳細な手順については、こちらをご覧ください。

プライベート エンドポイント

プライベート エンドポイントを使用して、サードパーティのパブリック クラウド環境を Google の API およびサービスに接続できます。デフォルトでは、アプリケーションは spanner.googleapis.com に接続します。信頼性と性能を改善し、レイテンシと総所有コストを低減するため、Private Service Connect でプライベート エンドポイントを利用することを推奨します。

Private Service Connect を使用すると、VPC ネットワーク内のグローバル内部 IP アドレスを使用してプライベート エンドポイントを作成できます。これらの内部 IP アドレスには、意味のある名前で DNS 名を割り当てることができます。これらの名前と IP アドレスは、VPC ネットワークとそれに接続されたオンプレミス ネットワークに対して内部的なもので、どのトラフィックがどのエンドポイントに向かうかを制御できます。

内容のまとめ

https://storage.googleapis.com/gweb-cloudblog-publish/images/5_Building_a_cross-cloud_architecture_for_Sp.max-600x600.jpg

まとめると、Spanner と他のパブリック クラウド プロバイダ上のアプリケーションとの間で可用性の高いクロスクラウド アーキテクチャを設定する手順は、下記のようになります。

  1. オンプレミスまたは他のクラウドからの接続に使用するための VPC ネットワークを設定する。
  2. Cross-Cloud Interconnect を使用して、VPC とサードパーティのパブリック クラウド ネットワークの間の高速で可用性の高い物理接続を作成する。
  3. VLAN アタッチメントと Cloud Router を作成し、VPC ネットワークがピア ネットワークに接続できるようにする。
  4. プライベート エンドポイントを使用して、ピアホストが Google の API およびサービスに接続できるようにする。

その他のリソース

ー シニア プロダクト マネージャー Judy Issa

ー シニア エンジニアリング マネージャー Jerene Yang

投稿先