リージョン エンドポイント
このページでは、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
行を追加したことがある場合は、それを削除します。