Présentation des groupes de points de terminaison du réseau Internet

Un groupe de points de terminaison du réseau (NEG, network endpoint group) définit un ensemble de points de terminaison d'un backend pour un équilibreur de charge. Un NEG Internet est un backend hébergé en dehors de Google Cloud. Vous pouvez utiliser un NEG Internet en tant que backend sur un service de backend pour un équilibreur de charge HTTP(S) externe Google Cloud. Cela s'impose si vous souhaitez diffuser des contenus depuis une origine hébergée en dehors de Google Cloud et que vous voulez que votre équilibreur de charge HTTP(S) externe soit utilisé comme interface.

Vous pouvez ainsi :

  • utiliser l'infrastructure périphérique de Google pour interrompre vos connexions utilisateur ;
  • diriger les connexions vers votre origine personnalisée ;
  • utiliser Cloud CDN pour votre origine personnalisée ;
  • diriger le trafic vers votre point de terminaison public via le backbone privé de Google, ce qui améliore la fiabilité et peut réduire la latence entre le client et le serveur.

Ce document traite de l'utilisation de groupes de points de terminaison du réseau Internet avec équilibrage de charge HTTP(S) externe. Vous ne pouvez pas utiliser les groupes de points de terminaison du réseau Internet avec d'autres types d'équilibreurs de charge.

Les termes "origine personnalisée", "point de terminaison externe" et "point de terminaison Internet" sont souvent utilisés indifféremment étant donné qu'ils ont la même signification. Ce document utilise le terme "NEG Internet" ("internet NEG" en anglais) pour désigner la ressource contenant un point de terminaison Internet ("internet endpoint").

Pour plus d'informations sur les NEG zonaux, consultez la page Présentation des groupes de points de terminaison du réseau zonaux.

Pour plus d'informations sur les NEG sans serveur, consultez la page Présentation des groupes de points de terminaison du réseau sans serveur.

Présentation

Les groupes de points de terminaison du réseau (NEG) Internet sont des ressources mondiales hébergées sur une infrastructure disponible sur site ou mise à disposition par des fournisseurs tiers.

Vous pouvez utiliser un NEG Internet comme backend dans un service de backend pour un équilibreur de charge HTTP(S) externe, et affecter le NEG Internet comme origine pour Cloud CDN.

Types de points de terminaison

Lorsque vous créez un groupe de points de terminaison du réseau Internet, vous spécifiez le type de point de terminaison de réseau INTERNET_FQDN_PORT ou INTERNET_IP_PORT :

Adresse du point de terminaison Type Définition À quel moment l'utiliser ?
Nom d'hôte et port facultatif INTERNET_FQDN_PORT Un nom de domaine complet pouvant être résolu publiquement et un port facultatif, par exemple backend.example.com:443 (ports par défaut : 80 pour HTTP et 443 pour HTTPS) Utilisez ce point de terminaison lorsque votre origine externe peut être résolue par le biais d'un nom de domaine complet avec DNS public.
Adresse IP et port facultatif INTERNET_IP_PORT Une adresse IP publique et un port facultatif, par exemple 8.8.8.8 ou 8.8.8.8:443 (ports par défaut : 80 pour HTTP et 443 pour HTTPS) Utilisez ce point de terminaison pour spécifier une adresse IP publique et un port de connexion.

Les NEG Internet ne peuvent comporter qu'un seul point de terminaison et ne sont pas compatibles avec le type de point de terminaison GCE_VM_IP_PORT.

Composants et spécifications d'équilibrage de charge

Vous pouvez utiliser un groupe de points de terminaison du réseau Internet dans un équilibreur de charge à l'aide du niveau de service réseau Premium.

