リージョナル エンドポイントとグローバル エンドポイント

このページでは、Bigtable エンドポイントの概要、使用前に考慮すべき点、cbt CLI でエンドポイントを設定する方法について説明します。

Bigtable にリクエストを送信するには、グローバルまたはリージョンのサービス エンドポイントを使用します。Bigtable のリージョン エンドポイントを使用すると、インスタンスのデータが保存されている Bigtable リージョンにインスタンスのデータが保存されて処理されます。プロジェクトのセキュリティとコンプライアンスの要件に対応するため、特定の地理的リージョンで Bigtable のリージョン エンドポイントを使用しなければならないことがあります。

このドキュメントを読む前に、インスタンス、クラスタ、ノードアプリ プロファイルについて理解しておいてください。

主なコンセプトは次のとおりです。

  • サービス エンドポイント: API サービスのネットワーク アドレスを指定するベース URL。Bigtable にはグローバル エンドポイントとリージョン エンドポイントの両方があります。

  • グローバル エンドポイント: Bigtable インスタンスにデータを保存し、インスタンスのクラスタのいずれかを含むリージョンにルーティングできます。Cloud Bigtable API(Data API)のグローバル エンドポイントは bigtable.googleapis.com です。デフォルトの Data API エンドポイントがグローバル エンドポイントにアクセスします。

  • リージョン エンドポイント: リージョン制限を適用し、Bigtable が指定されたリージョンでデータを保存して処理するようにします。リージョン エンドポイントは、Cloud Bigtable API(Data API)でのみ使用できます。Bigtable は、Cloud Bigtable Admin API のリージョン エンドポイントをサポートしていません。

リージョン エンドポイントを使用する場合

グローバル エンドポイントではなく Bigtable リージョン エンドポイントを使用する利点は、リージョン エンドポイントが、セキュリティ、コンプライアンス、規制要件を満たすためにリージョンの分離と保護を利用できることです。

ただし、リージョン エンドポイントは Data Boost または Cloud Bigtable Admin API をサポートしていません。また、リージョン エンドポイントを使用する場合、月間稼働率が 99.999% 以上になるように Bigtable を構成することはできません。詳細については、このドキュメントのリージョン エンドポイントを使用する際の考慮事項をご覧ください。

グローバル エンドポイントを使用する場合

グローバル エンドポイントは、次の場合に使用します。

  • リージョン エンドポイントの使用を必要とするリージョン制限の要件がない。
  • Data Boost を使用する必要があります。
  • Cloud Bigtable Admin API を使用する必要があります。
  • 月間稼働率が 99.999% 以上必要である。

リージョン エンドポイントを使用する際の考慮事項

リージョン エンドポイントを使用する場合は、次の要素を考慮してください。

クラスタのロケーション

リージョン エンドポイントを使用する前に、データを分離するリージョンに 1 つ以上のクラスタを持つインスタンスを作成する必要があります。Bigtable リージョン エンドポイントは、一部の Bigtable リージョンで使用できます。使用可能なリージョンの一覧については、リージョン サービス エンドポイントをご覧ください。

使用できるのは、データを分離するリージョンのリージョン エンドポイントだけです。たとえば、クラスタが us-central1 リージョンにある場合、bigtable.us-west1.rep.googleapis.com を使用してリクエストを処理することはできません。

リージョン エンドポイントを使用して別のリージョンにあるクラスタにアクセスしようとすると、Bigtable はリクエストを拒否し、指定したクラスタとエンドポイントを使用してアクセスできるクラスタがないことを示す FAILED_PRECONDITION エラー メッセージを返します。このエラー メッセージの詳細については、Bigtable ステータス コードをご覧ください。

アプリ プロファイル

リージョン エンドポイントを設定したら、エンドポイントのリージョン内のクラスタへリクエストをルーティングするように構成されたアプリ プロファイルを使用する必要があります。

