Tous les produits
Search
Centre de documentation

Server Load Balancer:Load balance gRPC traffic

Dernière mise à jour :Aug 08, 2026

gRPC est un framework open source d'appel de procédure distante (RPC) haute performance. Lorsque vous utilisez gRPC pour la communication entre services backend, vous pouvez recourir à Application Load Balancer (ALB) pour équilibrer la charge du trafic gRPC et offrir un point d'entrée unifié. gRPC communique via le protocole HTTP/2, et ALB prend en charge le transfert du trafic vers des groupes de serveurs backend gRPC via des écouteurs HTTPS ou HTTP.

Informations générales

gRPC est un framework open source d'appel de procédure distante (RPC) haute performance. Il utilise Protocol Buffers comme langage de définition d'interface (IDL) et communique via HTTP/2.

gRPC résout les problèmes de communication interlangages entre les services. Son IDL génère automatiquement le code nécessaire à la définition et à l'appel des services distants. Grâce à l'encodage binaire et au multiplexage HTTP/2, gRPC offre des performances élevées, une faible latence et un transfert de données efficace.

gRPC convient aux architectures de microservices, à la communication interlangages et aux systèmes distribués à grande échelle. Il prend en charge les appels unaires, ainsi que les flux de requêtes et de réponses, y compris le streaming bidirectionnel.

Pour plus d'informations sur gRPC, consultez la documentation officielle de gRPC.

Scénario

Une entreprise déploie des services gRPC dans un VPC situé dans la région Chine (Hangzhou). Ce VPC héberge une instance ALB et un groupe de serveurs activé pour gRPC. L'instance ALB est configurée avec un écouteur HTTPS activant HTTP/2, tandis que le groupe de serveurs intègre des contrôles d'état gRPC.

Les clients doivent accéder aux services gRPC déployés dans le VPC par l'intermédiaire de l'instance ALB.

image

Prérequis

Étape 1 : Créer un groupe de serveurs

  1. Connectez-vous à la console ALB.

  2. Dans la barre de navigation supérieure, sélectionnez la région où l'instance ALB est déployée.

  3. Dans le volet de navigation de gauche, choisissez ALB > Server Groups.

  4. Sur la page Server Groups, cliquez sur Create Server Group.

  5. Dans la boîte de dialogue Create Server Group, configurez les paramètres suivants, puis cliquez sur Create.

    Cette rubrique décrit uniquement les paramètres pertinents pour ce scénario. Pour les autres paramètres, conservez les valeurs par défaut ou configurez-les selon vos besoins.

    Paramètre

    Description

    Server Group Type

    Sélectionnez un type de groupe de serveurs. Dans cet exemple, l'option Server est choisie.

    VPC

    Sélectionnez le VPC de votre instance ALB. Seuls les serveurs de ce VPC peuvent être ajoutés au groupe de serveurs.

    Backend Protocol

    Dans cet exemple, sélectionnez gRPC.

    Health Check

    Activez cette fonctionnalité.

    Health Check Settings

    Cliquez sur Modify et configurez les paramètres du contrôle d'état :

    • Health Check Protocol : Dans cet exemple, sélectionnez gRPC.

    • Health Check Method : Dans cet exemple, sélectionnez POST.

    • Health Check Status Codes : Sélectionnez le code d'état indiquant une réponse saine. Celui-ci doit correspondre au code d'état renvoyé par votre service gRPC. Dans cet exemple, le code d'état est 12.

  6. Sur la page Server Groups, localisez le groupe de serveurs que vous avez créé et cliquez sur son ID.

  7. Cliquez sur l'onglet Backend Servers, puis sur Add Backend Server.

  8. Dans le panneau Add Backend Server, sélectionnez les instances ECS que vous avez créées, puis cliquez sur Next.

  9. À l'étape Ports/Weights, définissez le port et le poids pour chaque instance ECS, puis cliquez sur OK.

    Remarque

    Le port configuré pour une instance ECS doit correspondre au port utilisé par le service gRPC. Assurez-vous également que les règles du groupe de sécurité de l'instance autorisent le trafic sur ce port.

