Création d'un équilibreur de charge d'application

Vous pouvez créer un équilibreur de charge d'application (IBM Cloud® Application Load Balancer for VPC) pour répartir le trafic entrant entre plusieurs instances. Vous pouvez utiliser l'ALB avec des instances de serveurs virtuels, des instances de serveurs bare metal et d'autres dispositifs dont les adresses IP sont accessibles à l'équilibreur de charge, comme les instances Power Systems™ Virtual Server connectées via IBM Cloud Direct Link.

Création d'un équilibreur de charge d'application dans la console

Pour créer un équilibreur de charge d'application :

  1. Dans votre navigateur, ouvrez la console IBM Cloud et connectez-vous à votre compte.

  2. Sélectionnez l' icône Menu du menu Navigation, puis cliquez sur l'icône Infrastructure VPC > Réseau > Équilibreurs de charge.

  3. Sur la page « Équilibreurs de charge pour VPC », cliquez sur « Créer ».

  4. Pour le type d'équilibreur de charge, sélectionnez la vignette « Application Load Balancer (ALB) ».

  5. Dans la section « Emplacement », modifiez le champ suivant, si nécessaire.

    • Région : indique la région dans laquelle vous souhaitez créer l'équilibreur de charge.
  6. Dans la section Détails, indiquez les informations suivantes :

    • Nom : entrez un nom pour l'équilibreur de charge, par exemple my-load-balancer.

    • Groupe de ressources : sélectionnez un groupe de ressources pour l'équilibreur de charge.

    • Mots-clés: (Facultatif) Ajoutez des mots-clés pour vous aider à organiser et à retrouver vos ressources. Vous pourrez ajouter d'autres balises ultérieurement. Pour plus d'informations, voir Utilisation d'étiquettes.

    • Balises de gestion des accès: (Facultatif) Ajoutez des balises de gestion des accès aux ressources pour faciliter l'organisation des relations de contrôle d'accès. key:value est le seul format pris en charge pour les étiquettes de gestion des accès. Pour plus d'informations, voir Contrôle de l'accès aux ressources à l'aide d'étiquettes.

    • Cloud privé virtuel : sélectionnez votre cloud privé virtuel.

    • Sous-réseaux : sélectionnez les sous-réseaux sur lesquels créer votre équilibreur de charge. Pour optimiser la disponibilité de votre application, sélectionnez des sous-réseaux dans des zones différentes.

      Vous ne pouvez pas affecter plus de 15 sous-réseaux par équilibreur de charge d'application.

    • Type : sélectionnez le type d'équilibreur de charge.

      • Un équilibreur de charge public dispose d'une adresse IP publique, ce qui signifie qu'il peut acheminer les requêtes des clients via Internet.
      • Un équilibreur de charge privé dispose d'une adresse IP privée, ce qui signifie qu'il n'est accessible qu'aux clients internes situés dans la même région et le même VPC.
    • Type de DNS: sélectionnez « Public » ou « Privé ». Les zones DNS privées ne peuvent être résolues que sur IBM Cloud, et uniquement à partir de réseaux explicitement autorisés dans un compte ou bénéficiant d'un accès inter-comptes.

      Pour le type privé uniquement, cliquez sur Lier pour saisir les informations relatives à l'instance et à la zone DNS, puis cliquez sur Lier.

  7. Dans la section « Pools de serveurs back-end », cliquez sur « Créer » et indiquez les informations suivantes pour créer un pool de serveurs back-end. Vous pouvez créer un ou plusieurs pools.

    • Nom : entrez un nom pour le pool, par exemple my-pool.
    • Protocole du pool: sélectionnez le protocole pour vos instances de ce pool. Le protocole du pool doit être compatible avec le protocole de l'auditeur. Pour les auditeurs HTTP ou HTTPS, utilisez HTTP comme protocole de pool. Pour les auditeurs de TCP, utilisez TCP comme protocole de pool.
    • Conservation de session : indiquez si toutes les demandes émises au cours d'une session utilisateur sont envoyées à la même instance.
    • Protocole proxy: sélectionnez « Désactivé » (par défaut), « Version 1 » ou « Version 2 » (versions de l'en-tête du protocole proxy). Le protocole proxy ajoute un en-tête de protocole proxy aux paquets TCP, HTTP et HTTPS envoyés au pool de serveurs back-end. Ce paramètre permet aux serveurs back-end d'obtenir les informations relatives à l'adresse IP et au port du client que l'équilibreur de charge définit dans l'en-tête du protocole proxy.
    • Méthode : sélectionnez la façon dont l'équilibreur de charge doit répartir le trafic dans les instances du pool :
      • Nombre minimal de connexions : réacheminez les demandes vers l'instance dont le nombre de connexions est le plus faible.
      • Permutation circulaire : réacheminez les demandes vers chaque instance, à tour de rôle. Toutes les instances reçoivent approximativement un nombre égal de connexions client.
      • Permutation circulaire pondérée : réacheminez les demandes vers chaque instance proportionnellement au poids qui lui est affecté. Par exemple, vous disposez des instances A, B et C, et leurs pondérations sont définies sur 60, 60 et 30. Les instances A et B reçoivent un nombre égal de connexions et l'instance C en reçoit la moitié.
    • Diagnostic d'intégrité : configurez la manière dont l'équilibreur de charge vérifie l'intégrité des instances.
      • Chemin du diagnostic d'intégrité : le chemin du diagnostic d'intégrité n'est applicable que si HTTP est sélectionné comme protocole de diagnostic d'intégrité. Le chemin du diagnostic d'intégrité indique l'URL utilisée par l'équilibreur de charge pour envoyer des demandes de diagnostic d'intégrité HTTP aux instances du pool. Par défaut, les contrôles d'intégrité sont envoyés à la racine (/).
      • Protocole de santé : protocole utilisé par l'équilibreur de charge pour envoyer des messages de contrôle d'intégrité aux instances du pool.
      • Port de santé (facultatif): port sur lequel envoyer les requêtes de vérification de l'état de santé. Par défaut, les contrôles d'intégrité sont envoyés sur le même port que celui sur lequel le trafic est envoyé à l'instance.
      • Intervalle (sec): intervalle, en secondes, entre deux tentatives consécutives de vérification de l'état de santé. Par défaut, les contrôles d'intégrité sont envoyés toutes les cinq secondes.
      • Délai d'expiration (en secondes): durée maximale pendant laquelle le système attend une réponse à une requête de vérification de l'état de santé. Par défaut, l'équilibreur de charge attend une réponse pendant 2 secondes.
      • Nb max. de nouvelles tentatives : nombre maximal de tentatives de contrôle d'intégrité effectuées par l'équilibreur de charge avant qu'une instance ne soit déclarée en mauvaise santé. Par défaut, une instance n'est plus considérée comme étant en bonne santé après deux échecs de contrôle d'intégrité.
  8. (Facultatif) Sélectionnez « Paramètres de la requête » pour personnaliser les valeurs de la requête de vérification de l'état. Si aucune valeur n'est indiquée, les paramètres par défaut sont utilisés.

    • Méthode de requête: choisissez l'une des options suivantes : GET ou POST. Vous pouvez personnaliser les en-têtes de requête pour ces deux méthodes. Vous pouvez, si vous le souhaitez, personnaliser le corps de la requête lorsque vous utilisez la méthode POST.
    • Corps de la requête: incluez le corps de la requête HTTP à utiliser pour les contrôles d'intégrité. Si aucune information n'est fournie, les requêtes de vérification de l'état ne comporteront pas de corps de requête.
    • En-tête d'hôte: inclure l'en-tête d'hôte pour s'assurer que la requête utilise le protocole HTTP/1.1. Sinon, le système utilise par défaut l'adresse HTTP/1.0.
    • Ajouter d'autres en-têtes de requête: ajoutez un ou plusieurs en-têtes de requête supplémentaires.
    • Nom de l'en-tête: pour la méthode de requête « GET », choisissez l'une des valeurs suivantes : content-type, accept, authorization, cookie, origin, referrer ou user-agent. Pour la méthode de requête « POST », choisissez l'une des options suivantes : content-type, content-length, application-json ou accept-encoding.
    • Valeur: saisissez la valeur correspondant au nom d'en-tête indiqué.

    En ce qui concerne les équilibreurs de charge du réseau de chemins privés (PPNLB), il existe un problème connu : les champs de requête et de réponse du moniteur d'intégrité ne sont pas renvoyés dans la réponse de l'API GET.

  9. (Facultatif) Sélectionnez « Paramètres de réponse » pour personnaliser les valeurs de réponse du contrôle d'intégrité. Si aucune valeur n'est indiquée, les paramètres par défaut sont utilisés.

    • Corps de la réponse: saisissez le texte du corps de la réponse.

    • Code de réponse: vous pouvez indiquer plusieurs valeurs séparées par des virgules comprises entre 100 et 599. Pour définir une plage, utilisez XX. Par exemple, 2XX pour la fourchette 200-299.

      HTTP envoie les données sous forme de texte clair, ce qui peut permettre leur interception et est considéré comme peu sûr. Il est recommandé d'utiliser le protocole https plutôt que http. Pour plus d'informations, consultez la rubrique « Pourquoi le site HTTP n'est-il pas sécurisé? ».

      Bien que l'équilibreur de charge arrête d'envoyer des connexions aux instances en mauvaise santé, il continue de surveiller la santé de ces instances et les réutilise dès qu'elles sont à nouveau considérées comme étant en bonne santé (après deux tentatives de contrôle d'intégrité consécutives satisfaisantes).

      Si des instances du pool sont en mauvaise santé et que vous pensez que votre application s'exécute correctement, vérifiez les valeurs de protocole de santé et de chemin de santé. Vérifiez également tout groupe de sécurité associé aux instances pour vous assurer que les règles autorisent le trafic entre l'équilibreur de charge et ces instances.

  10. Cliquez sur Créer pour créer le pool de back-end.

    Vous pouvez connecter des instances de serveur après avoir créé votre pool dorsal.

  11. Pour ajouter une instance de serveur au nouveau pool, cliquez sur Associer le serveur dans la colonne Instances de serveur du tableau.

    • Pour ajouter des unités VPC à votre pool, telles que des instances de serveur virtuel et des serveurs bare metal, sélectionnez l'onglet Unités VPC. Spécifiez les informations suivantes pour chaque instance :

      • Sélectionnez un ou plusieurs sous-réseaux depuis lesquels sélectionner une instance.

      • Sélectionnez une instance. Si une instance possède plusieurs interfaces, assurez-vous de sélectionner l'adresse IP appropriée.

      • Spécifiez le port sur lequel le trafic est envoyé à l'instance.

      • Si votre pool utilise la méthode Permutation circulaire pondérée, affectez un poids à chaque instance.

        L'affectation du poids 0 à une instance signifie qu'aucune nouvelle connexion n'est transmise à cette instance, mais que tout le trafic existant continue à circuler tant que la connexion actuelle est active. L'utilisation d'un poids 0 peut aider à arrêter normalement une instance et à la retirer de la rotation de service.

      • Cliquez sur Configurer le port et le poids, puis indiquez le port sur lequel le trafic est envoyé à l'instance.

    • Pour associer d'autres instances de serveur à votre pool de back-end, telles que des serveurs contenus dans un serveur virtuel IBM Power Systems, sélectionnez l'onglet Autre, puis cliquez sur Ajouter plus. Spécifiez les informations suivantes pour chaque instance :

      • Indiquez une adresse IP privée pour l'unité.

      • Spécifiez le port sur lequel le trafic est envoyé à l'instance.

      • Si votre pool utilise la méthode Permutation circulaire pondérée, affectez un poids à chaque instance.

        L'affectation du poids 0 à une instance signifie qu'aucune nouvelle connexion n'est transmise à cette instance, mais que tout le trafic existant continue à circuler tant que la connexion actuelle est active. L'utilisation d'un poids 0 peut aider à arrêter normalement une instance et à la retirer de la rotation de service.

    • Cliquez sur Joindre pour connecter l'instance de serveur à votre pool de back-end.

  12. Dans la section des programmes d'écoute de front-end, cliquez sur Créer un programme d'écoute et indiquez les informations suivantes. Vous pouvez créer un ou plusieurs écouteurs.

    • Protocole : protocole à utiliser pour la réception des demandes entrantes.
    • Protocole proxy: indiquez si le programme d'écoute de front-end doit accepter le trafic du protocole proxy.
    • Port : port d'écoute sur lequel les demandes sont reçues.
    • Pool de back-end : pool de back-end vers lequel cet écouteur réachemine le trafic.
    • Nb max. de connexions (facultatif) : nombre maximal de connexions simultanées autorisées par l'écouteur.
    • Autorisation IAM: Si le protocole sélectionné pour ce listener est HTTPS, vous devez indiquer votre autorisation IAM, soit par instance, soit par votre CRN.
    • Secrets Manager: Si HTTPS est le protocole sélectionné pour ce récepteur, vous devez sélectionner ou créer un gestionnaire de secrets.
    • Certificat SSL : si HTTPS est le protocole sélectionné pour cet écouteur, vous devez sélectionner un certificat SSL. Assurez-vous que l'équilibreur de charge est autorisé à accéder au certificat SSL.
    • Délai d'attente (s) (facultatif): Délai maximal après lequel l'équilibreur de charge ferme la connexion si aucune donnée n'a été envoyée ou reçue à l'expiration du délai d'inactivité. Les valeurs minimales et maximales du délai d'attente sont de 50 secondes et de 2 heures. Ces valeurs s'appliquent à la fois au client et au serveur. Pour augmenter le délai d'attente à plus de 2 heures, créez un dossier d'assistance en indiquant les besoins de l'entreprise pour la valeur de délai d'attente requise.
  13. Cliquez sur Créer pour créer le programme d'écoute de front-end.

  14. Dans la section Groupes de sécurité, sélectionnez les groupes de sécurité à associer à votre équilibreur de charge ou cliquez sur Créer pour créer un nouveau groupe de sécurité à associer à votre équilibreur de charge d'application.

    Vérifiez que le groupe de sécurité autorise le trafic d'équilibrage de charge (port d'écoute, back-end et diagnostic d'intégrité). Si vous ne spécifiez pas de groupe de sécurité, le groupe de sécurité par défaut de votre VPC se connecte à la place.

  15. Une fois que vous avez terminé de créer des pools et des écouteurs, cliquez sur Créer un équilibreur de charge.

  16. Pour afficher les détails d'un équilibreur de charge existant, cliquez sur le nom de votre équilibreur de charge dans la page Equilibreurs de charge.

  17. Vous pouvez également créer une sauvegarde pour n'importe lequel de vos pools existants. Cela permet au pool de secours de gérer le trafic en cas de défaillance d'un membre. Pour ce faire, vous devez créer une politique de sécurité intégrée :

    • Seuls les équilibreurs de charge d'application permettent d'associer plus d'un pool à un seul auditeur.

    • Assurez-vous qu'au moins un pool existe déjà dans l'équilibreur de charge.

      Un auditeur est la ressource parente d'un équilibreur de charge. Vous pouvez associer des pools à un auditeur directement (en le définissant comme default_pool) ou indirectement (en le référençant par l'intermédiaire du site failsafe_policy.target d'un autre pool). Le pool référencé indirectement doit déjà être lié à l'auditeur.

    • Une fois que le statut de votre équilibreur de charge passe à Actif, sélectionnez l'onglet Pools back-end.

    • Sur la page répertoriant les pools, cliquez sur « Modifier », puis indiquez les informations suivantes :

      • Action: Sélectionnez forward pour configurer la politique de sécurité intégrée. Cela permet d'acheminer le trafic vers un pool de secours en cas de défaillance d'un membre et de rendre la section Target active.
      • Cible: Sélectionnez un pool dans la liste des pools compatibles comme pool de sauvegarde.
  18. Si vous souhaitez rediriger le trafic d'un auditeur HTTP vers un auditeur HTTPS, vous pouvez créer un auditeur HTTP avec des paramètres de redirection HTTPS.

    Les règles d'équilibrage de charge de couche 7 remplacent les paramètres que vous définissez ici. N'oubliez pas non plus qu'un écouteur HTTPS doit déjà exister avant de pouvoir créer un nouvel écouteur HTTP avec une redirection vers HTTPS.

    Pour ce faire, procédez comme suit :

    • Une fois que le statut de l'équilibreur de charge est passé à Actif, cliquez sur l'onglet Ecouteurs de front-end.
    • Dans la page de la liste des écouteurs, cliquez sur Créer, puis spécifiez les informations suivantes :
      • Protocole: Sélectionnez HTTP comme protocole.
      • Port : sélectionnez le port d'écoute sur lequel les demandes sont reçues.
      • Nombre maximal de connexions (facultatif) : définissez le nombre maximal de connexions simultanées autorisées par le programme d'écoute.
      • Redirection HTTPS : cliquez sur le bouton à bascule pour activer la configuration de la redirection HTTPS, puis spécifiez les paramètres de redirection HTTPS suivants :
        • HTTPS listener: L'auditeur HTTPS cible vers lequel le trafic entrant de l'auditeur HTTP actuel est redirigé. Notez que vous ne voyez que la liste des écouteurs « HTTPS » dont la valeur « accept_proxy_protocol » est identique à celle de l'écouteur « HTTP ».
        • URI de redirection (facultatif) : URL vers laquelle la demande est redirigée.
        • Code d'état : code d'état de la réponse renvoyée par l'équilibreur de charge.
  19. Si vous voulez rediriger, transférer ou rejeter un trafic entrant spécifique pour un écouteur de front-end HTTP ou HTTPS en fonction de certains critères, configurez des stratégies de couche 7.

    • Après que le statut de l'équilibreur de charge passe à Actif, cliquez sur Ecouteurs de front-end dans la navigation et cliquez sur la valeur dans la colonne Stratégies pour l'écouteur que vous avez créé.
    • Sur la page Stratégies, cliquez sur Ajouter une stratégie et spécifiez les informations ci-dessous pour créer une stratégie. Vous pouvez créer plusieurs stratégies différentes.
      • Nom : entrez un nom pour l'équilibreur de charge, my-policy, par exemple. Le nom doit être unique au sein de l'écouteur.
      • Action : action à entreprendre quand toutes les règles d'une stratégie correspondent. Vous pouvez rejeter une demande avec une réponse 403, rediriger la demande vers une URL et un code de réponse configurés, rediriger le trafic d'un écouteur HTTP vers un écouteur HTTPS, ou transférer la demande vers un pool de back-end spécifique. Si une demande entrante ne correspond aux règles d'aucune stratégie, la demande est transmise au pool de back-end par défaut de l'écouteur.
      • Priorité : dans chaque type d'action, les stratégies sont évaluées par ordre croissant de priorité. Les stratégies de rejet du trafic sont toujours évaluées en premier, quelle que soit leur priorité. Les stratégies de redirection du trafic sont évaluées ensuite, suivies par celles de réacheminement du trafic.
      • Redirection : URL vers laquelle la demande est redirigée, si l'action est définie sur Redirection. Vous devez fournir soit une adresse URL complète ( URL ), soit les paramètres d'une adresse URL. Lors de l'utilisation d'un site URL, tout le trafic entrant est redirigé vers ce site URL. Lors de l'utilisation des paramètres URI, les valeurs de la demande de trafic entrant peuvent être conservées en utilisant les valeurs entrantes des paramètres. Cela inclut le protocole, le port, l'hôte, le chemin et la requête. Les valeurs par défaut des paramètres URI sont égales à leurs valeurs d'origine. Pour conserver les valeurs entrantes, fournissez-les comme {protocol},{port},{host},{path}, et {query}. Par exemple, si l'hôte de la demande entrante est ibm.com, la valeur par défaut est {host} et correspond à la valeur de la demande entrante ibm.com.
      • Code d'état : code d'état de la réponse retourné par l'équilibreur de charge, si l'action est définie sur Redirection.
      • Réacheminement : pool de back-end d'instances de serveur virtuel vers lequel la demande est réacheminée, si l'action est définie sur Réacheminer vers un pool.
    • Sur la page Stratégies, vous pouvez également créer une stratégie de redirection HTTPS avec la configuration suivante :
      • Nom : entrez un nom pour l'équilibreur de charge, my-policy, par exemple. Le nom doit être unique au sein de l'écouteur.
      • Action : sélectionnez l'option Rediriger vers HTTPS.
      • HTTPS listener: L'auditeur HTTPS cible vers lequel le trafic de l'auditeur HTTP actuel est redirigé. Notez que vous ne voyez que la liste des écouteurs « HTTPS » dont la valeur « accept_proxy_proxy » est identique à celle de l'écouteur « HTTP ».
      • URI de redirection (facultatif) : URL vers laquelle la demande est redirigée.
      • Code d'état : code d'état de la réponse renvoyée par l'équilibreur de charge.
    • Sur la page Stratégies, cliquez sur Ajouter une règle pour votre stratégie. Si des règles existent pour la stratégie, cliquez sur la valeur de la colonne Règles pour ajouter des règles supplémentaires.
    • Dans la fenêtre Règles, cliquez sur Ajouter une règle et spécifiez les informations suivantes pour créer une règle. Si vous créez plusieurs règles pour une stratégie, cette dernière est appliquée uniquement quand toutes ses règles correspondent.
      • Condition : spécifie la condition via laquelle une règle est évaluée.
      • Type : type d'informations à évaluer par la règle, soit le nom de l'hôte depuis lequel la demande a été émise, une zone d'en-tête HTTP ou un chemin dans l'URL.
      • Valeur : valeur concernée par la mise en correspondance.
      • Clé : nom de la zone d'en-tête HTTP à évaluer, si le type de règle est En-tête. Ainsi, pour faire correspondre un cookie dans l'en-tête HTTP, entrez Cookie pour la clé

