Après avoir déployé une application dans Serverless App Engine (SAE), associez-y une instance Network Load Balancer (NLB) pour lui fournir un point d'accès fixe. Cette rubrique explique comment associer une instance NLB à une application SAE.
Contexte
Par défaut, les applications SAE ne sont pas accessibles depuis le réseau public. Bien qu'il soit possible d'accéder à une application au sein d'un Virtual Private Cloud (VPC) via l'adresse IP privée d'une instance, cette méthode manque de fiabilité : l'adresse IP peut changer lors des mises à jour ou des redémarrages de l'application. Pour résoudre ce problème, associez une instance NLB publique ou privée à votre application. Cette association permet non seulement d'utiliser un nom de domaine fixe pour accéder à l'application, mais aussi d'équilibrer efficacement le trafic entre différentes zones et instances SAE.
Avant d'associer une instance NLB à une application, familiarisez-vous avec le fonctionnement de Network Load Balancer (NLB) ainsi que ses limites de performance et d'utilisation.
-
L'utilisation du service NLB dans SAE entraîne des frais supplémentaires pour l'instance NLB.
ImportantSi vous supprimez une instance NLB depuis la console SAE sans également la supprimer de la console Server Load Balancer (SLB), elle continue de générer des frais. Pour savoir comment supprimer l'instance NLB depuis la console SLB, consultez la section Supprimer une instance NLB.
Présentation
Les applications SAE prennent en charge l'association à des instances NLB publiques ou privées. Associez des instances NLB de différents types de réseau à votre application SAE selon vos besoins métier.
Associer une instance NLB privée : L'objectif principal est de fournir une adresse d'accès fixe (nom DNS) pour l'application SAE et de distribuer le trafic vers les instances de l'application SAE à l'aide d'un algorithme d'équilibrage de charge, tel que le round-robin. Les cas d'utilisation courants incluent la communication interne entre microservices, l'accès aux bases de données et l'accès à l'intranet d'entreprise.
Associer une instance NLB publique : Par défaut, SAE ne prend pas en charge l'accès direct depuis le réseau public. En associant une instance NLB publique à votre application, vous fournissez un point d'accès public fixe pour gérer le trafic provenant du réseau public. Le flux d'accès public est illustré dans la figure suivante.

