Contrairement à Classic Load Balancer (CLB), Application Load Balancer (ALB) est spécialisé dans l'équilibrage de charge de couche 7, propose des fonctionnalités de routage avancées et traite un trafic à grande échelle au niveau de la couche application. Vous pouvez migrer les écouteurs de couche 7 de CLB vers ALB en un seul clic et activer WAF en un clic, ce qui dissocie entièrement le transfert du trafic de la protection.
Limitations de la migration
Types d'instances CLB pris en charge
Instances CLB IPv4 internes dans un VPC disposant d'un écouteur de couche 7 (HTTP ou HTTPS) configuré.
Instances CLB IPv4 accessibles depuis Internet disposant d'un écouteur de couche 7 (HTTP ou HTTPS) configuré.
Scénarios non pris en charge
L'assistant de migration ne prend pas en charge les scénarios suivants. Nous vous recommandons de migrer manuellement les écouteurs de couche 7 de CLB vers ALB.
Instances CLB sans écouteur HTTP ou HTTPS configuré.
Instances CLB internes dans un réseau classique.
Instances CLB IPv6.
Considérations relatives à la migration
La migration n'est pas prise en charge dans les régions où ALB n'est pas disponible. Pour obtenir la liste des régions prenant en charge ALB, consultez la rubrique Régions et zones prenant en charge ALB.
L'assistant de migration ne migre pas les configurations WAF. Si WAF est activé pour l'instance CLB, vous devez activer manuellement la protection WAF pour l'instance ALB de destination après la migration. Nous vous recommandons d'activer WAF 3.0 pour la nouvelle instance ALB. Pour plus d'informations, consultez la rubrique Activer la protection WAF pour une instance ALB.
L'assistant de migration ne migre pas les règles d'alerte basées sur des seuils pour CLB. Vous devez configurer de nouvelles règles d'alerte pour l'instance ALB à l'aide de la console Cloud Monitor, des opérations API ou des SDK. Pour plus d'informations, consultez la rubrique Configurer des règles d'alerte pour les métriques ALB.
La protection DDoS est activée par défaut pour l'instance ALB. Toutefois, l'assistant de migration ne migre pas les seuils de protection DDoS personnalisés. Vous devez configurer manuellement ces seuils dans la console Traffic Security après la migration.
L'assistant de migration ne migre pas les configurations de contrôle d'accès. Si vous avez besoin d'un contrôle d'accès, vous devez le configurer pour l'instance ALB après la migration. Pour plus d'informations, consultez la rubrique Contrôle d'accès.
Pour un écouteur HTTPS, vous devez spécifier manuellement le certificat serveur et le certificat CA.
L'assistant de migration ne migre pas les configurations de groupe de serveurs principal/secondaire de CLB.
L'assistant de migration migre automatiquement les serveurs backend d'une instance CLB interne. Cependant, il ne migre pas actuellement les serveurs backend d'une instance CLB accessible depuis Internet. L'assistant de migration crée un nouveau groupe de serveurs dans le VPC où réside l'instance ALB. Vous devez ajouter manuellement les serveurs backend à ce groupe de serveurs. Les serveurs backend doivent se trouver dans le même VPC que l'instance ALB.
Facturation
La migration en un clic de CLB vers ALB n'entraîne aucun frais supplémentaire. La nouvelle instance ALB est facturée selon les règles de facturation d'ALB.
Prérequis
Configurez un écouteur de couche 7 (un écouteur HTTP ou HTTPS) sur l'instance CLB que vous prévoyez de migrer.
-
Cet exemple utilise quatre instances ECS.
Serveurs d'application : ECS01 et ECS02 sont les serveurs backend.
-
Serveurs de test : utilisez ECS03 pour tester le trafic avant la migration et ECS04 pour vérifier le trafic pendant la migration.
Si vous disposez déjà de serveurs de test, vous n'avez pas besoin de créer ECS03 et ECS04.
Étape 1 : Utiliser l'assistant de migration
-
Ouvrez l'assistant de migration à l'aide de l'une des méthodes suivantes.
Méthode 1 : Console CLB
Connectez-vous à la console CLB.
Dans la barre de navigation supérieure, sélectionnez la région de l'instance CLB.
Sur la page Instances, recherchez l'instance cible et cliquez sur son ID.
Cliquez sur l'onglet Migration Wizard. Après avoir confirmé les informations dans le message, cliquez sur Enable sur la carte Migrate from CLB to ALB.
Méthode 2 : Console ALB
RemarqueCette méthode n'est pas disponible si aucune instance ALB n'existe dans la région de l'instance CLB à migrer. Utilisez plutôt la méthode 1.
Connectez-vous à la console ALB.
Dans la barre de navigation supérieure, sélectionnez la région de l'instance CLB.
Sur la page Instances.
Dans la boîte de dialogue Migrate from CLB to ALB, confirmez les informations dans le message, sélectionnez l'instance CLB à migrer, puis cliquez sur Migrate from CLB to ALB.
-
À l'étape Open Migration Wizard, examinez les informations de base de l'instance CLB et les informations préconfigurées pour l'instance ALB. Configurez tous les écouteurs marqués de l'icône
, cochez la case de confirmation, puis cliquez sur Review Configurations.
: indique un élément de configuration nécessitant une configuration manuelle.
: indique un élément de configuration que le système modifie automatiquement.
Vous pouvez cliquer sur Next et Modify Listener pour modifier les configurations de l'écouteur ALB. Vous ne pouvez modifier les certificats que pour les écouteurs HTTPS.
-
À l'étape Modify Certificate, configurez le VPC et le vSwitch pour la nouvelle instance ALB, puis cliquez sur Create Instance.
Paramètre
Description
Next
Pour une instance CLB interne, la nouvelle instance ALB est déployée par défaut dans le même VPC que l'instance CLB.
Pour une instance CLB accessible depuis Internet, vous devez sélectionner un VPC.
VPC
Sélectionnez une zone et un vSwitch.
Pour une haute disponibilité, nous vous recommandons de sélectionner au moins deux zones si la région actuelle en prend en charge deux ou plus. ALB ne facture pas de frais supplémentaires pour l'utilisation de plusieurs zones.
Sélectionnez un vSwitch dans chaque zone sélectionnée. Si aucun vSwitch n'est disponible dans une zone, créez-en un comme indiqué sur la console.
Facultatif : Lorsque vous migrez une instance CLB accessible depuis Internet, vous devez sélectionner une adresse IP élastique (EIP) dans chaque zone sélectionnée.
Si aucune EIP existante n'est disponible, vous pouvez sélectionner Zone. Le système crée automatiquement une adresse IP élastique (EIP) BGP (Multi-ISP) en paiement à l'utilisation (facturation au transfert de données) avec une protection Anti-DDoS Origin Basic et l'associe à l'instance ALB.
Vous pouvez également associer une EIP existante à la nouvelle instance ALB.
ImportantVous ne pouvez associer que des EIP en paiement à l'utilisation (facturation au transfert de données) qui ne font pas partie d'une instance Internet Shared Bandwidth.
Les EIP dans différentes zones pour la même instance ALB doivent être du même type.
À l'étape Purchase EIP, examinez les configurations de l'instance ALB, cochez la case dans la section Confirm Order, puis cliquez sur Pricing/Billing.
-
À l'étape Start Migration, attendez que la migration soit terminée. Vous pouvez ensuite effectuer les opérations suivantes.
Resource Orchestration Service (ROS) effectue la migration, ce qui prend de 1 à 10 minutes. Vous pouvez suivre les instructions pour accéder à la console ROS et afficher l'état de la tâche de migration dans la pile correspondante.
Cliquez sur Complete pour accéder à la page de détails de la nouvelle instance ALB.
Cliquez sur View Instance pour revenir à la liste des instances CLB.
Cliquez sur CLB Instance List pour revenir à la liste des instances ALB.
-
Étapes suivantes : après la migration, vérifiez que les serveurs backend sont ajoutés à la nouvelle instance ALB.
Dans le volet de navigation de gauche, accédez à .
Sur la page Instances, recherchez la nouvelle instance ALB et cliquez sur son ID.
Cliquez sur l'onglet Instances. Recherchez l'écouteur cible et cliquez sur Listener dans la colonne View Details.
-
Sur l'onglet Actions, cliquez sur Listener Details dans la section View/Modify Backend Server. Sur l'onglet Server Group (Default Forwarding Rule) qui s'affiche, vérifiez si des serveurs backend sont répertoriés.
Si aucun serveur backend n'est répertorié, cliquez sur Backend Servers pour en ajouter au moins deux. Vous devez également déployer des applications sur ces serveurs afin que l'instance ALB puisse distribuer les requêtes. Dans cet exemple, ECS01 et ECS02 sont ajoutés en tant que serveurs backend à l'instance ALB.
Pour plus d'informations sur la création d'une instance ECS, consultez la rubrique Créer une instance à l'aide de l'assistant.
-
L'exemple suivant montre les commandes pour déployer des applications de test sur ECS01 et ECS02.
Étape 2 : Tester le trafic
(Facultatif) Activer les journaux d'accès
ALB s'intègre à Simple Log Service (SLS) pour fournir des journaux d'accès. Utilisez les journaux d'accès pour surveiller la charge des instances ALB et résoudre les problèmes.
Connectez-vous à la console ALB.
Dans la barre de navigation supérieure, sélectionnez la région où l'instance ALB est déployée.
Sur la page Add Backend Server, recherchez l'instance ALB cible et cliquez sur son ID.
Sur la page de détails de l'instance, cliquez sur l'onglet Instances. Ensuite, sur l'onglet Access Logs, cliquez sur Access Logs.
-
Dans la boîte de dialogue Create Access Log, configurez Create Access Log et Project, puis cliquez sur Logstore. Dans la boîte de dialogue de confirmation, cliquez à nouveau sur OK.
Paramètre
Description
OK
Une unité de gestion des ressources dans Simple Log Service utilisée pour l'isolation et le contrôle des ressources.
Project : sélectionnez un projet dans la liste déroulante.
Select Project : saisissez un nom pour le nouveau projet.
Create Project
Une unité dans Simple Log Service utilisée pour collecter, stocker et interroger les données de journal.
Logstore : sélectionnez un Logstore dans la liste déroulante.
Select Logstore : saisissez un nom pour le nouveau Logstore. Si vous choisissez de créer un nouveau projet, vous devez également créer un nouveau Logstore.
Create Logstore
Cette opération crée automatiquement un rôle lié au service avec les autorisations requises.
Tester le trafic
-
Connectez-vous à distance à ECS03.
RemarqueCette instance ECS03 possède une adresse IP publique.
-
Exécutez la commande suivante pour modifier le fichier hosts.
sudo vi /etc/hostsDans le fichier hosts, ajoutez l'adresse IP élastique et le nom de domaine de l'instance ALB, puis enregistrez et fermez le fichier.
118.XX.XX.113 www.example.net -
Exécutez la commande suivante pour tester le transfert du trafic via l'instance ALB.
curl -v www.example.netLa figure suivante montre la sortie attendue :
[root@xxx ~]# curl -v www.xxx * Rebuilt URL to: www.xxx/ * Trying 118.xxx.xxx.113... * TCP_NODELAY set * Connected to www.xxx (118.xxx.xxx.113) port 80 (#0) > GET / HTTP/1.1 > Host: www.xxx > User-Agent: curl/7.61.1 > Accept: */* > < HTTP/1.1 200 OK < Date: Mon, 25 Sep 2023 09:10:00 GMT < Content-Type: text/html < Content-Length: 29 < Connection: keep-alive < Last-Modified: Mon, 25 Sep 2023 08:44:00 GMT < ETag: "65114850-1d" < Accept-Ranges: bytes < Hello World ! This is ECS01.[xxx@xxxsuZ ~]# curl -v www.xxx * Rebuilt URL to: www.xxx/ * Trying 118.xxx.113... * TCP_NODELAY set * Connected to www.xxx (118.xxx.113) port 80 (#0) > GET / HTTP/1.1 > Host: www.xxx > User-Agent: curl/7.61.1 > Accept: */* > < HTTP/1.1 200 OK < Date: Mon, 25 Sep 2023 09:10:06 GMT < Content-Type: text/html < Content-Length: 29 < Connection: keep-alive < Last-Modified: Mon, 25 Sep 2023 08:45:03 GMT < ETag: "6511488f-1d" < Accept-Ranges: bytes < Hello World ! This is ECS02. -
(Facultatif) Pour afficher les journaux d'accès, revenez à la console ALB. Sur l'onglet Notes on Creating Service-linked Role de votre instance ALB, cliquez sur le lien à côté de Access Logs.
Dans la console Simple Log Service, vous pouvez également combiner des champs tels que request_uri, http_host, upstream_addr et status selon vos besoins pour afficher les journaux d'exécution d'un nom de domaine ALB ou des règles de transfert basées sur l'URL.
Étape 3 : Migrez le trafic vers l'instance ALB
Les règles de transfert de CLB et d'ALB gèrent les noms de domaine et les URL différemment. Par conséquent, comparez attentivement les configurations des règles de transfert de CLB et d'ALB avant de migrer le trafic. Pour garantir une fonctionnalité identique, vous devrez peut-être ajuster les règles de transfert dans ALB en fonction des différences entre les règles de transfert CLB et ALB. De plus, testez et vérifiez minutieusement toutes les configurations pour éviter tout impact imprévu sur votre activité lors du processus de migration.
Effectuez la migration du trafic CLB pendant les heures creuses.
Les étapes suivantes supposent que la résolution DNS est déjà configurée pour l'instance CLB, avec un enregistrement A pointant le nom de domaine du service vers l'adresse de service de l'instance CLB. Après avoir vérifié la configuration de l'instance ALB, migrez le trafic de l'instance CLB vers l'instance ALB comme suit. Cette rubrique utilise Alibaba Cloud DNS à titre d'exemple. Pour plus d'informations sur Alibaba Cloud DNS, consultez la section Résolution DNS publique faisant autorité.
Étape 1 : Configurez un domaine temporaire et un enregistrement CNAME
Un enregistrement CNAME est recommandé pour l'instance ALB. Pour activer le routage pondéré, ajoutez un enregistrement CNAME pour un nom de domaine temporaire qui pointe vers l'adresse de service de l'instance CLB. Les étapes suivantes utilisent www.example.net comme nom de domaine de service pour l'instance CLB.
Pour utiliser le routage pondéré, vous devez disposer de plusieurs enregistrements A, CNAME ou AAAA partageant le même nom d'hôte et la même source de requête.
Connectez-vous à la console Alibaba Cloud DNS.
Sur la page Simple Log Service, recherchez et cliquez sur le nom de domaine
example.netde l'instance CLB.Sur la page Public Zone, recherchez l'enregistrement A qui pointe vers l'adresse de service de l'instance CLB et cliquez sur Settings dans la colonne Actions.
Dans le panneau Edit, modifiez le champ Edit Record, puis cliquez sur Hostname. Dans cet exemple, le champ OK est remplacé par web0. Laissez les autres paramètres inchangés.
-
Sur la page Hostname, cliquez sur Add Record. Dans le panneau Add Record, configurez les paramètres suivants et cliquez sur OK.
Parameter
Description
Record Type
Sélectionnez CNAME dans la liste déroulante.
Hostname
Le préfixe de votre nom de domaine. Dans cet exemple, saisissez www.
DNS Query Source
Sélectionnez Default.
TTL
Durée de vie (TTL), qui contrôle la durée de mise en cache d'un enregistrement DNS sur les serveurs DNS. Dans cet exemple, définissez la valeur sur 5 secondes.
Record Value
Saisissez le nom de domaine temporaire. Dans cet exemple, saisissez web0.example.net.
Étape 2 : Ajoutez un enregistrement CNAME pour ALB
Sur la page Settings, cliquez sur Settings. Dans le panneau Add Record, configurez les paramètres suivants et cliquez sur Add Record.
|
Parameter |
Description |
|
OK |
Sélectionnez CNAME dans la liste déroulante. |
|
Record Type |
Le préfixe de votre nom de domaine. Dans cet exemple, saisissez www. |
|
Hostname |
Sélectionnez Default. |
|
TTL |
Durée de vie (TTL), qui contrôle la durée de mise en cache d'un enregistrement DNS sur les serveurs DNS. Dans cet exemple, définissez la valeur sur 5 secondes. |
|
DNS Query Source |
Saisissez le nom DNS de l'instance ALB. |
Étape 3 : Définissez les poids et démarrez le déploiement canari
Sur la page Record Value, recherchez l'enregistrement CNAME ajouté à l'étape 2. Cliquez sur la flèche déroulante à côté de Settings et sélectionnez Edit.
Dans la section Edit Record Set en bas du panneau Record Values, définissez les poids des enregistrements DNS des instances CLB et ALB comme suit : définissez le poids de l'enregistrement DNS de l'instance CLB sur 100 et celui de l'instance ALB sur 0. Cliquez sur Edit Record pour enregistrer vos modifications et quitter.
Après avoir vérifié que vos services ne sont pas affectés, réduisez progressivement le poids de l'enregistrement DNS de l'instance CLB et augmentez celui de l'instance ALB.
-
Connectez-vous à l'instance ECS04 située dans le même VPC que l'instance ALB et exécutez plusieurs fois la commande
digpour vérifier la migration du trafic.RemarqueAssurez-vous que l'instance ECS04 dispose d'une adresse IP publique et installez la commande dig en exécutant
yum install bind-utils.dig www.example.netLa figure suivante illustre la sortie de la commande. Les résultats montrent que les requêtes sont distribuées vers l'instance ALB ou CLB en fonction des poids configurés.
[root@xxx 2uvl6raykm3Z ~]# dig www.xxx.net ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.10 <<>> www.xxx.net ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31592 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.xxx.net. IN A ;; ANSWER SECTION: www.xxx.net. 5 IN CNAME web0.xxx.net. web0.xxx.net. 5 IN A 47.xxx.xxx.144 ;; Query time: 63 msec ;; SERVER: 100.xxx.136#53(100.xxx.136) ;; WHEN: Thu Jan 19 15:46:40 CST 2023 ;; MSG SIZE rcvd: 66[root@xxx vl6raykm3Z ~]# dig www.xxx.net ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.10 <<>> www.xxx.net ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14224 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.xxx.net. IN A ;; ANSWER SECTION: www.xxx.net. 5 IN CNAME alb-xxx.com. alb-xxx.com. 60 IN A 116.xxx.54 alb-xxx.com. 60 IN A 118.xxx.39 ;; Query time: 4 msec ;; SERVER: 100.xxx.136#53(100.xxx.136) ;; WHEN: Thu Jan 19 15:47:52 CST 2023 ;; MSG SIZE rcvd: 128
Étape 4 : Finalisez la migration du trafic
En fonction des résultats de vérification de la migration du trafic, réduisez progressivement le poids de l'enregistrement DNS de l'instance CLB à 0 et, simultanément, augmentez progressivement le poids de l'enregistrement DNS de l'instance ALB à 100. Cela permet de finaliser la migration du trafic de l'instance CLB vers l'instance ALB. Lorsque toutes les connexions persistantes sur l'instance CLB sont entièrement traitées et que l'instance CLB ne reçoit plus de nouveau trafic, vous pouvez surveiller l'instance pendant une période donnée en fonction de votre scénario métier, puis libérer l'instance CLB. Pour plus d'informations sur la libération d'une instance CLB, consultez la section Libérer une instance CLB.
FAQ
Migration des règles de redirection et de transfert CLB
Après la migration, le système configure automatiquement la redirection et les règles de transfert pour les noms de domaine et les chemins d'URL sur l'instance ALB.
Étant donné que CLB et ALB traitent les noms de domaine et les URL différemment, nous vous recommandons de comparer attentivement les configurations des règles de transfert de CLB et d'ALB avant de basculer le trafic. Pour garantir une fonctionnalité identique, vous devrez peut-être ajuster les règles de transfert dans ALB en fonction des différences entre les règles de transfert CLB et ALB.
Différences entre les règles de transfert CLB et ALB
Les règles de transfert de CLB et d'ALB diffèrent dans leur manière de traiter les noms de domaine et les chemins d'URL :
-
Nom de domaine
Les règles de transfert de nom de domaine CLB prennent en charge la correspondance exacte et la correspondance générique. La priorité de correspondance est la suivante : correspondance exacte > générique plus spécifique > générique moins spécifique. Cela garantit que la règle la plus précise est exécutée en premier.
Les règles de transfert de nom de domaine ALB prennent en charge la correspondance exacte, la correspondance générique et la correspondance par expression régulière. Les règles sont évaluées en fonction de la priorité que vous spécifiez.
-
Chemin d'URL
Les règles de transfert de chemin d'URL CLB utilisent la correspondance du préfixe le plus long.
Les règles de transfert de chemin d'URL ALB prennent en charge la correspondance exacte, la correspondance générique et la correspondance par expression régulière.
Le tableau suivant compare la manière dont CLB et ALB gèrent les caractères spéciaux dans les requêtes URL. Utilisez ce tableau pour adapter vos règles de transfert lors de la migration de CLB vers ALB.
Configured URL
Request
CLB
ALB
Description
??Does not match
Does not match
The
?character in a request typically separates the URL path from the query string and is removed during processing.Any valid character
Does not match
Matches
In a wildcard match,
?can represent any single valid character.%%Does not match
- (Not allowed)
The
%character in a request is typically used for percent-encoding. During processing,%61is decoded toa.%61%61Does not match
- (Not allowed)
The
%character in a request is typically used for percent-encoding. During processing,%61is decoded toa.aDoes not match
Does not match
-
a%61Matches
Matches
The
%character in a request is typically used for percent-encoding. During processing,%61is decoded toa.ab,abc, etc.Matches
Does not match
CLB supports longest prefix match. ALB supports exact match and wildcard match.
test/*test- (Not supported)
Does not match
CLB supports longest prefix match. ALB supports wildcard match.
test/- (Not supported)
Matches
test/a- (Not supported)
Matches
Migration des certificats pour les écouteurs HTTPS CLB
-
Lors de la migration, vous devez spécifier manuellement les certificats. Si vous ne disposez pas des certificats requis, vous devez d'abord les acheter ou les télécharger dans la console SSL Certificate.
Pour les certificats de serveur, consultez les sections Acheter un certificat commercial et Télécharger, synchroniser et partager des certificats SSL.
Pour les certificats CA, consultez la section Acheter et activer une CA privée.
-
Après la migration, le système applique automatiquement les certificats de serveur, supplémentaires et CA que vous avez spécifiés.
ALB peut distribuer le trafic pour plusieurs noms de domaine. Pour plus d'informations, consultez la section Configurer un site Web HTTPS avec plusieurs noms de domaine sur une seule instance ALB.
ALB prend en charge l'authentification HTTPS unidirectionnelle et bidirectionnelle. Pour plus d'informations, consultez les sections Utiliser HTTPS de bout en bout pour chiffrer le trafic et Déployer un service HTTPS avec authentification bidirectionnelle à l'aide d'ALB.
Migration des serveurs backend depuis différents VPC
Un groupe de serveurs ALB appartient à un VPC spécifique. Lors de la migration, le système crée un nouveau groupe de serveurs dans le VPC de l'instance ALB. Vous devez ajouter manuellement les serveurs backend à ce nouveau groupe. Ces serveurs doivent également se trouver dans le même VPC que l'instance ALB.
ALB permet d'attacher des serveurs provenant de différents VPC en utilisant un groupe de serveurs basé sur l'adresse IP. Pour ce faire, créez un groupe de serveurs basé sur l'adresse IP pour votre instance ALB après avoir terminé l'assistant de migration, puis ajoutez les instances ECS au groupe de serveurs. Pour plus d'informations, consultez la section Utiliser ALB pour attacher des serveurs dans des VPC inter-régions.