リージョン エンドポイントを使用してデータの局所性を構成する

このページでは、Datastore モードの Firestore クライアント ライブラリを構成して、リージョン エンドポイントまたはマルチリージョン エンドポイントを使用する方法について説明します。

Datastore モードの Firestore クライアント ライブラリを使用する場合、次のいずれかのエンドポイントを使用できます。

  • グローバル エンドポイント: デフォルトでは、Datastore モードの Firestore のクライアント ライブラリは、datastore.googleapis.com という名前のグローバル サービス エンドポイントに API リクエストを送信します。グローバル サービス エンドポイントがリクエストをデータベースにルーティングします。ルーティング中に、リクエストがデータベースのロケーションとは異なるロケーションにあるサーバーを通過する可能性があります。

  • リージョン エンドポイント: リージョン エンドポイントには制約が適用されます。これにより、データが指定された Google Cloud リージョンで転送、保存、処理されることが保証されます。サービス エンドポイントがデータベースと同じリージョンの Datastore モードの アプリの Firestore リクエストを処理するには、クライアント ライブラリでリージョン エンドポイントを指定します。

  • マルチリージョン エンドポイント: マルチリージョン エンドポイントには制約が適用されます。これにより、データが指定された Google Cloud マルチリージョンで転送、保存、処理されることが保証されます。サービス エンドポイントがデータベースと同じマルチリージョンの Datastore モードの アプリの Firestore リクエストを処理するには、クライアント ライブラリでマルチリージョン エンドポイントを指定します。

リージョン エンドポイントまたはマルチリージョン エンドポイントを設定する

リージョン エンドポイントまたはマルチリージョン エンドポイントを構成する方法は同じです。クライアント ライブラリを初期化するときにエンドポイント文字列を指定します。次の例は、リージョン エンドポイント(datastore.us-central1.rep.googleapis.com)を使用してエンドポイント文字列を設定する方法を示しています。マルチリージョン エンドポイントを使用するには、データベースのロケーションに対応するマルチリージョン エンドポイント文字列を指定します(たとえば、nam5 の場合は datastore.us.rep.googleapis.com)。

Java

Datastore モードのクライアント ライブラリをインストールして使用する方法については、Datastore モードのクライアント ライブラリをご覧ください。 詳細については、Datastore モードの Java API のリファレンス ドキュメントをご覧ください。

Datastore モードへの認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証を設定するをご覧ください。


import com.google.cloud.datastore.Datastore;
import com.google.cloud.datastore.DatastoreOptions;

public class RegionalEndpoint {

  public Datastore createClient() throws Exception {
    // Instantiates a client
    DatastoreOptions options =
        DatastoreOptions.newBuilder().setHost("https://datastore.us-central1.rep.googleapis.com").build();
    Datastore datastore = options.getService();
    return datastore;
  }
}

Python

Datastore モードのクライアント ライブラリをインストールして使用する方法については、Datastore モードのクライアント ライブラリをご覧ください。 詳細については、Datastore モードの Python API のリファレンス ドキュメントをご覧ください。

Datastore モードへの認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証を設定するをご覧ください。

from google.cloud import datastore
from google.api_core.client_options import ClientOptions

ENDPOINT = "https://datastore.africa-south1.rep.googleapis.com"
client_options = ClientOptions(api_endpoint=ENDPOINT)
client = datastore.Client(client_options=client_options)

query = client.query(kind="Task")
results = list(query.fetch())
for r in results:
    print(r)

リージョン エンドポイントとマルチリージョン エンドポイントのセマンティクス

リージョン エンドポイント(REP):

Datastore モードの Firestore は、Datastore モードの Firestore のロケーションに記載されているリージョン ロケーションのリージョン エンドポイントをサポートしています。

次の形式を使用してリージョン エンドポイントを定義します。

Java

    datastore.REGION_NAME.rep.googleapis.com:443

エンドポイントとともにポート番号が定義されていることを確認します。

Python

    datastore.REGION_NAME.rep.googleapis.com

Go

    datastore.REGION_NAME.rep.googleapis.com:443

エンドポイントとともにポート番号が定義されていることを確認します。

REGION_NAME は、リージョン ホストの名前に置き換えます。

ホスト名の例を以下に示します。

  • datastore.us-central1.rep.googleapis.com
  • datastore.europe-west1.rep.googleapis.com

マルチリージョン エンドポイント(MREP)

マルチリージョン エンドポイントの場合は、ロケーション nam5nam7us を使用し、ロケーション eur3eu を使用します(マルチリージョン ロケーションをご覧ください)。

Java

    datastore.us.rep.googleapis.com:443
    datastore.eu.rep.googleapis.com:443

エンドポイントとともにポート番号が定義されていることを確認します。

Python

    datastore.us.rep.googleapis.com
    datastore.eu.rep.googleapis.com

Go

    datastore.us.rep.googleapis.com:443
    datastore.eu.rep.googleapis.com:443

エンドポイントとともにポート番号が定義されていることを確認します。

ロケーション エンドポイント(非推奨)

ロケーション エンドポイントは非推奨になりました。代わりに、リージョン エンドポイントまたはマルチリージョン エンドポイントを使用してください。

以前の Datastore モードの Firestore では、次の形式のロケーション エンドポイントがサポートされていました。

Java

  https://REGION_NAME-datastore.googleapis.com:443

完全な https URL が使用され、エンドポイントとともにポート番号が定義されていることを確認します。

Python

  https://REGION_NAME-datastore.googleapis.com

ロケーション エンドポイントとして、完全な https URL が設定されていることを確認します。

Go

  REGION_NAME-datastore.googleapis.com:443

エンドポイントとともにポート番号が定義されていることを確認します。

REGION_NAME は、リージョンまたはマルチリージョンのホスト名の名前に置き換えます。

ホスト名の例を以下に示します。

  • eur3-datastore.googleapis.com
  • nam5-datastore.googleapis.com
  • europe-west6-datastore.googleapis.com
  • asia-northeast2-datastore.googleapis.com

マルチリージョンとリージョンのホスト名の完全なリストについては、Datastore モードの Firestore のロケーションをご覧ください。

グローバル API エンドポイントの使用を制限する

リージョン エンドポイントとマルチリージョン エンドポイントの使用を強制するには、constraints/gcp.restrictEndpointUsage 組織のポリシーの制約を使用して、グローバル API エンドポイントへのリクエストをブロックします。詳細については、エンドポイントの使用の制限をご覧ください。

次のステップ