リージョン構成とマルチリージョン構成

このページでは、インスタンス構成と Spanner が提供する2 種類のインスタンス構成(リージョン構成とマルチリージョン構成)について説明します。また、リージョン インスタンスとマルチリージョン構成の違い、それぞれのトレードオフについても説明します。

インスタンス構成

インスタンスの構成により、インスタンスのデータベースの地理的な場所とレプリケーションが定義されます。インスタンスを作成する際には、リージョン(すべてのリソースが 1 つの Google Cloud リージョン内に存在します)かマルチリージョン(リソースが複数のリージョンに分散します)のいずれかとして構成する必要があります。この選択を行って、このインスタンスに対するデータの格納場所を決めるインスタンスの構成を選択します。

固定リージョンとレプリケーション トポロジを持つインスタンス構成は、基本インスタンス構成と呼ばれます。カスタム インスタンス構成を作成し、追加の読み取り専用レプリカを追加できます。基本インスタンス構成のレプリケーション トポロジは変更できません。詳細については、読み取り専用レプリカをご覧ください。

任意のインスタンス構成から他のリージョンまたはマルチリージョンのインスタンス構成にインスタンスを移動できます(たとえば、us-centra1 から nam3 など)。また、追加のレプリカを使用して新しいカスタム インスタンス構成を作成してから、新しいカスタム インスタンス構成にインスタンスを移動できます。たとえば、インスタンスが us-central1 にあり、読み取り専用レプリカ us-west1 を追加する場合、us-central1 を使用して新しいカスタム インスタンス構成を基本構成として追加し、us-west1 を読み取り専用レプリカとして追加します。その後、この新しいカスタム インスタンス構成にインスタンスを移動します。

リージョン構成

Google Cloud サービスは、北米、南米、ヨーロッパ、アジア、オーストラリアのロケーションでご利用いただけます。ユーザーとサービスが 1 つのリージョン内に存在する場合、最も低いレイテンシで読み取りと書き込みを行うため、リージョン インスタンス構成を選択します。

基本リージョン構成の場合、Spanner は 3 つの読み取り / 書き込みレプリカを維持し、各レプリカをそのリージョン内の異なる Google Cloud ゾーンに保持します。 各レプリカには本番環境のデータベースの完全なコピーが含まれ、読み取り / 書き込みリクエストと読み取り専用リクエストを実行できます。Spanner は、異なるゾーンのレプリカを使用し、1 つのゾーンで障害が発生しても、データベースの可用性を維持します。

有効な構成

Spanner では、次のベース リージョン インスタンスを構成できます。

ベース構成名 リージョンの説明 オプションのリージョン
南北アメリカ
northamerica-northeast1 モントリオール リーフアイコン 低 CO2
northamerica-northeast2 トロント リーフアイコン 低 CO2
southamerica-east1 サンパウロ リーフアイコン 低 CO2
southamerica-west1 サンティアゴ リーフアイコン 低 CO2
us-central1 アイオワ リーフアイコン 低 CO2 読み取り専用: asia-northeast1 1-OR
asia-south1 1-OR
europe-west2 1-OR
europe-west9 1-OR
us-east1 サウスカロライナ 読み取り専用: us-central1 1-OR
us-west1 1-OR
us-east4 北バージニア
us-east5 コロンバス
us-south1 ダラス
us-west1 オレゴン リーフアイコン 低 CO2
us-west2 ロサンゼルス
us-west3 ソルトレイクシティ
us-west4 ラスベガス
ヨーロッパ
europe-central2 ワルシャワ
europe-north1 フィンランド リーフアイコン 低 CO2
europe-southwest1 マドリッド
europe-west1 ベルギー リーフアイコン 低 CO2 読み取り専用: us-central1 1-OR
us-west1 1-OR
europe-west2 ロンドン リーフアイコン 低 CO2
europe-west3 フランクフルト リーフアイコン 低 CO2
europe-west4 オランダ
europe-west6 チューリッヒ リーフアイコン 低 CO2
europe-west8 ミラノ
europe-west9 パリ リーフアイコン 低 CO2
europe-west10 ベルリン
europe-west12 トリノ
アジア太平洋
asia-east1 台湾
asia-east2 香港
asia-northeast1 東京
asia-northeast2 大阪
asia-northeast3 ソウル
asia-south1 ムンバイ
asia-south2 デリー
asia-southeast1 シンガポール
asia-southeast2 ジャカルタ
australia-southeast1 シドニー
australia-southeast2 メルボルン
中東
me-central1 ドーハ
me-central2 ダンマーム
me-west1 テルアビブ
アフリカ
africa-south1 ヨハネスブルグ

