区域端点和全球端点
本页介绍了 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(Data 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 端点的请求。如需了解详情,请参阅
限制端点用量。