Endpoints regionais e globais

Nesta página, descrevemos os endpoints do Bigtable, explicamos o que é preciso considerar antes de usá-los e mostramos como definir um endpoint usando a CLI cbt.

Para enviar solicitações ao Bigtable, use um endpoint de serviço global ou regional. Os endpoints regionais do Bigtable garantem que os dados de uma instância sejam armazenados e tratados na região do Bigtable em que os dados ficam. Talvez seja necessário usar endpoints regionais para o Bigtable em uma região geográfica específica para atender às necessidades de segurança e conformidade do seu projeto.

Antes de ler este documento, familiarize-se com instâncias, clusters e nós e perfis de app.

Os principais conceitos incluem:

  • Endpoint de serviço: um URL base que especifica o endereço de rede de um serviço de API. O Bigtable tem endpoints globais e regionais.

  • Endpoint global: permite que o Bigtable armazene e direcione os dados em uma instância do Bigtable para qualquer região que contenha um dos clusters da instância. O endpoint global da API Cloud Bigtable (API Data) é bigtable.googleapis.com. O endpoint padrão da API Data acessa o endpoint global.

  • Endpoint regional: impõe restrições regionais, garantindo que o Bigtable armazene e processe dados em uma região especificada. Só é possível usar endpoints regionais com a API Cloud Bigtable (API Data). O Bigtable não oferece suporte a endpoints regionais para a API Cloud Bigtable Admin.

Quando usar endpoints regionais

A vantagem de usar um endpoint regional em vez de um endpoint global é que o endpoint regional oferece isolamento e proteção regionais para atender aos requisitos regulamentares, de segurança e de conformidade.

No entanto, os endpoints regionais não são compatíveis com o Data Boost nem com a API Cloud Bigtable Admin. Além disso, não é possível configurar o Bigtable para atingir uma porcentagem de tempo de atividade mensal de >=99,999% ao usar endpoints regionais. Para mais informações, consulte a seção Considerações para usar um endpoint regional deste documento.

Quando usar endpoints globais

Use um endpoint global nos seguintes casos:

  • Você não tem requisitos de restrição regional que exijam o uso de um endpoint regional.
  • Você precisa usar o Data Boost.
  • Você precisa usar a API Cloud Bigtable Admin.
  • Você precisa de uma porcentagem de tempo de atividade mensal de pelo menos 99,999%.

Considerações para usar um endpoint regional

Se você usar um endpoint regional, considere os seguintes fatores:

Locais do cluster

Antes de usar um endpoint regional, crie uma instância com pelo menos um cluster na região onde você quer isolar seus dados. Os endpoints regionais do Bigtable estão disponíveis em regiões específicas do Bigtable. Para conferir uma lista de regiões disponíveis, consulte Endpoints de serviço regionais.

Só é possível usar um endpoint regional que pertença à região em que você quer isolar os dados. Por exemplo, se um cluster estiver na região us-central1, não será possível usar bigtable.us-west1.rep.googleapis.com para atender às solicitações.

Se você tentar usar um endpoint regional para acessar um cluster em uma região diferente, o Bigtable vai rejeitar a solicitação com uma mensagem de erro FAILED_PRECONDITION informando que nenhum cluster está acessível usando o cluster e o endpoint especificados. Para mais informações sobre essa mensagem de erro, consulte Códigos de status do Bigtable.

Perfis de app

Depois de definir um endpoint regional, você precisa usar um perfil de aplicativo configurado para encaminhar solicitações para um cluster na região do endpoint.

Se você tentar usar um perfil de aplicativo configurado para enviar gravações apenas para um cluster (usando o roteamento de cluster único) ou clusters em uma região diferente do endpoint (usando o roteamento de vários clusters), vai receber a mensagem de erro FAILED_PRECONDITION. Para mais informações sobre o roteamento de cluster, consulte Política de roteamento.

Se você usar um perfil de app configurado para rotear para qualquer cluster em uma instância para alta disponibilidade (HA) e também usar um endpoint regional, o endpoint regional garantirá que todas as solicitações sejam roteadas apenas para clusters na região dele, mesmo que a instância tenha clusters em outras regiões. O failover automático é restrito. Por isso, as solicitações são disponibilizadas apenas de clusters na região do endpoint.

Veja um exemplo em que você envia solicitações usando um perfil de app configurado para roteamento de vários clusters na instância que tem clusters em us-west1-a (Oregon), us-west1-b (Oregon) e us-central1-a (Iowa). Se você enviar essas solicitações ao endpoint regional bigtable.us-central1.rep.googleapis.com, todas as solicitações serão exibidas por us-central1-a, mesmo que você não reconfigure o perfil de app. As solicitações que não podem ser atendidas por us-central1-a falham.

Replicação

Os endpoints regionais não afetam nem impedem a replicação. Se você configurar um endpoint regional na região A e adicionar um cluster à instância na região B, os dados serão replicados para a região B da mesma forma que se você usasse o endpoint global.

Para evitar a replicação de dados em outra região, crie clusters somente na região pretendida.

Para impedir que os usuários da organização adicionem clusters fora da região do endpoint, defina uma política da organização que use restrições de local.

Disponibilidade

Quando você usa endpoints regionais, não é possível configurar o Bigtable para atingir uma porcentagem de tempo de atividade mensal de >=99,999%. Um tempo de atividade mensal >=99,999% requer failover automático de solicitações acima dos limites regionais. Um endpoint regional impede o failover automático porque limita todas as solicitações a uma única região. Para mais informações sobre porcentagens de tempo de atividade mensal, consulte o contrato de nível de serviço (SLA) do Bigtable.

Semântica do endpoint regional

Um endpoint regional segue o formato bigtable.REGION.rep.googleapis.com, em que REGION é um nome de região Google Cloud , como northamerica-northeast2.

Por exemplo, se você quiser isolar os dados na região de Iowa, porque o nome da região para Iowa é us-central1, o URL do endpoint regional para Iowa é bigtable.us-central1.rep.googleapis.com.

Especificar um endpoint regional

É possível especificar um endpoint regional do Bigtable usando a CLI cbt ou as bibliotecas de cliente do Cloud Bigtable.

cbt

Para especificar um endpoint regional e substituir o endpoint global usando a CLI cbt, use a opção --data-endpoint em sua solicitação ou adicione o seguinte ao seu arquivo ~/.cbtrc (em inglês). Para mais informações sobre como criar um arquivo ~/.cbtrc, consulte a referência da CLI cbt.

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

Substitua REGION pela região em que você quer definir um endpoint regional, como us-central1 ou europe-west1.

Por exemplo, para configurar o endpoint regional como us-central1, adicione isto ao arquivo ~/.cbtrc:

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

Especifique o endpoint global

cbt

Para especificar o endpoint global, envie sua solicitação sem usar a opção --data-endpoint. Se você já tiver adicionado uma linha data-endpoint ao arquivo ~/.cbtrc, exclua-a.

Restringir o uso de endpoints de API globais

Para ajudar na aplicação do uso de endpoints regionais, utilize a restrição de política da organização constraints/gcp.restrictEndpointUsage para bloquear solicitações ao endpoint da API global. Para mais informações, consulte Restringir o uso de endpoints.

A seguir