レプリケーション

ベース リージョン構成には、3 つの読み取り / 書き込みレプリカが含まれます。Spanner のミューテーションごとに、投票レプリカの過半数を占める書き込みクォーラムが必要になります。リージョン構成では、書き込みクォーラムは、3 つのレプリカのうち 2 つのレプリカから構成されます。リーダー リージョンと投票レプリカの詳細については、レプリケーションをご覧ください。

カスタム リージョン インスタンス構成を作成し、追加の読み取り専用レプリカを追加できます。読み取り専用レプリカは、読み取りをスケーリングし、低レイテンシのステイル読み取りをサポートします。これらの読み取り専用レプリカは、書き込みクォーラムに含まれず、リージョン インスタンスの Spanner 99.99% 以上の SLA には影響しません。[オプションのリージョン] 列に表示されているロケーションを、オプションの読み取り専用レプリカとして追加できます。選択した読み取り専用レプリカのロケーションが表示されない場合は、新しいオプションの読み取り専用レプリカ リージョンをリクエストできます。 詳細については、読み取り専用レプリカをご覧ください。

リージョン構成のパフォーマンスに関するベスト プラクティス

最適なパフォーマンスを得るには、次のベスト プラクティスに従ってください。

  • スキーマを設計すると、ホットスポットやその他のパフォーマンスに関する問題を回避できます。
  • 重要なコンピューティング リソースを Spanner インスタンスと同じリージョンに配置します。
  • 全体の CPU 使用率を 65% 未満に抑えるために十分なコンピューティング容量をプロビジョニングします。
  • Spanner ノードあたりのスループットの量については、リージョン構成のパフォーマンスをご覧ください。

マルチリージョン構成

Spanner リージョン構成では、1 つのリージョン内の複数のゾーン間でデータの複製が行われます。ただし、次の場合はリージョン構成が最適ではない場合があります。

  • アプリケーションでは、多くの場合、複数の地理的ロケーションからデータを読み取る必要があります(たとえば、北米とアジアの両方のユーザーにデータを提供する場合など)。
  • 書き込みは読み取りとは異なる場所から行われます(たとえば、北米に大規模な書き込みワークロードがあり、ヨーロッパに大規模な読み取りワークロードがある場合)。

マルチリージョン構成では、次のことが可能です。

  • 複数のリージョンからの書き込みを処理します。
  • リージョンの障害が発生した場合の可用性を維持します。
  • リージョン構成よりも高い可用性と SLA を提供します。

マルチリージョン構成では、インスタンス構成の定義に応じて、複数のリージョンの異なるゾーンにデータベースのデータを複製できます。 この追加のレプリカにより、近くの複数の場所あるいは構成されたリージョン内から低レイテンシでデータを読み取ることができます。

しかし、マルチリージョン構成の場合、クォーラム(読み取り / 書き込み)レプリカが複数のリージョンに分散するため、トレードオフがあります。これらのレプリカが相互に通信して書き込みクォーラムを形成すると、追加のネットワーク レイテンシが発生する場合があります。読み取りにクォーラムは必要ありません。その結果、書き込みレイテンシはわずかに増加しますが、より多くの場所から迅速に読み取りを行うことができます。詳細については、書き込みと読み取りでのレプリカのロールをご覧ください。

有効な構成

Spanner は、次のベース マルチリージョン インスタンス構成を提供します。

1 つの大陸

