Endpoints de ubicación

En esta página se describen los endpoints de ubicación de Bigtable, se explica qué debes tener en cuenta antes de usarlos y se muestra cómo definir un endpoint con la CLI de Google Cloud.

Puede usar un endpoint de servicio global o de ubicación para enviar solicitudes a Bigtable. Los endpoints de ubicación de Bigtable aseguran que los datos de una instancia se almacenen y procesen en la región de Bigtable en la que residen. Puede que tengas que usar endpoints de ubicación para Bigtable en una región geográfica concreta para cumplir los requisitos de seguridad y cumplimiento de tu proyecto.

Antes de leer este documento, debes familiarizarte con los conceptos de instancias, clústeres y nodos y perfiles de aplicación.

Entre los conceptos clave se incluyen los siguientes:

  • Endpoint de servicio: un endpoint de servicio es una URL base que especifica la dirección de red de un servicio de API. Bigtable tiene endpoints globales y de ubicación.

  • Endpoint global: un endpoint global permite a Bigtable almacenar y enrutar los datos de una instancia de Bigtable a cualquier región que contenga uno de los clústeres de la instancia. El endpoint global de la API de Cloud Bigtable (API Data) es bigtable.googleapis.com. El endpoint predeterminado de la API Data accede al endpoint global.

  • Endpoint de ubicación: un endpoint de ubicación aplica restricciones de ubicación para asegurarse de que los datos se almacenan y se tratan en una región específica.

Solo puedes usar los endpoints de ubicación con la API Cloud Bigtable (API Data). Los endpoints de ubicación no se admiten en la API Cloud Bigtable Admin.

Cuándo usar los endpoints de ubicación

La ventaja de usar un endpoint de ubicación de Bigtable en lugar de un endpoint global es que el endpoint de ubicación proporciona aislamiento y protección de la ubicación para cumplir los requisitos de seguridad, cumplimiento y normativos.

Usa un endpoint de ubicación si la ubicación de tus datos debe estar restringida y controlada para cumplir los requisitos normativos.

Usa el endpoint global si no tienes requisitos estrictos de restricción de ubicación.

Consideraciones al usar un endpoint de ubicación

Tenga en cuenta los siguientes factores cuando utilice un endpoint de ubicación.

Ubicaciones del clúster

Para poder usar un endpoint de ubicación, debes crear una instancia con al menos un clúster en la región en la que quieras aislar tus datos. Los endpoints de ubicación de Bigtable están disponibles en todas las ubicaciones de Bigtable.

Solo puedes usar un endpoint de ubicación que pertenezca a la región en la que quieras aislar tus datos. Por ejemplo, no puedes usar us-west1-bigtable.googleapis.com para servir solicitudes si el clúster al que accedes está en la región us-central1.

Si intentas usar un endpoint de ubicación para acceder a un clúster de otra región, la solicitud se rechazará con un error FAILED_PRECONDITION y un mensaje que indica que no se puede acceder a ningún clúster con el clúster y el endpoint especificados. Por ejemplo, una solicitud enviada a us-west1-bigtable.googleapis.com para clústeres en us-central1 falla con FAILED_PRECONDITION. Para obtener más información sobre FAILED_PRECONDITION, consulta Códigos de estado de Bigtable.

Perfiles de aplicaciones

Después de definir un endpoint de ubicación, debe usar un perfil de aplicación que esté configurado para enrutar las solicitudes a un clúster de la región del endpoint.

Si intentas usar un perfil de aplicación configurado para enviar escrituras solo a un clúster (mediante el enrutamiento de un solo clúster) o a clústeres de una región diferente a la del endpoint (mediante el enrutamiento de varios clústeres), recibirás el mensaje de error de condición previa fallida There are no clusters accessible through this app profile and the REGION_NAME endpoint. Para obtener más información sobre el enrutamiento de clústeres, consulta Política de enrutamiento.

Si usas un perfil de aplicación configurado para enrutar a cualquier clúster de una instancia para ofrecer alta disponibilidad (HA) y también usas un endpoint de ubicación, este endpoint asegura que todas las solicitudes se enruten solo a los clústeres de su región, aunque la instancia tenga clústeres en otras regiones. La conmutación por error automática está limitada, por lo que las solicitudes solo se atienden desde clústeres de la región del endpoint.

