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 enus-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ónus
, la máquina virtual puede estar enus-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 a2001:4860:8040::/42
. Además, se debe permitir que el tráfico llegue a los endpointsstorage.googleapis.com:443
ydirectpath-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
: Googlegcloud 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
Asegúrate de tener el
storage.buckets.get
permiso 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
).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.