ベース構成名 場所 読み取り / 書き込みリージョン 読み取り専用リージョン ウィットネス リージョン オプションのリージョン
asia1 アジア 東京: asia-northeast1 L2R
大阪: asia-northeast2 2R
なし ソウル: asia-northeast3 読み取り専用: us-west1 1-OR
us-east5 1-OR
asia2 A アジア ムンバイ: asia-south1 L2R
デリー: asia-south2 2R
シンガポール: asia-southeast1 1R
なし なし
eur3 ヨーロッパ ベルギー: europe-west1 L2R
オランダ: europe-west4 2R
なし フィンランド: europe-north1
eur5 ヨーロッパ ロンドン: europe-west2 L2R
ベルギー: europe-west1 2R
なし オランダ: europe-west4 読み取り専用: us-central1 1-OR
us-east1 1-OR
eur6 ヨーロッパ オランダ: europe-west4 L2R
フランクフルト: europe-west3 2R
なし チューリッヒ: europe-west6 読み取り専用: us-east1 2-OR
nam3 北アメリカ 北バージニア: us-east4 L2R
サウスカロライナ: us-east1 2R
なし アイオワ: us-central1 読み取り専用: us-west2 1-OR
asia-southeast1 1-OR
asia-southeast2 1-OR
europe-west1 1-OR
europe-west2 1-OR
nam6 北アメリカ アイオワ: us-central1 L2R
サウスカロライナ: us-east1 2R
オレゴン: us-west1 1R
ロサンゼルス: us-west2 1R
オクラホマ: us-central2
nam7 北アメリカ アイオワ: us-central1 L2R
北バージニア: us-east4 2R
なし オクラホマ: us-central2 読み取り専用: us-east1 2-OR
us-south1 1-OR
europe-west1 2-OR
nam8 北アメリカ ロサンゼルス: us-west2 L2R
オレゴン: us-west1 2R
なし ソルトレイクシティ: us-west3 読み取り専用: asia-southeast1 2R
europe-west2 2R
nam9 北アメリカ 北バージニア: us-east4 L2R
アイオワ: us-central1 2R
オレゴン: us-west1 2R サウスカロライナ: us-east1
nam10 北アメリカ アイオワ: us-central1 L2R
ソルトレイクシティ: us-west3 2R
なし オクラホマ: us-central2
nam11 北アメリカ アイオワ: us-central1 L2R
サウスカロライナ: us-east1 2R
なし オクラホマ: us-central2 読み取り専用: us-west1 1-OR
nam12 北アメリカ アイオワ: us-central1 L2R
北バージニア: us-east4 2R
オレゴン: us-west1 2R オクラホマ: us-central2
nam13 北アメリカ オクラホマ: us-central2 L2R
アイオワ: us-central1 2R
なし ソルトレイクシティ: us-west3
nam14 北アメリカ 北バージニア: us-east4 L2R
モントリオール: northamerica-northeast1 2R
なし サウスカロライナ: us-east1
nam15 北アメリカ ダラス: us-south1 L2R
北バージニア: us-east4 2R
なし アイオワ: us-central1

3 つの大陸

ベース構成名 場所 読み取り / 書き込みリージョン 読み取り専用リージョン ウィットネス リージョン オプションのリージョン
nam-eur-asia1 北アメリカ
ヨーロッパ
アジア
アイオワ: us-central1 L2R
オクラホマ: us-central2 2R
ベルギー: europe-west1 2R
台湾: asia-east1 2R
サウスカロライナ : us-east1 読み取り専用: us-west2 1-OR
nam-eur-asia3 北アメリカ
ヨーロッパ
アジア
アイオワ: us-central1 L2R
サウスカロライナ: us-east1 2R
ベルギー: europe-west1 1R
オランダ: europe-west4 1R
台湾: asia-east1 2
オクラホマ: us-central2
  • L: デフォルトのリーダーリージョン詳細については、データベースのリーダー リージョンを変更するをご覧ください。

  • 1R: リージョン内に 1 つのレプリカ。

  • 2R: リージョン内に 2 つのレプリカ。

  • 1-OR: 1 つのオプションのレプリカ。カスタム リージョン インスタンス構成を作成し、オプションの読み取り専用レプリカを 1 つ追加できます。詳細については、カスタム インスタンス構成を作成するをご覧ください。

  • 2-OR: 最大 2 つのオプションのレプリカ。カスタム リージョン インスタンス構成を作成し、1 つまたは 2 つのオプションの読み取り専用レプリカを追加できます。読み取りレイテンシを低く維持するために、可能であれば 2 つ追加することをおすすめします。詳細については、カスタム インスタンス構成を作成するをご覧ください。

  • A: このインスタンス構成は許可リストによって制限されています。アクセス権を得るには、テクニカル アカウント マネージャーにお問い合わせください。

利点