Supongamos que envías solicitudes mediante un perfil de aplicación configurado para el enrutamiento a varios clústeres a una instancia que tiene clústeres en us-west1-a (Oregón), us-west1-b (Oregón) y us-central1-a (Iowa). Si envías estas solicitudes al endpoint us-central1-bigtable.googleapis.comlocational , us-central1-a atenderá todas las solicitudes, aunque no vuelvas a configurar el perfil de la aplicación. Las solicitudes que no puede atender us-central1-a fallan.

Replicación

Los endpoints de ubicación no afectan ni impiden la replicación. Si configuras un endpoint de ubicación en la región A y, a continuación, añades un clúster a tu instancia en la región B, tus datos se replicarán en la región B del mismo modo que si usaras el endpoint global.

Para evitar que los datos se repliquen en otra región, cree clústeres solo en la región de destino.

Para evitar que los usuarios de tu organización añadan clústeres fuera de la región del endpoint, puedes definir una política de la organización que use restricciones de ubicación. Para obtener más información, consulta Restringir ubicaciones de recursos.

Disponibilidad

Cuando usas endpoints de ubicación, no puedes configurar Bigtable para conseguir un porcentaje de tiempo de actividad mensual igual o superior al 99,999%. Para conseguir un tiempo de actividad mensual igual o superior al 99,999 %, es necesario que se produzca una conmutación por error automática de las solicitudes entre límites de ubicación, lo que un endpoint de ubicación impide, ya que limita todas las solicitudes a una sola región. Para obtener más información sobre los porcentajes de tiempo de actividad mensuales, consulta el acuerdo de nivel de servicio (ANS) de Bigtable.

Semántica de los puntos finales de ubicación

El primer segmento del nombre de un endpoint de ubicación de Bigtable es elGoogle Cloud nombre de la región. Un endpoint de ubicación sigue el formato REGION-bigtable.googleapis.com, donde REGION es el nombre de una región, como northamerica-northeast2.

Por ejemplo, si quieres aislar tus datos en la región de Iowa, cuyo nombre es us-central1, la URL del endpoint de ubicación de esa región es us-central1-bigtable.googleapis.com. Para ver una lista de las regiones disponibles, consulta Ubicaciones de Bigtable.

Especificar un endpoint de ubicación

Puedes especificar un endpoint de ubicación de Bigtable mediante Google Cloud CLI, la CLI de cbt o las bibliotecas cliente de Cloud Bigtable.

gcloud

Para especificar un endpoint de ubicación y anular el endpoint global mediante la CLI de gcloud, ejecuta el siguiente comando:

gcloud config set api_endpoint_overrides/bigtable https://REGION-bigtable.googleapis.com/

Sustituye REGION por la región en la que quieras definir un endpoint de ubicación, como us-central1 o europe-west1.

Por ejemplo, para configurar el endpoint de ubicación como us-central1, ejecuta el siguiente comando:

gcloud config set api_endpoint_overrides/bigtable https://us-central1-bigtable.googleapis.com/

cbt

Para especificar un endpoint de ubicación y anular el endpoint global mediante la CLI de cbt, puedes usar la opción --data-endpoint en tu solicitud o añadir lo siguiente al archivo ~/.cbtrc. Para obtener más información sobre cómo crear un archivo ~/.cbtrc, consulta la referencia de la CLI de cbt.

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

Sustituye REGION por la región en la que quieras definir un endpoint de ubicación, como us-central1 o europe-west1.

Por ejemplo, para configurar el endpoint de ubicación como us-central1, añade lo siguiente al archivo ~/.cbtrc:

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

Especificar el endpoint global

gcloud

Para volver a configurar un endpoint de ubicación como endpoint global, ejecuta este comando:

gcloud config unset api_endpoint_overrides/bigtable

cbt

Para especificar el punto de envío global, envíe su solicitud sin usar la opción --data-endpoint. Si has añadido una línea data-endpoint a tu archivo ~/.cbtrc, elimínala.

Restringir el uso de endpoints de API globales

Para ayudar a aplicar el uso de endpoints de ubicación, usa la restricción de política de organización constraints/gcp.restrictEndpointUsage para bloquear las solicitudes al endpoint de la API global. Para obtener más información, consulta Restringir el uso de endpoints.

Siguientes pasos