Toutefois, étant donné que chaque NEG Internet ne peut comporter qu'un seul point de terminaison Internet, l'équilibrage de charge n'est pas réellement effectué. Cela signifie que vous ne pouvez utiliser aucun des modes d'équilibrage de charge (qui peuvent par exemple être basés sur un taux ou sur un niveau d'utilisation). L'équilibreur de charge fait uniquement office d'interface, jouant le rôle d'un proxy qui redirige le trafic vers le point de terminaison Internet spécifié.

La sélection du transfert est basée sur un mappage d'URL. Pour les proxys HTTP(S) cibles, le service de backend à utiliser est déterminé via l'analyse du nom d'hôte et du chemin de la requête dans le mappage d'URL. Les équilibreurs de charge HTTP(S) peuvent disposer de plusieurs services de backend référencés dans le mappage d'URL.

  • Chaque équilibreur de charge HTTP(S) externe utilise sa propre règle de transfert externe mondiale pour acheminer le trafic vers l'objet de proxy cible approprié.

  • Si le mappage d'URL envoie la requête à un service de backend qui contient un NEG Internet, le service de backend dirige le trafic vers ce NEG Internet.

L'illustration suivante montre un équilibreur de charge HTTP(S) externe avec plusieurs types de backends, parmi lesquels figure un NEG Internet.

Groupes de points de terminaison du réseau Internet dans le cadre de l'équilibrage de charge (cliquez sur l'image pour l'agrandir)
Groupes de points de terminaison du réseau Internet dans le cadre de l'équilibrage de charge (cliquez sur l'image pour l'agrandir)

Service backend

Comme indiqué dans la section précédente, un NEG Internet est un type de backend compatible avec un service de backend d'un équilibreur de charge HTTP(S) externe. Il vous permet d'utiliser l'infrastructure périphérique mondiale de Google pour mettre fin aux requêtes des utilisateurs devant une origine personnalisée.

Lorsque vous ajoutez un NEG Internet en tant que backend sur un service de backend :

  • Le service de backend ne peut pas également utiliser des NEG ou des groupes d'instances zonaux comme backends. Tous les backends d'un service de backend doivent être du même type.

  • Vous ne pouvez ajouter qu'un seul backend NEG Internet à un même service de backend.

  • Vous ne pouvez ajouter qu'un seul point de terminaison à un NEG Internet.

  • Le service de backend ne peut pas faire référence à une vérification d'état.

  • Le schéma d'équilibrage de charge du service de backend doit être EXTERNAL, et son protocole doit être HTTP, HTTPS ou HTTP2.

  • Les fonctionnalités du service de backend sont disponibles lorsque vous utilisez un NEG Internet en tant que backend. Ces fonctionnalités sont les suivantes :

Vérifications d'état

Un service de backend qui utilise un NEG Internet comme backend n'est pas compatible avec une vérification de l'état. Google Cloud ne fournit pas de vérification d'état pour les points de terminaison Internet ou les origines personnalisées.

Si votre point de terminaison Internet devient inaccessible ou si le nom d'hôte configuré (nom de domaine complet) ne peut pas être résolu, l'équilibreur de charge HTTP(S) externe renvoie une réponse HTTP 502 (passerelle incorrecte) à ses clients.

Authentification des requêtes

Pour autoriser un équilibreur de charge HTTP(S) externe à envoyer des requêtes à votre NEG Internet, procédez comme suit :

  • Interrogez l'enregistrement TXT DNS _cloud-eoips.googleusercontent.com à l'aide d'un outil comme "dig" ou "nslookup". Notez les valeurs CIDR (après ip4:) et vérifiez que ces plages sont autorisées par votre pare-feu ou votre liste de contrôle d'accès (LCA) au cloud.
  • Vous pouvez définir un en-tête personnalisé pour indiquer que la requête provient d'un équilibreur de charge HTTP(S) externe Google Cloud à l'aide d'un en-tête de requête personnalisé.
    • Par exemple, vous pouvez utiliser au moins 16 octets aléatoires générés par chiffrement comme clé partagée.
  • Vous pouvez également activer Identity-Aware Proxy (IAP) et vérifier que le JWT signé de l'en-tête de la requête est signé par Google et que la revendication aud (audience) contient le numéro du projet dans lequel votre équilibreur de charge HTTP(S) externe est défini. Notez que IAP n'est pas compatible avec Cloud CDN.

Validation de la certification du serveur SSL et du SAN

Si vous utilisez HTTPS ou HTTP/2 comme protocole backend, nous vous recommandons vivement d'utiliser INTERNET_FQDN_PORT pour créer votre point de terminaison Internet.

Lorsque vous créez un point de terminaison Internet à l'aide de INTERNET_FQDN_PORT, l'équilibreur de charge valide le certificat de serveur SSL présenté par le point de terminaison Internet et vérifie les points suivants :

  • Le certificat est signé par des autorités de certification connues.
  • Le certificat n'a pas expiré.
  • La signature du certificat est valide.
  • Le nom de domaine complet configuré correspond à l'un des noms d'objet de remplacement (SAN, Subject Alternative Name) du certificat.

Compatibilité avec l'extension SNI pour l'indication du nom du serveur SSL

L'extension SNI n'est disponible que si vous utilisez INTERNET_FQDN_PORT avec HTTPS ou HTTP/2 comme protocole backend. Dans ce cas, le nom de domaine complet configuré est envoyé sous la forme d'une extension SNI dans le message "client hello" lors du handshake SSL entre l'équilibreur de charge et le point de terminaison externe. L'extension SNI n'est pas envoyée lorsque vous configurez le point de terminaison comme INTERNET_IP_PORT, car les littéraux d'adresse IP ne sont pas autorisés dans le champ HostName d'une charge utile SNI.

Résolution de l'adresse IP pour les points de terminaison spécifiés comme noms de domaine complets

Lorsqu'un point de terminaison INTERNET_FQDN_PORT pointe sur un enregistrement DNS qui renvoie plusieurs adresses IP, l'adresse IP est résolue comme suit :

  • L'équilibreur de charge HTTP(S) externe tente de se connecter à la première adresse IP de la réponse DNS. Si cette adresse IP n'est pas accessible, l'équilibreur de charge renvoie une réponse HTTP 502 (passerelle incorrecte). Cela est vrai même si d'autres adresses IP de la réponse DNS sont disponibles.

  • L'équilibreur de charge HTTP(S) externe utilise un résolveur DNS dans la région Google Cloud qui est la plus proche de son client sur Internet. Si l'enregistrement DNS de votre point de terminaison INTERNET_FQDN_PORT renvoie différentes adresses IP en fonction de l'emplacement du client, assurez-vous que l'équilibreur de charge peut atteindre chacune de ces adresses IP.

Pour en savoir plus sur les plages d'adresses IP et les emplacements utilisés par l'infrastructure du résolveur DNS de Google, consultez la documentation sur le DNS public de Google.

Journaux

Les requêtes envoyées par proxy à un point de terminaison Internet sont consignées dans Cloud Logging de la même manière que celles concernant d'autres backends d'équilibrage de charge HTTP(S). Pour en savoir plus, consultez la page Journalisation et surveillance de l'équilibrage de charge HTTP(S).

Si vous activez Cloud CDN pour un point de terminaison Internet, les succès de cache sont également consignés.

Traitement des en-têtes

Lorsqu'un équilibreur de charge HTTP(S) externe envoie par proxy les requêtes adressées à un point de terminaison Internet, il ajuste les en-têtes HTTP comme suit :

  • Certains en-têtes sont fusionnés. Lorsqu'il existe plusieurs instances de la même clé d'en-tête (par exemple, Via), l'équilibreur de charge combine leurs valeurs dans une même liste d'éléments séparés par des virgules correspondant à une clé d'en-tête unique. Seuls les en-têtes dont les valeurs peuvent être représentées sous la forme d'une liste d'éléments séparés par des virgules sont fusionnés. Les autres en-têtes, tels que Set-Cookie, ne sont jamais fusionnés.

  • Lorsque le protocole du service de backend est HTTP ou HTTPS, les en-têtes sont traités comme des noms propres du point de vue de l'usage des majuscules :

    • La première lettre de la clé d'en-tête et chaque lettre suivant un trait d'union (-) sont mises en majuscule afin de préserver la compatibilité avec les clients HTTP/1.1. Par exemple, user-agent est remplacé par User-Agent, et content-encoding devient Content-Encoding.

    • Certains en-têtes (tels que TE [encodage de transfert] et Accept-CH ([indications du client]) sont convertis pour correspondre à la représentation à lettres mixtes standard.

  • Certains en-têtes sont ajoutés ou des valeurs leur sont ajoutées. Les équilibreurs de charge HTTP(S) externes ajoutent ou modifient toujours certains en-têtes, tels que Via et X-Forwarded-For.

Limites

  • Un point de terminaison Internet pour lequel un nom de domaine complet est défini doit pouvoir être résolu par le DNS public de Google.
  • Un point de terminaison Internet doit être une adresse IPv4 routable publiquement ou être associé à une adresse de ce type par le biais de la résolution :
    • Un point de terminaison Internet ne peut pas être une adresse RFC 1918.
    • Il doit être accessible sur Internet. Le point de terminaison ne peut pas n'être accessible que via Cloud VPN ou Cloud Interconnect.
    • Si le point de terminaison Internet fait référence à une API ou à un service Google, le service doit être accessible via le port TCP 80 ou 443 à l'aide du protocole HTTP, HTTPS ou (or) HTTP/2.
  • Vous ne pouvez utiliser des NEG Internet qu'avec le niveau de service réseau Premium, qui est le niveau par défaut. Pour plus d'informations, consultez la documentation sur les niveaux de service réseau.
  • Vous devez respecter le format IP:{optional port} (adresse IP:{port facultatif}) pour le point de terminaison INTERNET_IP_PORT ou FQDN:{optional port} (nom de domaine complet:{port facultatif}) pour INTERNET_FQDN_PORT.
  • Lorsque vous utilisez un NEG avec le type de point de terminaison INTERNET_FQDN_PORT ou INTERNET_IP_PORT, vous ne pouvez ajouter qu'un seul point de terminaison au NEG. Cela signifie que lorsque vous utilisez un NEG avec un type de point de terminaison de réseau INTERNET_FQDN_PORT ou INTERNET_IP_PORT dans un backendService, vous ne pouvez pas joindre plusieurs NEG au backendService.
  • L'équilibrage de charge n'est actuellement pas disponible sur les points de terminaison Internet. Les requêtes sont uniquement transmises par proxy au point de terminaison. L'infrastructure périphérique de Google interrompt vos connexions utilisateur, puis redirige les connexions vers votre point de terminaison Internet.
  • Vous pouvez utiliser des NEG Internet sans que Cloud CDN soit activé. Avec cette configuration, vous ne pouvez toujours pas associer plusieurs NEG au service de backend. Autrement dit, la limitation à un point de terminaison unique reste la même.
  • Aucune vérification d'état n'est effectuée pour le NEG Internet. Si votre point de terminaison Internet devient inaccessible ou s'il est spécifié comme nom de domaine complet mais ne peut pas être résolu, Cloud CDN envoie un message 502 (passerelle incorrecte) en réponse aux requêtes des utilisateurs.
  • Lorsque vous utilisez une origine personnalisée qui attend une valeur particulière pour l'en-tête Host de la requête HTTP, vous devez configurer le service de backend pour définir l'en-tête Host sur cette valeur attendue. Si vous ne configurez pas d'en-tête de requête personnalisé, un service de backend préserve l'en-tête Host utilisé par le client pour se connecter à l'équilibreur de charge HTTP(S) externe Google Cloud. Pour obtenir des informations générales sur les en-têtes de requête personnalisés, consultez la page Créer des en-têtes de requête personnalisés. Pour obtenir un exemple spécifique, consultez la section Configurer un équilibreur de charge avec une origine personnalisée.

Quota

Vous pouvez configurer autant de NEG avec points de terminaison de réseau externes que votre quota de groupes de points de terminaison de réseau existant le permet. Pour plus d'informations, consultez les sections Backends et Points de terminaison par NEG.

Tarifs

Le trafic sortant à destination d'un point de terminaison de NEG Internet (type INTERNET_FQDN_PORT ou INTERNET_IP_PORT) est facturé selon les tarifs de sortie Internet appliqués pour le niveau Premium des services réseau.

La source est basée sur l'emplacement du client et la destination sur celui de votre point de terminaison public.

Pour plus d'informations, consultez les tarifs de Cloud CDN pour les origines personnalisées.

Étape suivante