マルチリージョン インスタンスの主な利点は次のとおりです。

  • 99.999% の可用性。Spanner リージョン構成では、99.99% を超える可用性を実現できます。

  • データの分散: Spanner は、リージョン間でデータを自動的に複製します。これにより、強整合性が保証されます。これによりデータが使用場所に保存されるため、レイテンシが減少し、ユーザー エクスペリエンスが改善されます。

  • 外部整合性: Spanner のレプリカが地理的に離れた場所に分散していても、1 台のマシン上でデータベースを実行している場合と同様に Spanner を使用できます。トランザクションはシリアル化が保証され、データベース内のトランザクションの順序に従って、commit されたトランザクションがクライアントに表示されます。外部整合性は、一部のサービスで提供されている強整合性よりも確実な保証を行います。この特性の詳細については、TrueTime と外部整合性をご覧ください。

レプリケーション

各ベース マルチリージョン構成には、読み取り / 書き込みリージョンとして設定された 2 つのリージョンが存在し、それぞれのリージョンに 2 つの読み取り / 書き込みレプリカが含まれます。この読み取り / 書き込みリージョンの 1 つがデフォルトのリーダー リージョンになり、ここにデータベースのリーダー レプリカが含まれます。Spanner では、ウィットネス リージョンという 3 番目のリージョンにウィットネス レプリカも配置されます。

クライアントがデータベースに変異を送信するたびに、デフォルトのリーダー リージョンの 1 つのレプリカと 4 つの投票レプリカの 2 つから書き込みクォーラムが形成されます。投票に参加するレプリカによっては、構成内の 2 または 3 つのリージョンのレプリカからクォーラムが形成される場合があります。この 5 つの投票レプリカに加えて、一部の基本マルチリージョン構成には、低レイテンシの読み取りを行う読み取り専用レプリカが含まれています。読み取り専用レプリカを含むリージョンを読み取り専用リージョンといいます。

通常、マルチリージョン構成では、投票リージョンが地理的に近い場所(1,600 km 以下)に配置され、高速書き込みを可能にする低レイテンシのクォーラムが形成されます(詳細)。ただし、調整による障害を避けるため、リージョンは少なくとも数百 km 以上離れた場所に配置されています。 さらに、クライアント アプリケーションがリーダー以外のリージョンにある場合、Spanner はリーダー認識ルーティングを使用して読み取り / 書き込みトランザクションを動的にルーティングし、データベースのレイテンシを短縮します。詳しくは、リーダー認識ルーティングをご覧ください。

オプションの読み取り専用レプリカを使用してカスタム マルチリージョン インスタンス構成を作成できます。作成したカスタム読み取り専用レプリカは、書き込みクォーラムに含めることができません。[オプションのリージョン] 列に示されているロケーションを、オプションの読み取り専用レプリカとして追加できます。選択した読み取り専用レプリカのロケーションが表示されない場合は、新しいオプションの読み取り専用レプリカ リージョンをリクエストできます。 詳細については、読み取り専用レプリカをご覧ください。

マルチリージョン構成のパフォーマンスに関するベスト プラクティス

最適なパフォーマンスを得るには、次のベスト プラクティスに従ってください。

  • スキーマを設計すると、ホットスポットやその他のパフォーマンスに関する問題を回避できます。
  • 最適な書き込みレイテンシを実現するには、書き込みの多いワークロードのコンピューティング リソースをデフォルトのリーダー リージョン内またはその近くに配置します。
  • デフォルトのリーダー リージョン外で最適な読み取りパフォーマンスを得るには、15 秒以上のステイルネスを使用します。
  • ワークロードが単一リージョンに依存しないようにするには、重要なコンピューティング リソースを少なくとも 2 つのリージョンに配置します。1 つのリージョンでの停止がすべてのアプリケーションに影響しないように、2 つの異なる読み取り / 書き込みリージョンの横に配置することをおすすめします。
  • 各リージョンで全体の CPU 使用率を 45% 以下に抑えるために十分なコンピューティング容量をプロビジョニングします。
  • Spanner ノードあたりのスループット量については、マルチリージョン構成のパフォーマンスをご覧ください。

リージョンの種類

Spanner には、読み取り / 書き込みリージョン、読み取り専用リージョン、ウィットネス リージョンの 3 つのリージョン タイプがあります。

読み書きリージョン

各マルチリージョン構成には 2 つの読み取り / 書き込みリージョンが存在し、それぞれに 2 つの読み取り / 書き込みレプリカが含まれます。