クラスタ(単一クラスタ ルーティングを使用)またはエンドポイントとは異なるリージョンのクラスタ(複数クラスタ ルーティングを使用)にのみ書き込みを送信するように構成されたアプリ プロファイルを使用しようとすると、FAILED_PRECONDITION エラー メッセージが表示されます。クラスタ ルーティングの詳細については、ルーティング ポリシーをご覧ください。

高可用性(HA)のためにインスタンスのクラスタにルーティングするように構成されたアプリ プロファイルを使用しているときに、リージョン エンドポイントも使用すると、リージョン エンドポイントはすべてのリクエストをそのリージョン内に存在するクラスタにルーティングします。インスタンスのクラスタが他のリージョンにある場合も同様です。自動フェイルオーバーには制約があるため、リクエストはエンドポイントのリージョン内のクラスタからのみ提供されます。

複数クラスタ ルーティング用に構成されたアプリ プロファイルを使用して、us-west1-a(オレゴン)、us-west1-b(オレゴン)、および us-central1-a(アイオワ)にクラスタが存在するインスタンスにリクエストを送信する例を考えてみましょう。これらのリクエストを bigtable.us-central1.rep.googleapis.com リージョン エンドポイントに送信すると、アプリ プロファイルを再構成しなくても、すべてのリクエストが us-central1-a によって処理されます。us-central1-a で処理できないリクエストは失敗します。

レプリケーション

リージョン エンドポイントはレプリケーションに影響しません。また、レプリケーションを妨げることもありません。リージョン A でリージョン エンドポイントを構成し、リージョン B のインスタンスにクラスタを追加すると、グローバル エンドポイントを使用した場合と同様に、データがリージョン B に複製されます。

別のリージョンにデータを複製しないように、目的のリージョンにのみクラスタを作成します。

組織内のユーザーがエンドポイント リージョン外にクラスタを追加できないようにするには、ロケーションを制限する組織のポリシーを設定します。

対象

リージョン エンドポイントを使用する場合、月間稼働率が 99.999% 以上になるように Bigtable を構成することはできません。月間稼働率が 99.999% 以上の場合、リージョン境界を介したリクエストの自動フェイルオーバーが必要です。リージョン エンドポイントは、すべてのリクエストを 1 つのリージョンに限定するため、自動フェイルオーバーを防止します。各月の稼働率については、Bigtable サービスレベル契約(SLA)をご覧ください。

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

リージョン エンドポイントは bigtable.REGION.rep.googleapis.com の形式になります。ここで、REGION は Google Cloud リージョン名です(例: northamerica-northeast2)。

たとえば、アイオワ リージョンのデータを分離する場合、アイオワのリージョン名は us-central1、アイオワ リージョンのリージョン エンドポイント URL は bigtable.us-central1.rep.googleapis.com です。

リージョン エンドポイントを指定する

Bigtable リージョン エンドポイントを指定するには、cbt CLI または Cloud Bigtable クライアント ライブラリを使用します。

cbt

cbt CLI を使用してリージョン エンドポイントを指定し、グローバル エンドポイントをオーバーライドするには、リクエストで --data-endpoint オプションを使用するか、~/.cbtrc ファイルに次を追加します。~/.cbtrc ファイルの作成の詳細については、cbt CLI リファレンスをご覧ください。

data-endpoint = https://bigtable.REGION.rep.googleapis.com/

REGION は、リージョン エンドポイントを設定するリージョン(us-central1europe-west1 など)に置き換えます。

たとえば、リージョン エンドポイントを us-central1 として構成するには、これを ~/.cbtrc ファイルに追加します。

data-endpoint = https://bigtable.us-central1.rep.googleapis.com/

グローバル エンドポイントを指定する

cbt

グローバル送信ポイントを指定するには、--data-endpoint オプションを使用せずにリクエストを送信します。以前に ~/.cbtrc ファイルに data-endpoint 行を追加したことがある場合は、それを削除します。

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

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

次のステップ