Conetividade direta gRPC

A conetividade direta é uma solução de ligação que permite ligações de rede gRPC diretas, autenticadas e de alto desempenho entre uma biblioteca de cliente e o Cloud Storage, o que resulta numa latência e num custo geral de ligação mais baixos. Google Cloud Quando usa o gRPC para se ligar ao Google Cloud usando a conetividade direta, os pedidos iniciados através das bibliotecas cliente Google Cloud suportadas são encaminhados diretamente para o Cloud Storage, ignorando os front-ends da Google (GFEs).

A conetividade direta só está disponível para pedidos feitos a partir de máquinas virtuais (VMs) do Compute Engine.

Requisitos para a conetividade direta

A conetividade direta está ativada por predefinição quando usa bibliotecas cliente do Cloud Storage suportadas para se ligar ao Cloud Storage, mas só fica disponível se forem cumpridas todas as seguintes condições:

  • As VMs do Compute Engine que interagem com o Cloud Storage têm de ter uma conta de serviço anexada, mesmo que a conta de serviço não tenha autorizações. A conta de serviço é usada para representar a VM do Compute Engine no processo de sincronização do Application Layer Transport Security.

  • As VMs do Compute Engine que interagem com um contentor do Cloud Storage têm de estar localizadas juntamente com o contentor. Por exemplo, se o contentor estiver em us-central1, a VM pode estar localizada em us-central1-a. Se o contentor estiver numa multirregião ou numa região dupla, a VM tem de estar localizada numa região que faça parte da multirregião ou da região dupla. Por exemplo, se um contentor estiver localizado na us multirregião, a VM pode estar localizada em us-east4-c.

    Para mais informações acerca das localizações dos contentores, consulte o artigo Localizações.

  • Os seus trajetos e regras de firewall permitem que o tráfego IPv4 alcance 34.126.0.0/18 e o tráfego IPv6 alcance 2001:4860:8040::/42. Além disso, o tráfego tem de ter autorização para alcançar os pontos finais storage.googleapis.com:443 e directpath-pa.googleapis.com:443.

    Para saber como verificar se é possível estabelecer uma ligação a estes pontos finais, consulte o artigo Verifique as configurações de rede. Para obter informações sobre a configuração de trajetos, consulte o artigo Configure trajetos.

  • As bibliotecas cliente do Cloud Storage têm requisitos de credenciais específicos para autenticar aplicações no Cloud Storage e ter a conetividade direta disponível:

    • A biblioteca de cliente Java requer credenciais da conta de utilizador ou credenciais da conta de serviço.

    • A biblioteca de cliente C++ requer credenciais da conta de serviço.

    • A biblioteca de cliente Go requer credenciais da conta de serviço. As versões anteriores a 1.52.0 requerem as credenciais da conta de serviço predefinida da VM que acede ao seu contentor.

    Para ver o nome da conta que a sua VM usa para se autenticar no Cloud Storage, use o comando gcloud auth list:

    gcloud auth list --filter=status:ACTIVE --format="value(account)"
    

    Se estiver a usar a biblioteca de cliente Go e precisar de verificar se a conta usada para a autenticação corresponde à conta de serviço predefinida da sua VM, use o comando gcloud compute instances describe: Google

    gcloud compute instances describe INSTANCE_NAME --format='yaml(serviceAccounts)'
    

    Substitua INSTANCE_NAME pelo nome da sua instância.

    Para mais informações sobre a autenticação, consulte a Vista geral da Google gestão de identidades.

Verifique a conetividade através da CLI do Google Cloud

A CLI Google Cloud pode testar os diagnósticos de conetividade direta no seu contentor emitindo uma chamada GET para o contentor através de gcloud storage buckets describe gs://example-bucket. Esta secção descreve como realizar um teste de diagnóstico para a conetividade direta através da CLI do Google Cloud.

Antes de começar

  1. Certifique-se de que tem a storage.buckets.getautorização de IAM no contentor, que pode ser concedida através da função Leitor do contentor antigo do Storage (roles/storage.legacyBucketReader).

  2. O comando gcloud alpha storage diagnose só está disponível na versão 531.0.0 ou posterior da CLI gcloud. Para usar este comando, recomendamos que atualize para a versão mais recente da CLI Google Cloud.

Execute o diagnóstico

Para verificar se a conetividade direta está disponível, execute o comando gcloud alpha storage diagnose com o argumento --test-type=DIRECT_CONNECTIVITY:

gcloud alpha storage diagnose --test-type=DIRECT_CONNECTIVITY gs://BUCKET_NAME

Substitua o seguinte:

  • BUCKET_NAME: o nome do seu contentor. Por exemplo, my-bucket.

Se for possível estabelecer uma ligação, recebe uma resposta semelhante à seguinte:

Using my-bucket bucket for the diagnostic tests.
Bucket location : US
Bucket storage class : STANDARD
Running diagnostic: Direct Connectivity Diagnostic...
WARNING: This diagnostic is experimental. The output may change, and checks may be added or removed at any time. Please do not rely on the diagnostic being present.
Finished running diagnostic: Direct Connectivity Diagnostic
Generating diagnostic report...
NAME
Direct Connectivity Diagnostic
    ┌────────────────────────────┬─────────────────────────────────────────────────────────────────────────┬──────────┐
    │            NAME            │                           PAYLOAD_DESCRIPTION                           │  RESULT  │
    ├────────────────────────────┼─────────────────────────────────────────────────────────────────────────┼──────────┤
    │ Direct Connectivity Call   │ Able to get bucket metadata using Direct Connectivity network path.     │ Success. │
    └────────────────────────────┴─────────────────────────────────────────────────────────────────────────┴──────────┘

Verifique as configurações de rede

Se encontrar um erro Unable to connect to Traffic Director ao verificar a conetividade direta através da CLI do Google Cloud, use as seguintes instruções para garantir que as configurações de rede permitem a passagem de tráfego das VMs para os pontos finais necessários.

A conetividade direta requer um serviço alojado em directpath-pa.googleapis.com:443 e em storage.googleapis.com:443. Para verificar se é possível estabelecer uma ligação ao serviço, faça uma chamada curl para directpath-pa.googleapis.com:443 ou storage.googleapis.com:443. Por exemplo:

curl directpath-pa.googleapis.com:443

Se for possível estabelecer uma ligação, recebe uma resposta vazia sem erros:

curl: (52) Empty reply from server

Se não for possível estabelecer uma ligação, recebe um erro semelhante ao seguinte:

curl: (56) Recv failure: Connection reset by peer

Limitações

A conetividade direta não suporta o Private Service Connect.