これらの読み取り / 書き込みリージョンの 1 つがデフォルトのリーダー リージョンになります。リーダーは、各スプリットのデフォルト リーダー リージョン内のレプリカから選択されます。リーダー レプリカに障害が発生した場合、デフォルトのリーダー リージョンのもう一方のレプリカが自動的にリーダーになります。異常が見つかった場合にリーダーを切り換えられるように、リーダーは自身のヘルスチェックを実行します。ほとんどの場合、デフォルトのリーダー リージョンが正常な状態に戻ると、リーダーが自動的に再開します。

書き込みは、まずデフォルトのリーダー リージョンで処理されます。instance/leader_percentage_by_region モニタリング指標を使用して、特定のリージョン内のレプリカの割合をモニタリングできます。詳細については、Spanner の指標をご覧ください。

2 番目の読み書きリージョンに存在するレプリカが読み取り処理を行い、書き込みの commit を決める投票に参加します。この 2 番目の読み書きリージョンのレプリカがリーダーの候補になります。まれにデフォルトのリーダー リージョンにあるすべてのレプリカが失われた場合は、2 番目の読み取り / 書き込みリージョンから新しいリーダー レプリカが選択されます。

データベースのリーダー リージョンを構成するには、データベース のリーダー リージョンを変更するの手順に従います。詳細については、デフォルトのリーダー リージョンを構成するをご覧ください。

読み取り専用リージョン

読み取り専用リージョンには読み取り専用レプリカが含まれます。これにより、読み書きリージョンの外にあるクライアントに低レイテンシの読み取りを提供できます。 読み取り専用レプリカはデータの完全なコピーを維持します。このデータは読み書きレプリカから複製されます。これらは書き込みの commit を決める投票に参加しないため、書き込みレイテンシに影響しません。

一部の基本マルチリージョン構成には、読み取り専用レプリカが含まれます。カスタム インスタンス構成を作成して、カスタム インスタンス構成に読み取り専用レプリカを追加して、読み取りをスケーリングし、低レイテンシのステイル読み取りをサポートすることもできます。すべての読み取り専用レプリカは、コンピューティング容量とデータベースのストレージ費用の対象となります。さらに、読み取り専用レプリカをインスタンス構成に追加しても、インスタンス構成の Spanner SLA は変更されません。詳細については、読み取り専用レプリカをご覧ください。

ウィットネス リージョン

ウィットネス リージョンには、書き込み投票に参加するウィットネス レプリカが含まれます。まれですが、読み取り / 書き込みリージョンが使用不能になった場合、ウィットネスは重要な役割を果たします。

インスタンスを移動する

インスタンスをすべてのインスタンス構成から他のリージョン構成(リージョン構成とマルチリージョン構成を含む)に移動できます。インスタンスを移動してもダウンタイムは発生しません。Spanner では移動中も強整合性を含め通常のトランザクション保証が提供されます。

Spanner インスタンスの移動の詳細については、インスタンスの移動をご覧ください。

デフォルトのリーダー リージョンを構成する

データベースのデフォルト リーダー リージョンの場所を変更して、接続するクライアントに近づけることで、アプリケーションのレイテンシを短縮するには、マルチリージョン構成を使用する Spanner インスタンスのリーダー リージョンを変更します。リーダー リージョンのロケーションを変更する手順については、データベースのリーダー リージョンを変更するをご覧ください。データベースのデフォルトのリーダー リージョンになることができるリージョンは、マルチリージョン構成の読み取り / 書き込みリージョンのみです。

リーダー リージョンはすべてのデータベース書き込みを処理するため、トラフィックの大部分が 1 つの地理的リージョンから発生している場合は、そのリージョンに移動してレイテンシを低減できます。デフォルトのリーダー リージョンの更新は安価で実施でき、データの移動は不要です。新しい値が有効になるまでに数分を要します。

デフォルトのリーダー リージョンの変更はスキーマ変更であり、長時間実行オペレーションを使用します。必要に応じて、長時間実行オペレーションのステータスを取得できます。

トレードオフ: リージョンとマルチリージョンの構成

構成 可用性 レイテンシ 料金 データの局所性
リージョン 99.99% リージョン内の書き込みレイテンシを低減します。 低コスト。料金をご覧ください。 地域別のデータ ガバナンスを有効にします。
マルチリージョン 99.999% 複数の地理的リージョンからの読み取りレイテンシを低減します。書き込みレイテンシがわずかに増加します。 高コスト。料金をご覧ください。 構成内の複数のリージョンにデータを分散します。

次のステップ