Conectividad directa de gRPC

La conectividad directa es una solución de conexión que permite establecer conexiones de red gRPC directas, autenticadas y de alto rendimiento entre una biblioteca de clientes de Google Cloud y Cloud Storage, lo que reduce la latencia y la sobrecarga de conexión. Cuando usas gRPC para conectarte a Google Cloud mediante conectividad directa, las solicitudes iniciadas a través de las bibliotecas de cliente Google Cloud compatibles se enrutan directamente a Cloud Storage, sin pasar por los Google Front Ends (GFEs).

La conectividad directa solo está disponible para las solicitudes realizadas desde máquinas virtuales (VMs) de Compute Engine.

Requisitos de conectividad directa

La conectividad directa está habilitada de forma predeterminada cuando se usan bibliotecas de cliente de Cloud Storage compatibles para conectarse a Cloud Storage, pero solo está disponible si se cumplen todas las condiciones siguientes:

  • Las máquinas virtuales de Compute Engine que interactúen con Cloud Storage deben tener una cuenta de servicio asociada, aunque no tenga permisos. La cuenta de servicio se usa para representar la VM de Compute Engine en el proceso de handshake de seguridad de transporte en la capa de la aplicación.

  • Las máquinas virtuales de Compute Engine que interactúan con un segmento de Cloud Storage deben estar ubicadas en el mismo lugar que el segmento. Por ejemplo, si el contenedor está en us-central1, la máquina virtual puede estar en us-central1-a. Si el segmento está en una región multirregional o birregional, la VM debe estar ubicada en una de las regiones que componen la región multirregional o birregional. Por ejemplo, si un segmento se encuentra en la multirregión us, la máquina virtual puede estar en us-east4-c.

    Para obtener más información sobre las ubicaciones de los segmentos, consulta Ubicaciones.

  • Tus rutas y reglas de cortafuegos permiten que el tráfico IPv4 llegue a 34.126.0.0/18 y que el tráfico IPv6 llegue a 2001:4860:8040::/42. Además, se debe permitir que el tráfico llegue a los endpoints storage.googleapis.com:443 y directpath-pa.googleapis.com:443.

    Para saber cómo comprobar si se puede establecer una conexión con estos endpoints, consulta Comprobar las configuraciones de red. Para obtener información sobre cómo configurar rutas, consulta Configurar rutas.

  • Las bibliotecas de cliente de Cloud Storage tienen requisitos de credenciales específicos para autenticar aplicaciones en Cloud Storage y que la conectividad directa esté disponible:

    • La biblioteca de cliente de Java requiere las credenciales de una cuenta de usuario o de una cuenta de servicio.

    • La biblioteca de cliente de C++ requiere credenciales de cuenta de servicio.

    • La biblioteca de cliente de Go requiere credenciales de cuenta de servicio. Las versiones anteriores a la 1.52.0 requieren las credenciales de la cuenta de servicio predeterminada de la VM que accede a tu segmento.

    Para ver el nombre de la cuenta que usa tu VM para autenticarse en Cloud Storage, usa el comando gcloud auth list:

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

    Si usas la biblioteca de cliente de Go y necesitas comprobar si la cuenta que se usa para autenticarte coincide con la cuenta de servicio predeterminada de tu máquina virtual, usa el comando gcloud compute instances describe: Google

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

    Sustituye INSTANCE_NAME por el nombre de tu instancia.

    Para obtener más información sobre la autenticación, consulta el resumen de la gestión de identidades Google .

Comprobar la conectividad con Google Cloud CLI

La CLI de Google Cloud puede probar los diagnósticos de conectividad directa en tu segmento enviando una llamada GET al segmento mediante gcloud storage buckets describe gs://example-bucket. En esta sección se describe cómo realizar una prueba de diagnóstico de conectividad directa mediante la CLI de Google Cloud.

Antes de empezar

  1. Asegúrate de tener el storage.buckets.getpermiso de gestión de identidades y accesos en el segmento, que se puede conceder mediante el rol Lector de segmentos antiguos de Storage (roles/storage.legacyBucketReader).

  2. El comando gcloud alpha storage diagnose solo está disponible en la versión 531.0.0 o posterior de la CLI de Google Cloud. Para usar este comando, te recomendamos que actualices a la versión más reciente de la CLI de Google Cloud.

Realizar el diagnóstico

Para comprobar si la conectividad directa está disponible, ejecuta gcloud alpha storage diagnose con el argumento --test-type=DIRECT_CONNECTIVITY:

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

Haz los cambios siguientes:

  • BUCKET_NAME: el nombre de tu segmento. Por ejemplo, my-bucket.

Si se puede establecer una conexión, recibirás una respuesta similar a la siguiente:

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. │
    └────────────────────────────┴─────────────────────────────────────────────────────────────────────────┴──────────┘

Comprobar las configuraciones de red

Si se produce un error Unable to connect to Traffic Director al comprobar la conectividad directa con la CLI de Google Cloud, sigue estas instrucciones para asegurarte de que tus configuraciones de red permiten que el tráfico vaya de tus VMs a los endpoints necesarios.

La conectividad directa requiere un servicio alojado en directpath-pa.googleapis.com:443 y en storage.googleapis.com:443. Para comprobar si se puede establecer una conexión con el servicio, haz una llamada curl a directpath-pa.googleapis.com:443 o storage.googleapis.com:443. Por ejemplo:

curl directpath-pa.googleapis.com:443

Si se puede establecer una conexión, recibirás una respuesta vacía sin errores:

curl: (52) Empty reply from server

Si no se puede establecer una conexión, recibirás un error similar al siguiente:

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

Limitaciones

La conectividad directa no admite Private Service Connect.