Étape 2 : Configurer un écouteur HTTPS

  1. Connectez-vous à la console Application Load Balancer (ALB).

  2. Dans la barre de navigation supérieure, sélectionnez la région où votre instance est déployée.

  3. Dans le volet de navigation de gauche, cliquez sur Instances.

  4. Sur la page Instances, localisez l'instance à gérer et cliquez sur Create Listener dans la colonne Actions.

  5. Sur la page Configure Listener, configurez les paramètres suivants. Conservez les valeurs par défaut pour les autres paramètres ou adaptez-les selon vos besoins. Cliquez ensuite sur Next.

    Paramètre

    Description

    Listener Protocol

    Sélectionnez HTTPS.

    Listener Port

    Dans cet exemple, le port 443 est utilisé.

    Remarque
    • Si le protocole backend d'un groupe de serveurs est défini sur gRPC, le protocole de l'écouteur peut être HTTP ou HTTPS, et HTTP/2,0 doit être activé pour les deux.

    • La prise en charge de HTTP/2,0 pour les écouteurs HTTP est une fonctionnalité soumise à liste blanche. Pour l'utiliser, contactez votre gestionnaire de compte afin de demander l'accès.

  6. Sur la page Configure SSL Certificate, configurez le paramètre suivant. Conservez les valeurs par défaut pour les autres paramètres ou adaptez-les selon vos besoins. Cliquez ensuite sur Next.

    Paramètre

    Description

    Server Certificate

    Sélectionnez le certificat SSL préparé.

  7. Sur la page Select Server Group, configurez le paramètre suivant. Conservez les valeurs par défaut pour les autres paramètres ou adaptez-les selon vos besoins. Cliquez ensuite sur Next.

    Paramètre

    Description

    Server Group

    Sélectionnez le groupe de serveurs gRPC que vous avez créé.

  8. Sur la page Configuration Review, vérifiez la configuration. Si celle-ci est correcte, cliquez sur Submit et attendez la création de l'écouteur.

Étape 3 : Configurer la résolution DNS

Pour les environnements de production, nous recommandons de mapper un nom de domaine personnalisé vers le nom de domaine de l'instance ALB en créant un enregistrement CNAME.

  1. Dans le volet de navigation de gauche, choisissez ALB > Instances.

  2. Sur la page Instances, copiez le nom DNS de l'instance ALB créée.

  3. Suivez ces étapes pour ajouter un enregistrement CNAME.

    Remarque

    Si votre nom de domaine est enregistré auprès d'un fournisseur autre qu'Alibaba Cloud, vous devez l'ajouter à la console Alibaba Cloud DNS avant de pouvoir configurer la résolution DNS. Pour plus d'informations, consultez la rubrique Gestion des noms de domaine. Si votre nom de domaine est enregistré auprès d'Alibaba Cloud, poursuivez avec les étapes suivantes.

    1. Connectez-vous à la console Alibaba Cloud DNS.

    2. Sur la page Public Zone, localisez le nom de domaine cible et cliquez sur Settings dans la colonne Operations.

    3. Sur la page Settings, cliquez sur Add Record.

    4. Dans le panneau Add Record, configurez l'enregistrement CNAME en définissant les paramètres suivants, puis cliquez sur OK.

      Paramètre

      Description

      Record Type

      Sélectionnez CNAME dans la liste déroulante.

      Hostname

      Préfixe de votre nom de domaine. Ce tutoriel utilise @.

      Remarque

      Pour utiliser un domaine racine, définissez le hostname sur @.

      Query Source

      Sélectionnez Default.

      Record Value

      Saisissez le nom DNS de l'instance ALB que vous avez copié.

      TTL

      Le TTL (Time to live) représente la durée pendant laquelle un enregistrement DNS reste mis en cache sur un serveur DNS. Conservez la valeur par défaut.

Étape 4 : Vérifier la connectivité

Après avoir suivi les étapes précédentes, les clients peuvent accéder aux services gRPC via ALB. Utilisez un outil tel que grpcurl pour tester la connectivité.

Remarque

Vous ne pouvez pas accéder directement à un service gRPC depuis un navigateur web. Nous vous recommandons d'utiliser un outil tel que grpcurl pour tester la connectivité.

Sur le client, exécutez la commande grpcurl -insecure -v <Nom de domaine>:<Port de l'écouteur> <Nom du service gRPC>/<Méthode> pour accéder au service gRPC sur l'instance ECS.

Une réponse similaire à celle ci-dessous confirme que les clients peuvent accéder au service gRPC via ALB.

[root@iZbp1xxx.0Z ~]# grpcurl -insecure -v xxx.com:443 helloworld.Greeter/SayHello
Resolved method descriptor:
rpc SayHello ( .helloworld.HelloRequest ) returns ( .helloworld.HelloReply );
Request metadata to send:
(empty)
Response headers received:
accept-encoding: identity,gzip
content-type: application/grpc
date: Mon, 04 Jul 2022 08:53:01 GMT
grpc-accept-encoding: identity,deflate,gzip
vary: Accept-Encoding
Response contents:
{
  "message": "remoteip:47.xxx.xxx.195 x-forwarded-for:47.xxx.xxx.xx5 user-agent:grpcurl/v1.8.0 grpc-go/1.30.0 hostname:iZbp12xxx0kZ server addr:192.168.1.239 "
}
Response trailers received:
(empty)
Sent 0 requests and received 1 response

Documentation connexe

  • Pour plus d'informations sur les paramètres et les considérations relatifs aux écouteurs HTTPS, consultez la rubrique Ajout d'un écouteur HTTPS.

  • Pour plus d'informations sur les paramètres et les considérations relatifs aux groupes de serveurs, consultez la rubrique Création et gestion de groupes de serveurs.

  • Pour plus d'informations sur les paramètres et les considérations relatifs aux contrôles d'état, consultez la rubrique Contrôles d'état ALB.