Connectivité directe gRPC

La connectivité directe est une solution de connexion qui permet d'établir des connexions réseau gRPC directes, authentifiées et hautes performances entre une bibliothèque cliente Google Cloud et Cloud Storage. Elle permet de réduire la latence et la surcharge de connexion. Lorsque vous utilisez gRPC pour vous connecter à Google Cloudavec une connectivité directe, les requêtes initiées via les bibliothèques clientes Google Cloudcompatibles sont directement acheminées vers Cloud Storage, en contournant les Google Front Ends (GFE).

La connectivité directe n'est disponible que pour les requêtes effectuées à partir de machines virtuelles (VM) Compute Engine.

Conditions requises pour 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. Toutefois, 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 ce compte de service 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 dans us-central1-a. Si le bucket se trouve dans une zone multirégionale ou birégionale, la VM doit être située dans une région qui compose la zone multirégionale ou birégionale. Par exemple, si un bucket se trouve dans la région multirégionale us, la VM peut se trouver dans us-east4-c.

    Pour en savoir plus sur les emplacements des buckets, consultez Emplacements.

  • Vos routes et vos règles de pare-feu permettent au trafic IPv4 d'atteindre 34.126.0.0/18 et au trafic IPv6 d'atteindre 2001:4860:8040::/42. De plus, le trafic doit être autorisé à atteindre les points de terminaison storage.googleapis.com:443 et directpath-pa.googleapis.com:443.

    Pour savoir comment vérifier si une connexion peut être établie avec ces points de terminaison, consultez Vérifier les configurations réseau. Pour savoir comment configurer des routes, consultez Configurer des routes.

  • Les bibliothèques clientes Cloud Storage ont des exigences spécifiques en termes d'identifiants pour authentifier les applications auprès de Cloud Storage et permettre une connectivité directe :

    • La bibliothèque cliente Java nécessite des identifiants de compte utilisateur ou 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 du compte de service par défaut de la VM accédant à votre bucket.

    Pour afficher le nom du compte utilisé par votre VM 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 compte Google utilisé pour l'authentification correspond au compte de service par défaut de votre VM, utilisez la commande gcloud compute instances describe :

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

    Remplacez INSTANCE_NAME par le nom de votre instance.

    Pour en savoir plus sur l'authentification, consultez la présentation de la gestion des identités Google .

Vérifier la connectivité à l'aide de Google Cloud CLI

La Google Cloud CLI peut tester les diagnostics de connectivité directe sur votre bucket en émettant un appel GET vers le 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 la Google Cloud CLI.

Avant de commencer

  1. Assurez-vous de disposer de l'autorisation IAM storage.buckets.get sur le bucket, qui peut être accordée à l'aide du rôle Lecteur des anciens buckets Storage (roles/storage.legacyBucketReader).

  2. La commande gcloud alpha storage diagnose n'est disponible que dans la version 531.0.0 ou ultérieure de Google Cloud CLI. 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 permettent au trafic de 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 storage.googleapis.com:443. Pour vérifier si une connexion peut être établie avec le service, effectuez un appel curl vers 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 un message d'erreur semblable à celui-ci :

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

Limites

La connectivité directe n'est pas compatible avec Private Service Connect.