ロケーション エンドポイント
このページでは、Bigtable ロケーション エンドポイントの概要、使用前に考慮すべき点、Google Cloud CLI でエンドポイントを設定する方法について説明します。
Bigtable には、グローバルまたはロケーションのサービス エンドポイントを使用してリクエストを送信できます。Bigtable のロケーション エンドポイントを使用すると、インスタンスのデータが保存されている Bigtable リージョンにインスタンスのデータが保存されて処理されます。プロジェクトのセキュリティとコンプライアンスの要件に対応するため、特定の地理的リージョンで Bigtable のロケーション エンドポイントを使用しなければならないことがあります。
このドキュメントを読む前に、インスタンス、クラスタ、ノードとアプリ プロファイルについて理解しておく必要があります。
主なコンセプトは次のとおりです。
サービス エンドポイント:サービス エンドポイントは、API サービスのネットワーク アドレスを指定するベース URL です。Bigtable にはグローバル エンドポイントとロケーション エンドポイントの両方があります。
グローバル エンドポイント: グローバル エンドポイントを使用すると、Bigtable は Bigtable インスタンスにデータを保存し、インスタンスのクラスタのいずれかを含むリージョンにルーティングできます。Cloud Bigtable API(Data API)のグローバル エンドポイントは
bigtable.googleapis.com
です。デフォルトの Data API エンドポイントがグローバル エンドポイントにアクセスします。ロケーション エンドポイント ロケーション エンドポイントにはロケーションの制約が適用されます。これにより、データが指定されたリージョンに保存されて処理されるようになります。
ロケーション エンドポイントは、Cloud Bigtable API(Data API)でのみ使用できます。ロケーション エンドポイントは、Cloud Bigtable Admin API ではサポートされていません。
ロケーション エンドポイントを使用する場合
グローバル エンドポイントではなく Bigtable ロケーション エンドポイントを使用する利点は、ロケーション エンドポイントが、セキュリティ、コンプライアンス、規制要件を満たすためにロケーションの分離と保護を利用できることです。
規制要件に合わせてデータのロケーションを制限し、制御する必要がある場合は、ロケーション エンドポイントを使用します。
ロケーションについて厳しい制約がない場合は、グローバル エンドポイントを使用します。
ロケーション エンドポイントを使用する際の考慮事項
ロケーション エンドポイントを使用する場合は、次の点を考慮してください。
クラスタのロケーション
ロケーション エンドポイントを使用する前に、データを分離するリージョンに 1 つ以上のクラスタを持つインスタンスを作成する必要があります。Bigtable ロケーション エンドポイントは、すべての Bigtable のロケーションで使用できます。
使用できるのは、データを分離するリージョンのロケーション エンドポイントだけです。たとえば、アクセスしているクラスタが us-central1
リージョンにある場合、us-west1-bigtable.googleapis.com
を使用してリクエストを処理することはできません。
ロケーション エンドポイントを使用して別のリージョンのクラスタにアクセスしようとすると、リクエストは FAILED_PRECONDITION
エラーで拒否され、指定したクラスタとエンドポイントを使用してアクセスできるクラスタがないことを示すメッセージが表示されます。たとえば、us-central1
のクラスタの us-west1-bigtable.googleapis.com
に送信されたリクエストは、FAILED_PRECONDITION
で失敗します。FAILED_PRECONDITION
の詳細については、Bigtable ステータス コードをご覧ください。
アプリ プロファイル
ロケーション エンドポイントを設定したら、エンドポイントのリージョン内のクラスタへリクエストをルーティングするように構成されたアプリ プロファイルを使用する必要があります。
クラスタへの書き込みを(単一クラスタ ルーティングで)クラスタまたはエンドポイントと異なるリージョンのクラスタにのみ送信する(複数クラスタ ルーティングを使用する)ように構成したアプリ プロファイルを使用すると、事前構成の失敗を示すエラー メッセージ There are no clusters accessible through this app profile and the
REGION_NAME endpoint.
が返されます。クラスタ ルーティングの詳細については、ルーティング ポリシーをご覧ください。
高可用性(HA)のためにインスタンスのクラスタにルーティングするように構成されたアプリ プロファイルを使用しているときに、ロケーション エンドポイントも使用すると、ロケーション エンドポイントはすべてのリクエストをそのリージョン内に存在するクラスタにルーティングします。インスタンスのクラスタが他のリージョンにある場合も同様です。自動フェイルオーバーには制約があるため、リクエストはエンドポイントのリージョン内のクラスタからのみ提供されます。
複数クラスタ ルーティング用に構成されたアプリ プロファイルを使用して、us-west1-a
(オレゴン)、us-west1-b
(オレゴン)、および us-central1-a
(アイオワ)にクラスタが存在するインスタンスにリクエストを送信する例を考えてみましょう。これらのリクエストを us-central1-bigtable.googleapis.com
ロケーション エンドポイントに送信すると、アプリ プロファイルを再構成しなくても、すべてのリクエストが us-central1-a
によって処理されます。us-central1-a
で処理できないリクエストは失敗します。
レプリケーション
ロケーション エンドポイントはレプリケーションに影響しません。また、レプリケーションを妨げることもありません。リージョン A でロケーション エンドポイントを構成し、リージョン B のインスタンスにクラスタを追加すると、グローバル エンドポイントを使用する場合と同様に、データがリージョン B に複製されます。
別のリージョンにデータを複製しないように、目的のリージョンにのみクラスタを作成します。
組織内のユーザーがエンドポイント リージョン外にクラスタを追加できないようにするには、ロケーションを制限する組織のポリシーを設定します。詳細については、リソース ロケーションの制限をご覧ください。
対象
ロケーション エンドポイントを使用する場合、月間稼働率が 99.999% 以上になるように Bigtable を構成することはできません。月間稼働率が 99.999% 以上の場合、ロケーション境界を介したリクエストの自動フェイルオーバーが必要です。これにより、すべてのリクエストが 1 つのリージョンに限定されるため、ロケーション エンドポイントが制限されます。各月の稼働率については、Bigtable サービスレベル契約(SLA)をご覧ください。
ロケーション エンドポイントのセマンティクス
Bigtable ロケーション エンドポイント名の最初の部分は Google Cloud のリージョン名です。ロケーション エンドポイントは REGION-bigtable.googleapis.com
の形式になります。ここで、REGION はリージョン名です(例: northamerica-northeast2
)。
たとえば、アイオワ リージョンのデータを分離する場合、アイオワのリージョン名は us-central1
、アイオワ リージョンのロケーション エンドポイント URL は us-central1-bigtable.googleapis.com
です。使用可能なリージョンの一覧については、Bigtable のロケーションをご覧ください。
ロケーション エンドポイントを指定する
Bigtable ロケーション エンドポイントを指定するには、Google Cloud CLI、cbt
CLI、または Cloud Bigtable クライアント ライブラリを使用します。
gcloud
ロケーション エンドポイントを指定して gcloud CLI でグローバル エンドポイントをオーバーライドするには、次のコマンドを実行します。
gcloud config set api_endpoint_overrides/bigtable https://REGION-bigtable.googleapis.com/
REGION
は、ロケーション エンドポイントを設定するリージョン(us-central1
や europe-west1
など)に置き換えます。
たとえば、ロケーション エンドポイントを us-central1
として構成するには、次のコマンドを実行します。
gcloud config set api_endpoint_overrides/bigtable https://us-central1-bigtable.googleapis.com/
cbt
cbt
CLI を使用してロケーション エンドポイントを指定し、グローバル エンドポイントをオーバーライドするには、リクエストで --data-endpoint
オプションを使用するか、~/.cbtrc ファイルに次を追加します。~/.cbtrc ファイルの作成の詳細については、cbt CLI リファレンスをご覧ください。
data-endpoint = https://REGION-bigtable.googleapis.com/
REGION
は、ロケーション エンドポイントを設定するリージョン(us-central1
や europe-west1
など)に置き換えます。
たとえば、ロケーション エンドポイントを us-central1
として構成するには、これを ~/.cbtrc ファイルに追加します。
data-endpoint = https://us-central1-bigtable.googleapis.com/
グローバル エンドポイントを指定する
gcloud
ロケーション エンドポイントをグローバル エンドポイントに再構成するには、次のコマンドを実行します。
gcloud config unset api_endpoint_overrides/bigtable
cbt
グローバル送信ポイントを指定するには、--data-endpoint
オプションを使用せずにリクエストを送信します。以前に ~/.cbtrc ファイルに data-endpoint
行を追加したことがある場合は、それを削除します。