リージョン エンドポイントを使用してデータの局所性を構成する
このページでは、リージョン エンドポイントまたはマルチリージョン エンドポイントを使用するように Firestore クライアント ライブラリを構成する方法について説明します。
Firestore クライアント ライブラリを使用する場合、次のいずれかのエンドポイントを使用できます。
グローバル エンドポイント: デフォルトでは、Firestore クライアント ライブラリは、
firestore.googleapis.comという名前のグローバル サービス エンドポイントに API リクエストを送信します。グローバル サービス エンドポイントがリクエストをデータベースにルーティングします。ルーティング中に、リクエストがデータベースのロケーションとは異なるロケーションにあるサーバーを通過する場合があります。リージョン エンドポイント: リージョン エンドポイントには制約が適用されます。これにより、データが指定された Google Cloud リージョンで転送、保存、処理されることが保証されます。サービス エンドポイントがデータベースと同じリージョンの アプリの Firestore リクエストを処理するには、クライアント ライブラリでリージョン エンドポイントを指定します。
マルチリージョン エンドポイント: マルチリージョン エンドポイントには制約が適用されます。これにより、データが指定された Google Cloud マルチリージョンで転送、保存、処理されることが保証されます。サービス エンドポイントがデータベースと同じマルチリージョンの アプリの Firestore リクエストを処理するには、クライアント ライブラリでマルチリージョン エンドポイントを指定します。
リージョン エンドポイントまたはマルチリージョン エンドポイントを設定する
リージョン エンドポイントまたはマルチリージョン エンドポイントを構成する方法は同じです。クライアント ライブラリを初期化するときにエンドポイント文字列を指定します。次の例は、リージョン エンドポイント(firestore.us-central1.rep.googleapis.com)を使用してエンドポイント文字列を設定する方法を示しています。マルチリージョン エンドポイントを使用するには、データベースのロケーションに対応するマルチリージョン エンドポイント文字列を指定します(たとえば、nam5 の場合は firestore.us.rep.googleapis.com)。
Java
Firestore に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Firestore に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
リージョン エンドポイントとマルチリージョン エンドポイントのセマンティクス
リージョン エンドポイント(REP):
Firestore は、Firestore のロケーションに記載されているリージョン ロケーションのリージョン エンドポイントをサポートしています。
次の形式を使用してリージョン エンドポイントを定義します。
Java
firestore.REGION_NAME.rep.googleapis.com:443
エンドポイントとともにポート番号が定義されていることを確認します。
Python
firestore.REGION_NAME.rep.googleapis.com
Go
firestore.REGION_NAME.rep.googleapis.com:443
エンドポイントとともにポート番号が定義されていることを確認します。
REGION_NAME は、リージョン ホストの名前に置き換えます。
ホスト名の例を以下に示します。
firestore.us-central1.rep.googleapis.comfirestore.europe-west1.rep.googleapis.com
マルチリージョン エンドポイント(MREP)
マルチリージョン エンドポイントの場合は、ロケーション nam5 と nam7 に us を使用し、ロケーション eur3 に eu を使用します(マルチリージョン ロケーションをご覧ください)。
Java
firestore.us.rep.googleapis.com:443
firestore.eu.rep.googleapis.com:443
エンドポイントとともにポート番号が定義されていることを確認します。
Python
firestore.us.rep.googleapis.com
firestore.eu.rep.googleapis.com
Go
firestore.us.rep.googleapis.com:443
firestore.eu.rep.googleapis.com:443
エンドポイントとともにポート番号が定義されていることを確認します。
制限事項
- リージョン エンドポイントとマルチリージョン エンドポイントは、リアルタイム リスナーをサポートしていません。
ロケーション エンドポイント(非推奨)
ロケーション エンドポイントは非推奨になりました。代わりに、リージョン エンドポイントまたはマルチリージョン エンドポイントを使用してください。
以前の Firestore では、次の形式のロケーション エンドポイントがサポートされていました。
Java
REGION_NAME-firestore.googleapis.com:443
エンドポイントとともにポート番号が定義されていることを確認します。
Python
REGION_NAME-firestore.googleapis.com
Go
REGION_NAME-firestore.googleapis.com:443
エンドポイントとともにポート番号が定義されていることを確認します。
REGION_NAME は、リージョンまたはマルチリージョンのホスト名の名前に置き換えます。
ホスト名の例を以下に示します。
eur3-firestore.googleapis.comnam5-firestore.googleapis.comeurope-west6-firestore.googleapis.comasia-northeast2-firestore.googleapis.com
マルチリージョンとリージョンのホスト名の完全なリストについては、Firestore のロケーションをご覧ください。
グローバル API エンドポイントの使用を制限する
リージョン エンドポイントとマルチリージョン エンドポイントの使用を強制するには、constraints/gcp.restrictEndpointUsage 組織のポリシーの制約を使用して、グローバル API エンドポイントへのリクエストをブロックします。詳細については、エンドポイントの使用の制限をご覧ください。
次のステップ
- Firestore のデータモデルについて学習する
- Firestore の使用に関するベスト プラクティス。