La connectivité directe est une solution de connexion qui permet des connexions réseau gRPC directes, hautes performances, authentifiées entre une Google Cloud bibliothèque cliente et Cloud Storage, ce qui réduit la latence et la surcharge de connexion. Lorsque vous utilisez gRPC pour vous connecter à Google Cloud l'aide de la connectivité directe, les requêtes initiées via les bibliothèques clientes compatibles sont acheminées directement vers Cloud Storage, en contournant les Google Front Ends (GFE). Google Cloud
La connectivité directe n'est disponible que pour les requêtes effectuées à partir de machines virtuelles (VM) Compute Engine.
Exigences concernant la connectivité directe
La connectivité directe est activée par défaut lorsque vous utilisez des bibliothèques clientes Cloud Storage compatibles pour vous connecter à Cloud Storage, mais elle n'est disponible que si toutes les conditions suivantes sont remplies :
Les VM Compute Engine qui interagissent avec Cloud Storage doivent disposer d'un compte de service associé, même si celui-ci ne dispose d'aucune autorisation. Le compte de service est utilisé pour représenter la VM Compute Engine dans le processus d'établissement de liaison Application Layer Transport Security.
Les VM Compute Engine qui interagissent avec un bucket Cloud Storage doivent être colocalisées avec le bucket. Par exemple, si le bucket se trouve dans
us-central1, la VM peut se trouver dansus-central1-a. Si le bucket se trouve dans une zone multirégionale ou birégionale, la VM doit se trouver dans une région qui compose la zone multirégionale ou birégionale. Par exemple, si un bucket se trouve dans la zoneusmultirégionale, la VM peut se trouver dansus-east4-c.Pour en savoir plus sur les emplacements des buckets, consultez la section Emplacements.
Vos routes et vos règles de pare-feu doivent autoriser le trafic IPv4 à atteindre
34.126.0.0/18et le trafic IPv6 à atteindre2001:4860:8040::/42. En outre, le trafic doit être autorisé à atteindre les points de terminaisonstorage.googleapis.com:443etdirectpath-pa.googleapis.com:443.Pour savoir comment vérifier si une connexion peut être établie avec ces points de terminaison, consultez la section Vérifier les configurations réseau. Pour savoir comment configurer des routes, consultez la section Configurer des routes.
Les bibliothèques clientes Cloud Storage ont des exigences spécifiques en matière d'identifiants pour authentifier les applications auprès de Cloud Storage et rendre la connectivité directe disponible :
La bibliothèque cliente Java nécessite des identifiants de compte utilisateur ou des identifiants de compte de service.
La bibliothèque cliente C++ nécessite des identifiants de compte de service.
La bibliothèque cliente Go nécessite des identifiants de compte de service. Les versions antérieures à 1.52.0 nécessitent les identifiants de compte de service par défaut de la VM qui accède à votre bucket.
Pour afficher le nom du compte que votre VM utilise pour s'authentifier auprès de Cloud Storage, utilisez la commande
gcloud auth list:gcloud auth list --filter=status:ACTIVE --format="value(account)"
Si vous utilisez la bibliothèque cliente Go et que vous devez vérifier si le Google compte utilisé pour l'authentification correspond au compte de service par défaut de votre VM, utilisez la
gcloud compute instances describecommande :gcloud compute instances describe INSTANCE_NAME --format='yaml(serviceAccounts)'
Remplacez
INSTANCE_NAMEpar le nom de votre instance.Pour en savoir plus sur l'authentification, consultez la section Présentation de la gestion des identités. Google
Vérifier la connectivité à l'aide de Google Cloud CLI
Google Cloud CLI peut tester les diagnostics de connectivité directe sur votre bucket en émettant un appel GET au bucket à l'aide de gcloud storage buckets describe gs://example-bucket. Cette section explique comment effectuer un test de diagnostic pour la connectivité directe à l'aide de Google Cloud CLI.
Avant de commencer
Assurez-vous de disposer de l'autorisation IAM
storage.buckets.getsur le bucket, qui peut être accordée à l'aide du rôle Lecteur de bucket hérité de l'espace de stockage (roles/storage.legacyBucketReader).La commande
gcloud alpha storage diagnosen'est disponible que dans Google Cloud CLI version 531.0.0 ou ultérieure. Pour utiliser cette commande, nous vous recommandons de passer à la dernière version de Google Cloud CLI.
Exécuter le diagnostic
Pour vérifier si la connectivité directe est disponible, exécutez
gcloud alpha storage diagnose avec l'argument
--test-type=DIRECT_CONNECTIVITY :
gcloud alpha storage diagnose --test-type=DIRECT_CONNECTIVITY gs://BUCKET_NAME
Remplacez les éléments suivants :
BUCKET_NAME: nom de votre bucket. Exemple :my-bucket.
Si une connexion peut être établie, vous recevez une réponse semblable à la suivante :
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. │
└────────────────────────────┴─────────────────────────────────────────────────────────────────────────┴──────────┘
Vérifier les configurations réseau
Si vous rencontrez une erreur Unable to connect to Traffic Director lors de la vérification de la connectivité directe à l'aide de Google Cloud CLI, suivez les instructions ci-dessous pour vous assurer que vos configurations réseau autorisent le trafic à transiter de vos VM vers les points de terminaison requis.
La connectivité directe nécessite un service hébergé sur directpath-pa.googleapis.com:443 et sur storage.googleapis.com:443. Pour vérifier si une connexion peut être établie avec le service, effectuez un appel curl à directpath-pa.googleapis.com:443 ou storage.googleapis.com:443. Exemple :
curl directpath-pa.googleapis.com:443
Si une connexion peut être établie, vous recevez une réponse vide sans erreur :
curl: (52) Empty reply from server
Si une connexion ne peut pas être établie, vous recevez une erreur semblable à la suivante :
curl: (56) Recv failure: Connection reset by peer
Limites
La connectivité directe n'est pas compatible avec Private Service Connect.
Dépannage
Cette section fournit des informations et des solutions pour les erreurs qui peuvent se produire lors de l'utilisation de la connectivité directe gRPC.
Trop de fichiers ouverts
Problème : lorsque vous utilisez la connectivité directe gRPC, votre
application peut maintenir un nombre de connexions simultanées à
Cloud Storage plus élevé que les API REST. Dans les environnements à parallélisme élevé, cela peut dépasser la limite de descripteurs de fichiers du système d'exploitation, ce qui entraîne une erreur too many open files. Cette erreur peut se produire lorsque vous utilisez Google Cloud CLI.
Solution : Pour résoudre ce problème, choisissez l'une des méthodes suivantes :
Définissez le nombre maximal de fichiers ouverts pour votre processus à l'aide de
ulimit -n $(ulimit -Hn).Réduisez le nombre de tâches simultanées autorisées à l'aide de la commande
gcloud config setavec les propriétésstorage/process_countetstorage/thread_count. Nous vous recommandons une valeur maximale de 12 tâches. Pour en savoir plus, consultez la documentation de référence surgcloud config set. Notez que la réduction du nombre de tâches simultanées autorisées réduit le parallélisme et peut avoir un impact sur les performances.