このページでは、インスタンス構成と 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 L、2R 大阪: asia-northeast2 2R |
なし | ソウル: asia-northeast3 |
読み取り専用: us-west1 1-OR us-east5 1-OR |
asia2 A |
アジア | ムンバイ: asia-south1 L、2R デリー: asia-south2 2R シンガポール: asia-southeast1 1R |
なし | なし | |
eur3 |
ヨーロッパ | ベルギー: europe-west1 L、2R オランダ: europe-west4 2R |
なし | フィンランド: europe-north1 |
|
eur5 |
ヨーロッパ | ロンドン: europe-west2 L、2R ベルギー: europe-west1 2R |
なし | オランダ: europe-west4 |
読み取り専用: us-central1 1-OR us-east1 1-OR |
eur6 |
ヨーロッパ | オランダ: europe-west4 L、2R フランクフルト: europe-west3 2R |
なし | チューリッヒ: europe-west6 |
読み取り専用: us-east1 2-OR |
nam3 |
北アメリカ | 北バージニア: us-east4 L、2R サウスカロライナ: 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 L、2R サウスカロライナ: us-east1 2R |
オレゴン: us-west1 1R ロサンゼルス: us-west2 1R |
オクラホマ: us-central2 |
|
nam7 |
北アメリカ | アイオワ: us-central1 L、2R北バージニア: us-east4 2R |
なし | オクラホマ: us-central2 |
読み取り専用: us-east1 2-OR us-south1 1-OR europe-west1 2-OR |
nam8 |
北アメリカ | ロサンゼルス: us-west2 L、2R オレゴン: us-west1 2R |
なし | ソルトレイクシティ: us-west3 |
読み取り専用: asia-southeast1 2R europe-west2 2R |
nam9 |
北アメリカ | 北バージニア: us-east4 L、2R アイオワ: us-central1 2R |
オレゴン: us-west1 2R |
サウスカロライナ: us-east1 |
|
nam10 |
北アメリカ | アイオワ: us-central1 L、2Rソルトレイクシティ: us-west3 2R |
なし | オクラホマ: us-central2 |
|
nam11 |
北アメリカ | アイオワ: us-central1 L、2R サウスカロライナ: us-east1 2R |
なし | オクラホマ: us-central2 |
読み取り専用: us-west1 1-OR |
nam12 |
北アメリカ | アイオワ: us-central1 L、2R北バージニア: us-east4 2R |
オレゴン: us-west1 2R |
オクラホマ: us-central2 |
|
nam13 |
北アメリカ | オクラホマ: us-central2 L、2R アイオワ: us-central1 2R |
なし | ソルトレイクシティ: us-west3 |
|
nam14 |
北アメリカ | 北バージニア: us-east4 L、2R モントリオール: northamerica-northeast1 2R |
なし | サウスカロライナ: us-east1 |
|
nam15 |
北アメリカ | ダラス: us-south1 L、2R 北バージニア: us-east4 2R |
なし | アイオワ: us-central1 |
3 つの大陸
ベース構成名 | 場所 | 読み取り / 書き込みリージョン | 読み取り専用リージョン | ウィットネス リージョン | オプションのリージョン |
---|---|---|---|---|---|
nam-eur-asia1 |
北アメリカ ヨーロッパ アジア |
アイオワ: us-central1 L、2R オクラホマ: us-central2 2R |
ベルギー: europe-west1 2R 台湾: asia-east1 2R |
サウスカロライナ : us-east1 |
読み取り専用: us-west2 1-OR |
nam-eur-asia3 |
北アメリカ ヨーロッパ アジア |
アイオワ: us-central1 L、2R サウスカロライナ: 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% | 複数の地理的リージョンからの読み取りレイテンシを低減します。書き込みレイテンシがわずかに増加します。 | 高コスト。料金をご覧ください。 | 構成内の複数のリージョンにデータを分散します。 |
次のステップ
- Spanner インスタンスを作成する方法を学習する。
- Google Cloud のリージョンとゾーンの詳細を確認する。