Étape 1 : Ajouter une instance NLB
Sur la page Applications, sélectionnez une région et un namespace dans la barre de navigation supérieure, puis cliquez sur l'Application ID de l'application cible pour ouvrir la page des détails de l'application.
Sur la page Basic Information, repérez la section application access settings. Dans l'onglet NLB-based Access, cliquez sur Add NLB Access.
-
Dans le panneau Add NLB Access, configurez les paramètres comme suit, puis cliquez sur OK.
RemarqueSAE vous permet de créer une instance NLB ou d'en associer une existante. Choisissez l'option qui correspond à vos besoins.
Créer une nouvelle instance NLB : SAE achète automatiquement une instance NLB pour vous. Vous pouvez consulter les détails de l'instance NLB dans la console Server Load Balancer (SLB).
Associer une instance NLB existante : Vous devez au préalable créer une instance NLB sur la page Instances de la console SLB. Si vous souhaitez créer une instance NLB privée, nous vous recommandons d'utiliser le même Virtual Private Cloud (VPC) pour l'instance NLB et l'application SAE. Si elles se trouvent dans des VPC différents, vous devez configurer le réseau pour permettre la communication entre eux. Par exemple, vous pouvez utiliser le Cloud Enterprise Network (CEN) d'Alibaba Cloud ou d'autres produits de connexion réseau pour activer la communication inter-VPC.
Créer une nouvelle instance NLB
Pour instance source, sélectionnez Create Instance.
-
Pour Network Type, sélectionnez Public ou Private selon vos besoins.
Si vous sélectionnez Public, le système crée une instance NLB publique et attribue une Elastic IP Address et une VIP à chaque zone.
Si vous sélectionnez Private, le système crée une instance NLB privée et attribue une VIP à chaque zone.
-
Sélectionnez les zones où se trouvent vos vSwitches en fonction de vos exigences métier. Pour assurer une haute disponibilité, sélectionnez au moins deux zones.
Vous ne pouvez pas sélectionner un Virtual Private Cloud (VPC). Le VPC de l'application cible est utilisé par défaut.
-
Les types de protocole pris en charge sont TCP, UDP et TCPSSL.
Type de protocole
Paramètre
Exemple
TCP
Listener port : port qui reçoit les requêtes et les transfère aux serveurs backend.
Container port : port sur lequel le processus de l'application écoute.
Listener port : 80
Container port : 8080 (port par défaut pour les services web)
UDP
TCPSSL
Listener port : port qui reçoit les requêtes et les transfère aux serveurs backend.
Container port : port sur lequel le processus de l'application écoute.
Select SSL certificate : certificat de protocole SSL. Sélectionnez un certificat SSL téléchargé dans la liste déroulante.
RemarquePour accéder à un nom de domaine personnalisé via HTTPS, le nom de domaine doit disposer d'un备案 ICP auprès d'Alibaba Cloud. Pour plus d'informations, consultez la procédure de备案 ICP.
Listener port : 80
Container port : 8080 (port par défaut pour les services web)
Select SSL certificate : sélectionnez un certificat SSL acheté dans la liste déroulante. Si vous n'avez pas acheté de certificat SSL, consultez la section Acheter un certificat.
Associer une instance NLB existante
Pour instance source, sélectionnez Use Existing.
-
Dans la liste déroulante NLB Instance, sélectionnez l'instance NLB que vous avez créée.
Si vous n'avez pas créé d'instance NLB, cliquez sur Create NLB Instance . Ensuite, créez une instance NLB sur la page Instances de la console SLB.
-
Les types de protocole pris en charge sont TCP, UDP et TCPSSL.
Type de protocole
Paramètre
Exemple
TCP
Listener port : port qui reçoit les requêtes et les transfère aux serveurs backend.
Container port : port sur lequel le processus de l'application écoute.
Listener port : 80
Container port : 8080 (port par défaut pour les services web)
UDP
TCPSSL
Listener port : port qui reçoit les requêtes et les transfère aux serveurs backend.
Container port : port sur lequel le processus de l'application écoute.
Select SSL certificate : certificat de protocole SSL. Sélectionnez un certificat SSL téléchargé dans la liste déroulante.
RemarquePour accéder à un nom de domaine personnalisé via HTTPS, le nom de domaine doit disposer d'un备案 ICP auprès d'Alibaba Cloud. Pour plus d'informations, consultez la procédure de备案 ICP.
Listener port : 80
Container port : 8080 (port par défaut pour les services web)
Select SSL certificate : sélectionnez un certificat SSL acheté dans la liste déroulante. Si vous n'avez pas acheté de certificat SSL, consultez la section Acheter un certificat.
-
Une fois l'instance NLB créée, consultez son statut dans l'onglet NLB-based Access de la section application access settings.
Si vous souhaitez ajouter plusieurs instances NLB, cliquez sur Add NLB Access et suivez les étapes ci-dessus pour ajouter d'autres instances.
ImportantLa configuration des règles d'écoute pour la même instance NLB à la fois dans les consoles SAE et Server Load Balancer (SLB) peut entraîner des conflits, car les paramètres d'une console peuvent écraser ceux de l'autre. Pour éviter les conflits de configuration, nous vous recommandons de configurer les règles d'écoute des instances NLB uniquement dans la console SAE.
Vous pouvez effectuer les opérations suivantes sur l'instance NLB :
Ajouter un écouteur : cliquez sur Add Listener. Dans la boîte de dialogue Add Listener, sélectionnez un protocol type et configurez les paramètres.
Modifier le port du conteneur : dans la colonne Actions de l'instance NLB, cliquez sur Edit. Dans le panneau Edit NLB Access, modifiez le container port.
-
Supprimer un écouteur ou une instance NLB : dans la colonne Actions de l'instance NLB, cliquez sur Delete. Dans la boîte de dialogue Confirm Deletion, cliquez sur OK pour supprimer la règle d'écoute correspondante ou l'instance NLB.
Si vous ajoutez plusieurs règles d'écoute pour la même instance NLB, l'opération de suppression ne retire que la règle d'écoute correspondante. Si vous supprimez la dernière règle d'écoute, l'instance NLB est automatiquement supprimée car elle ne possède plus aucune règle d'écoute.
-
Afficher l'instance NLB : cliquez sur le nom de l'instance NLB pour accéder à la page Instance Details de l'instance NLB dans la console SLB. Consultez les détails de l'instance NLB, tels que l'Elastic IP Address et la VIP attribuées à chaque zone, ainsi que le DNS name généré automatiquement pour l'instance NLB.
Utilisez le DNS name fourni par l'instance NLB ou l'Elastic IP Address fournie pour la zone afin de tester l'accès.
Dépannage de l'adresse d'écoute du port
Si vous avez associé une instance NLB mais que vous ne pouvez pas accéder au port de l'application via le DNS name ou l'Elastic IP Address de l'instance NLB, vérifiez l'adresse d'écoute du port de l'application :
Utilisez Webshell pour vous connecter au conteneur de l'instance d'application, et exécutez la commande
netstat -npltpour vérifier l'état d'écoute du port.Vérifiez l'adresse d'écoute du container port cible. Si l'adresse d'écoute est
127.0.0.1:<container port>, le processus de l'application écoute uniquement sur localhost, et l'instance NLB ne peut pas transférer le trafic vers ce port.Modifiez le code de l'application pour changer l'adresse d'écoute de
127.0.0.1à0.0.0.0afin que le processus écoute sur toutes les interfaces réseau.Redéployez l'application, puis associez à nouveau l'instance NLB. Le port de l'application devient accessible via l'instance NLB.
Étape 2 : Configurer la résolution de domaine
Le DNS name fourni par l'instance NLB peut être utilisé pour les tests d'accès. Toutefois, dans les environnements de production, nous vous recommandons d'utiliser un nom de domaine personnalisé et d'ajouter un enregistrement CNAME pour le mapper au DNS name de l'instance NLB.
Dans la section application access settings, cliquez sur le nom de l'instance NLB créée pour ouvrir sa page de détails dans la console SLB.
-
Sur la page Instance Details de l'instance NLB dans la console SLB, copiez le DNS name.
Le DNS name fourni par l'instance NLB sert de valeur d'enregistrement lorsque vous configurez la résolution de nom de domaine.
-
Connectez-vous à la console Alibaba Cloud DNS et ajoutez un enregistrement CNAME.
RemarqueSi votre nom de domaine n'est pas enregistré auprès d'Alibaba Cloud, vous devez l'ajouter à la console Alibaba Cloud DNS avant de pouvoir configurer la résolution de nom de domaine. Si votre nom de domaine est enregistré auprès d'Alibaba Cloud, procédez aux étapes suivantes.
Sur la page Authoritative Domains, localisez le domaine cible et cliquez sur Configure dans la colonne Actions.
Sur la page Configure, cliquez sur Add Record.
-
Dans le panneau Add Record, configurez les paramètres suivants pour terminer la configuration CNAME, puis cliquez sur OK.
Paramètre
Exemple
Description
Type
CNAME
Sélectionnez CNAME dans la liste déroulante.
Un enregistrement CNAME mappe votre nom de domaine personnalisé au DNS name fourni par l'instance NLB.
Host
www
Saisissez le préfixe du sous-domaine que vous créez.
Consultez la description de la console pour une explication détaillée de l'enregistrement hôte.
Resolution Request Source
Default
Sélectionnez Default.
Alibaba Cloud DNS peut identifier la région et l'opérateur de l'adresse IP source d'une requête DNS (généralement l'adresse IP du Local DNS d'un opérateur). Lors de l'ajout d'un enregistrement, vous pouvez renvoyer différentes valeurs d'enregistrement pour les requêtes provenant de différentes régions ou réseaux d'opérateurs.
Value
nlb-****.com
Saisissez le DNS name fourni par l'instance NLB.
La valeur d'enregistrement est le nom de domaine vers lequel pointe l'enregistrement CNAME.
TTL
10 minutes
Utilisez la valeur par défaut fournie par la console.
Le TTL (Time to Live) est la durée pendant laquelle un enregistrement DNS est mis en cache sur un serveur DNS.
Étape 3 : Tester l'accès
Saisissez votre nom de domaine personnalisé dans un navigateur pour tester l'accès. Par exemple, http://your_domain_name.
Hello, World!
Nettoyer les ressources (facultatif)
Supprimer l'instance NLB
Sur la page Basic Information de l'application cible dans la console SAE, cliquez sur le nom de l'instance NLB dans la section application access settings pour ouvrir la page de détails de l'instance dans la console SLB.
Sur la page de détails de l'instance NLB, choisissez dans le coin supérieur droit. Dans la boîte de dialogue Release Instance, cliquez sur Confirm.
Revenez à la page Basic Information de l'application cible dans la console SAE. Dans la section application access settings, cliquez sur Delete dans la colonne Actions de l'instance NLB. Dans la boîte de dialogue Confirm Deletion, cliquez sur OK pour supprimer l'instance NLB.
Si vous avez ajouté plusieurs règles d'écoute pour la même instance NLB, vous devez supprimer toutes les règles d'écoute avant de pouvoir supprimer l'instance NLB dans la console SAE.
Si vous supprimez l'instance NLB uniquement dans la console SAE, elle continue de générer des frais.
Supprimer l'enregistrement de résolution de domaine
Dans la console Alibaba Cloud DNS, supprimez l'enregistrement de résolution de nom de domaine que vous avez ajouté.