区域端点和全球端点
本页面介绍了 Bigtable 端点和使用端点之前的考虑事项,并展示如何使用 cbt CLI 设置端点。
如需向 Bigtable 发送请求,您可以使用全球或区域性服务端点。Bigtable 的区域性端点可确保实例的数据在数据所在的 Bigtable 区域中存储和处理。为满足项目的安全与合规性需求,您可能需要在特定地理区域中使用 Bigtable 的区域性端点。
在阅读本文档之前,您应先熟悉实例、集群和节点以及应用配置文件。
主要概念包括:
服务端点:指定 API 服务的网络地址的基础网址。 Bigtable 具有全球和区域性端点。
全球端点:使 Bigtable 可以将 Bigtable 实例中的数据存储和路由到包含该实例集群的任何区域。Cloud Bigtable API(Data API)的全球端点为
bigtable.googleapis.com。默认的 Data API 端点访问全球端点。区域性端点:会实施区域限制,以确保 Bigtable 在指定区域存储和处理数据。区域性端点只能与 Cloud Bigtable API(数据 API)搭配使用。Bigtable 不支持 Cloud Bigtable Admin API 的区域性端点。
何时使用区域性端点
与全球端点相比,使用 Bigtable 区域性端点的优势在于区域性端点可提供区域隔离和保护,以满足安全、合规性和监管要求。
不过,区域性端点不支持 Data Boost 或 Cloud Bigtable Admin API。 此外,使用区域端点时,您无法将 Bigtable 配置为实现每月不低于 99.999% 的正常运行时间百分比。如需了解详情,请参阅本文档的使用区域性端点的注意事项部分。
何时使用全球端点
在以下情况下,请使用全球端点:
- 您没有区域限制要求,因此无需使用区域端点。
- 您需要使用 Data Boost。
- 您需要使用 Cloud Bigtable Admin API。
- 您要求每月正常运行时间百分比至少达到 99.999%。
使用区域性端点时的注意事项
如果您使用区域端点,请考虑以下因素:
集群位置
您必须先在要隔离数据的区域中创建至少具有一个集群的实例,然后才能使用区域性端点。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,就像使用全球端点一样。
如需避免将数据复制到另一个区域,请仅在需要的区域中创建集群。
如需阻止组织中的用户在端点区域外添加集群,您可以设置使用位置限制条件的组织政策。
可用性
使用区域性端点时,您无法将 Bigtable 配置为实现每月不低于 99.999% 的正常运行时间百分比。大于等于 99.999% 的每月正常运行时间百分比需要对跨区域边界的请求自动进行故障切换。区域端点会阻止自动故障切换,因为它会将所有请求限制到单个区域。如需详细了解每月正常运行时间百分比,请参阅 Bigtable 服务等级协议 (SLA)。
区域性端点语义
区域性端点采用 bigtable.REGION.rep.googleapis.com 格式,其中 REGION 是 Google Cloud 区域名称,例如 northamerica-northeast2。
例如,如果要隔离爱荷华区域的数据,因为爱荷华区域的名称为 us-central1,因此爱荷华区域的区域性端点网址为 bigtable.us-central1.rep.googleapis.com。
指定区域端点
您可以使用 cbt CLI 或 Cloud Bigtable 客户端库指定 Bigtable 区域性端点。
cbt
如需使用 cbt CLI 指定区域性端点并替换全球端点,您可以在请求中使用 --data-endpoint 选项,也可以将以下内容添加到 ~/.cbtrc 文件中。如需详细了解如何创建 ~/.cbtrc 文件,请参阅 cbt CLI 参考文档。
data-endpoint = https://bigtable.REGION.rep.googleapis.com/
将 REGION 替换为您要设置区域性端点的区域,例如 us-central1 或 europe-west1。
例如,如需将区域性端点配置为 us-central1,请将以下内容添加到 ~/.cbtrc 文件中:
data-endpoint = https://bigtable.us-central1.rep.googleapis.com/
指定全球端点
cbt
如需指定全球端点,请在发送请求时不使用 --data-endpoint 选项。如果您之前向 ~/.cbtrc 文件添加了 data-endpoint 行,请将其删除。
限制全球 API 端点用量
为了帮助强制使用区域端点,请使用 constraints/gcp.restrictEndpointUsage 组织政策限制条件来阻止对全球 API 端点的请求。如需了解详情,请参阅限制端点用量。