Création d'un équilibreur de charge d'application à partir de l'interface de ligne de commande

L'exemple suivant montre comment utiliser l'interface de ligne de commande (CLI) pour créer un équilibreur de charge d' Application Load Balancer for VPC s (ALB). Dans cet exemple, il se trouve devant une instance de serveur virtuel VPC (id 0716_6acdd058-4607-4463-af08-d4999d983945) qui exécute un serveur TCP écoutant sur le port 9090. L'équilibreur de charge dispose d'un écouteur de front-end, qui permet un accès sécurisé au serveur TCP.

Pour créer un équilibreur de charge d'application à partir de l'interface de ligne de commande, procédez comme suit :

  1. Configurez votre environnement d'interface de ligne de commande.

  2. Utilisez le terminal pour vous connecter à votre compte à l'aide de l'interface de ligne de commande. Une fois que vous avez saisi le mot de passe, le système vous invite à indiquer le compte et la région à utiliser :

    ibmcloud login --sso
    
  3. Créez un équilibreur de charge :

    ibmcloud is load-balancer-create alb-test public --subnet 0896-b1f24514-89dc-4afd-b0e2-5489a43cf45c --family application
    

    Exemple de sortie :

    ibmcloud is load-balancer-create my-lb public --subnet my-subnet
    Creating load balancer my-lb under account vpcdemo as user test@ibm.com..
    
    ID                                 r026-ec6717fa-aa6c-46c4-94ff-4ccd193ee423   
    Name                               my-lb   
    CRN                                crn:v1:bluemix:public:is:au-syd:a/7f75c7b025e54bc5635f754b2f888665::load-balancer:r026-ec6717fa-aa6c-46c4-94ff-4ccd193ee423   
    Family                             application   
    Host name                          ec6717fa-au-syd.lb.appdomain.cloud   
    Subnets                            ID                                          Name      
                                    02h7-16f74a61-b586-4143-92df-dbc4a047bd5c   my-subnet      
    
    Public IPs                            
    Private IPs                           
    Provision status                   create_pending   
    Operating status                   offline   
    Is public                          true   
    Is private path                    false   
    Listeners                             
    Pools                              ID   Name      
    
    Resource group                     ID                                 Name      
                                    bdd96715c2a44f2bb60df4ff14a543f5   -      
    
    Created                            2026-05-26T14:47:06+05:30   
    Availability                       subnet   
    Instance Group Supported           true   
    SourceIP Session Supported         true   
    Security groups supported          true   
    UDP Supported                      false   
    Failsafe policy actions            fail,drop,forward   
    Access mode                        public   
    Advanced Health Checks Supported   true   
    FQDN Pool Members Supported        true     
    
  4. Créez un pool :

    ibmcloud is load-balancer-pool-create alb-pool r134-1b3d2967-d395-4023-8705-829454081e23  weighted_round_robin tcp 10  --failsafe-policy-action forward --failsafe-policy-target pool2
    

    Exemple de sortie :

    Creating pool alb-pool of load balancer r006-99b5ab45-6357-42db-8b32-5d2c8aa62776  under account IBM Cloud Network Services as user test@ibm.com...
    
    ID                         r006-3b66d605-6aa5-4166-9f66-b16054da3cb0
    Name                       alb-pool
    Protocol                   tcp
    Algorithm                  weighted_round_robin
    Instance group             ID   Name
                               -    -
    
    Health monitor             Type   Port   Health monitor URL   Delay   Retries   Timeout
                               http   8080   /                    10      2         5
    
    Failsafe policy            Action    Target ID                                   Target name   Healthy Member Threshold Count
                               forward   r006-815e16e7-8729-4d9e-9203-936a6b615ee1   pool2         0
    
    Session persistence type   source_ip
    Members
    Provision status           active
    Created                    2020-08-27T14:45:42.038-05:00
    
  5. Créez un membre :

    ibmcloud is load-balancer-pool-member-create r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 r006-3b66d605-6aa5-4166-9f66-b16054da3cb0 9090 0716_6acdd058-4607-4463-af08-d4999d983945 --weight 70
    

    Exemple de sortie :

    Creating member of pool r006-3b66d605-6aa5-4166-9f66-b16054da3cb0 under account IBM Cloud Network Services as user test@ibm.com...
    
    ID                 r006-61f8b000-a90d-4abe-909e-c507dffec565
    Port               9090
    Target             0716_6acdd058-4607-4463-af08-d4999d983945
    Weight             70
    Health             unknown
    Created            2020-08-27T14:59:55.446-05:00
    Provision status   create_pending
    
  6. Créez un programme d'écoute :

    $ibmcloud is load-balancer-listener-create r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 7070 tcp --default-pool r006-3b66d605-6aa5-4166-9f66-b16054da3cb0 -idle-connection-timeout 30
    

    Exemple de sortie :

    $ibmcloud is load-balancer-listener-create r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 7070 tcp --default-pool r006-3b66d605-6aa5-4166-9f66-b16054da3cb0 -idle-connection-timeout 30
    
    Sample output:
    Creating listener of load balancer r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 under account IBM Cloud Network Services as user test@ibm.com...
    ID                      r006-2847a948-f9b6-4fc1-91c6-f1c49dac3eba
    Certificate instance    -
    Connection limit        -
    Idle connection timeout 30
    Port                    7070
    Protocol                tcp
    Default pool            r006-3b66d605-6aa5-4166-9f66-b16054da3cb0
    Provision status        create_pending
    Created                 2020-08-27T15:16:08.643-05:00
    

    Pour plus d'options, voir la référence CLI VPC pour les équilibreurs de charge.

  7. Créez une stratégie :

    ibmcloud is load-balancer-listener-policy-create 72251a2e-d6c5-42b4-97b0-b5f8e8d1f479 72b27b5c-f4b0-48bb-b954-5becc7c1dcb3 --action redirect --priority 2 --target-http-status-code 301 --target-url "https://{host}:443/{path}"
    

    Exemple de sortie :

    Creating policy of load balancer listener 72b27b5c-f4b0-48bb-b954-5becc7c1dcb3 under account IBM Cloud Network Services as user test@ibm.com...
    
    ID                      r006-4847a949-f9b6-4fc1-71c6-d1c49dac3ebc
    Action                  redirect
    Priority                2
    Http status code        301
    Target Url              https://{host}:443/{path}
    Provision status        create_pending
    Created                 2024-04-23T15:16:08.643-05:00
    
  8. Extrayez les détails de votre équilibreur de charge :

    ibmcloud is load-balancer r006-99b5ab45-6357-42db-8b32-5d2c8aa62776
    

    Exemple de sortie :

    Getting load balancer r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 under account IBM Cloud Network Services as user test@ibm.com...
    
    ID                 r006-99b5ab45-6357-42db-8b32-5d2c8aa62776
    Name               alb-test
    CRN                crn:v1:public:is:us-south-1:a/123456::load-balancer:r006-99b5ab45-6357-42db-8b32-5d2c8aa62776
    Family             Application
    Host name          99b5ab45-us-south.lb.test.appdomain.cloud
    Subnets            ID                                          Name
                       0896-b1f24514-89dc-4afd-b0e2-5489a43cf45c   alb-subnet
    
    Public IPs         150.238.50.78, 150.238.54.95
    Private IPs        10.240.0.58, 10.240.0.59
    Provision status   active
    Operating status   online
    Is public          true
    Listeners          r006-2847a948-f9b6-4fc1-91c6-f1c49dac3eba
    Pools              ID                                          Name
                       r006-3b66d605-6aa5-4166-9f66-b16054da3cb0   alb-pool
    
    Resource group     ID                                 Name
                       3021f90279574ce287dd5fba82c08899   Default
    
    Created            2020-08-27T14:34:34.732-05:00
    

Création d'un équilibreur de charge d'application à l'aide de l'API

L'exemple suivant illustre l'utilisation de l'API pour créer un équilibreur de charge d'application devant deux instances de serveur virtuel VPC (192.168.100.5 et 192.168.100.6) exécutant une application Web à l'écoute sur le port 80. L'équilibreur de charge dispose d'un écouteur de front-end, qui permet un accès sécurisé à l'application Web en utilisant HTTPS.

Cet exemple ignore les étapes prérequises de l'utilisation de l'API pour mettre à disposition un cloud privé virtuel, des sous-réseaux et des instances.

Pour créer un équilibreur de charge d'application à l'aide de l'API, procédez comme suit :

  1. Configurez votre environnement d'API.

  2. Stockez les valeurs suivantes dans les variables destinées à être utilisées dans la commande d'API :

    • ResourceGroupId - Récupérez d'abord votre groupe de ressources avant d'indiquer la valeur de cette variable :
    export ResourceGroupId=<your_resourcegroup_id>
    

    Vous pouvez également trouver l'identifiant de votre groupe de ressources en utilisant la console IBM Cloud. Dans votre navigateur, ouvrez la console IBM Cloud et connectez-vous à votre compte. Sélectionnez Gérer > Compte > Groupes de ressources.

  3. Créez un équilibreur de charge avec un auditeur, un pool et des instances de serveur attachées (membres du pool) avec l'exemple de code suivant :

    curl -H "Authorization: Bearer $iam_token" -X POST
    "$vpc_api_endpoint/v1/load_balancers?version=$api_version&generation=2" \
      -d @alb_create_payload.json
      Where alb_create_payload.json has the following content:
      '{
          "name": "example-balancer",
          "is_public": true,
          "listeners": [
              {
                  "certificate_instance": {
                      "crn": "crn:v1:bluemix:public:cloudcerts:us-south:a/123456:b8877ea4-b8eg-467e-912a-da1eb7f031cg:certificate:43219c4c97d013fb2a95b21dddde1234"
                  },
                  "port": 443,
                  "protocol": "https",
                  "idle_connection_timeout" : 80,
                  "default_pool": {
                      "name": "example-pool"
                  }
              }
          ],
          "pools": [
              {
                  "algorithm": "round_robin",
                  "health_monitor": {
                      "delay": 5,
                      "max_retries": 2,
                      "timeout": 2,
                      "type": "tcp",
                      "url_path": "/"
                  },
                  "name": "example-pool",
                  "protocol": "tcp",
                  "session_persistence": {
                      "cookie_name": "string",
                      "type": "source_ip"
                  },
                  "members": [
                      {
                          "port": 80,
                          "target": {
                              "address": "192.168.100.5"
                          },
                          "weight": 50
                      },
                      {
                          "port": 80,
                          "target": {
                              "address": "192.168.100.6"
                          },
                          "weight": 50
                      }
                  ]
              }
          ],
          "subnets": [
              {
                  "id": "7ec87131-1c7e-4990-b4f0-a26f2e61f98e"
              }
          ]
          }'
    

    Pour plus d'options, voir la référence API VPC pour les équilibreurs de charge.

    Exemple de sortie :

    {
        "created_at": "2018-07-12T23:17:07.5985381Z",
        "crn": "crn:v1:bluemix:public:is:us-south:a/123456::load-balancer:dd754295-e9e0-4c9d-bf6c-58fbc59e5727",
        "hostname": "ac34687d.lb.appdomain.cloud",
        "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727",
        "id": "0738-dd754295-e9e0-4c9d-bf6c-58fbc59e5727",
        "is_public": true,
        "profile": {
            "name": "network-fixed"
        },
        "listeners": [
            {
                "id": "0738-70294e14-4e61-11e8-bcf4-0242ac110004",
                "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727/listeners/70294e14-4e61-11e8-bcf4-0242ac110004"
            }
        ],
        "name": "example-balancer",
        "operating_status": "offline",
        "pools": [
            {
                "id": "0738-70294e14-4e61-11e8-bcf4-0242ac110004",
                "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727/pools/70294e14-4e61-11e8-bcf4-0242ac110004",
                "name": "example-pool"
            }
        ],
        "provisioning_status": "create_pending",
        "resource_group": {
            "id": "56969d60-43e9-465c-883c-b9f7363e78e8"
        },
        "subnets": [
            {
                "id": "0738-7ec86020-1c6e-4889-b3f0-a15f2e50f87e",
                "href": "https://us-south.iaas.cloud.ibm.com/v1/subnets/7ec86020-1c6e-4889-b3f0-a15f2e50f87e",
                "name": "example-subnet"
            }
        ]
    }
    

    Enregistrez l'ID de l'équilibreur de charge pour l'utiliser dans les étapes suivantes. Sauvegardez-le, par exemple, dans la variable lbid.

    lbid=0738-dd754295-e9e0-4c9d-bf6c-58fbc59e5727
    
  4. Extrayez les détails de l'équilibreur de charge.

    curl -H "Authorization: Bearer $iam_token" -X GET "$vpc_api_endpoint/v1/load_balancers/$lbid?version=$api_version&generation=2"
    

    Prévoyez du temps pour la mise à disposition. Quand l'équilibreur de charge est prêt, son statut est défini à online et active, comme illustré dans la sortie exemple suivante :

    {
      "id": "0738-dd754295-e9e0-4c9d-bf6c-58fbc59e5727",
      "crn": "crn:v1:bluemix:public:is:us-south:a/123456::load-balancer:dd754295-e9e0-4c9d-bf6c-58fbc59e5727",
      "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727",
      "name": "example-balancer",
      "created_at": "2018-07-13T22:22:24.489Z",
      "hostname": "dd754295-e9e0-4c9d-bf6c-58fbc59e5727.lb.appdomain.cloud",
      "is_public": true,
      "profile": {
            "name": "network-fixed"
      },
      "listeners": [
        {
          "id": "0738-70294e14-4e61-11e8-bcf4-0242ac110004",
           "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727/listeners/70294e14-4e61-11e8-bcf4-0242ac110004"
        }
      ],
      "operating_status": "online",
      "pools": [
        {
          "id": "0738-70294e14-4e61-11e8-bcf4-0242ac110004",
          "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727/pools/70294e14-4e61-11e8-bcf4-0242ac110004",
          "name": "example-pool"
        }
      ],
      "private_ips": [
        {
          "address": "192.168.10.5"
        },
        {
          "address": "192.168.10.6"
        }
      ],
      "provisioning_status": "active",
      "public_ips": [
        {
            "address": "169.11.111.115"
        },
        {
            "address": "169.11.111.116"
        }
      ],
      "resource_group": {
        "id": "0738-56969d60-43e9-465c-883c-b9f7363e78e8"
      },
      "subnets": [
        {
          "id": "0738-7ec86020-1c6e-4889-b3f0-a15f2e50f87e",
          "href": "https://us-south.iaas.cloud.ibm.com/v1/subnets/7ec86020-1c6e-4889-b3f0-a15f2e50f87e",
          "name": "example-subnet"
        }
      ]
    }