A diferencia de Classic Load Balancer (CLB), Application Load Balancer (ALB) se especializa en el balanceo de carga de capa 7, ofrece funciones avanzadas de enrutamiento y procesa tráfico a gran escala en la capa de aplicación. Puede migrar los listeners de capa 7 de CLB a ALB con un solo clic y habilitar la activación de WAF con un clic, lo que desacopla por completo el reenvío de tráfico de la protección.
Limitaciones de la migración
Tipos de instancias CLB compatibles
Instancias CLB IPv4 orientadas a la red interna en una VPC que tienen configurado un listener de capa 7 (HTTP o HTTPS).
Instancias CLB IPv4 orientadas a Internet que tienen configurado un listener de capa 7 (HTTP o HTTPS).
Escenarios no compatibles
El asistente de migración no admite los siguientes escenarios. Se recomienda que manually migrate Layer 7 listeners from CLB to ALB.
Instancias CLB que no tienen configurado un listener HTTP o HTTPS.
Instancias CLB orientadas a la red interna en una red clásica.
Instancias CLB IPv6.
Consideraciones sobre la migración
La migración no es compatible en regiones donde ALB no está disponible. Para obtener información sobre las regiones que admiten ALB, consulte Regions and zones that support ALB.
El asistente de migración no migra las configuraciones de WAF. Si WAF está habilitado para la instancia CLB, debe habilitar manualmente la protección de WAF para la instancia ALB de destino después de la migración. Se recomienda habilitar WAF 3.0 para la nueva instancia ALB. Para obtener más información, consulte Enable WAF protection for an ALB instance.
El asistente de migración no migra las reglas de alerta basadas en umbrales para CLB. Debe configurar nuevas reglas de alerta para la instancia ALB mediante la consola de CloudMonitor, operaciones de API o SDK. Para obtener más información, consulte Configure alert rules for ALB metrics.
La protección DDoS está habilitada de forma predeterminada para la instancia ALB. Sin embargo, el asistente de migración no migra los umbrales personalizados de protección DDoS. Debe configurar manualmente estos umbrales en la consola de Traffic Security después de la migración.
El asistente de migración no migra las configuraciones de control de acceso. Si necesita control de acceso, debe configurarlo para la instancia ALB después de la migración. Para obtener más información, consulte Access control.
Para un listener HTTPS, debe especificar manualmente el certificado de servidor y el certificado de CA.
El asistente de migración no migra las configuraciones de grupos de servidores primarios y secundarios de CLB.
El asistente de migración migra automáticamente los servidores backend de una instancia CLB orientada a la red interna. Sin embargo, actualmente no migra los servidores backend de una instancia CLB orientada a Internet. El asistente crea un nuevo grupo de servidores en la VPC donde reside la instancia ALB. Debe agregar manualmente los servidores backend a este grupo de servidores. Los servidores backend deben estar en la misma VPC que la instancia ALB.
Facturación
La migración con un solo clic de CLB a ALB no genera cargos adicionales. La nueva instancia ALB se factura según las reglas de facturación de ALB.
Requisitos previos
Configure un listener de capa 7 (un listener HTTP o HTTPS) en la instancia CLB que planea migrar.
-
Este ejemplo utiliza cuatro instancias ECS.
Servidores de aplicaciones: ECS01 y ECS02 son los servidores backend.
-
Servidores de prueba: Utilice ECS03 para probar el tráfico antes de la migración y ECS04 para verificar el tráfico durante la migración.
Si ya cuenta con servidores de prueba, no necesita crear ECS03 y ECS04.
Paso 1: Uso del asistente de migración
-
Abra el asistente de migración mediante uno de los siguientes métodos.
Método 1: Consola de CLB
Inicie sesión en la consola de CLB.
En la barra de navegación superior, seleccione la región de la instancia CLB.
En la página Instances, busque la instancia de destino y haga clic en su ID.
Haga clic en la pestaña Migration Wizard. Después de confirmar la información del mensaje, haga clic en Enable en la tarjeta Migrate from CLB to ALB.
Método 2: Consola de ALB
NotaEste método no está disponible si no existen instancias ALB en la región de la instancia CLB que se va a migrar. Utilice el Método 1 en su lugar.
Inicie sesión en la consola de ALB.
En la barra de navegación superior, seleccione la región de la instancia CLB.
En la página Instances, haga clic en Migrate from CLB to ALB.
En el cuadro de diálogo Migrate from CLB to ALB, confirme la información del mensaje, seleccione la instancia CLB que desea migrar y luego haga clic en Open Migration Wizard.
-
En el paso Review Configurations, revise la información básica de la instancia CLB y la información preconfigurada para la instancia ALB. Configure todos los listeners marcados con el icono
, seleccione la casilla de confirmación y luego haga clic en Next.
: Indica un elemento de configuración que requiere configuración manual.
: Indica un elemento de configuración que el sistema modifica automáticamente.
Puede hacer clic en Modify Listener y Modify Certificate para modificar las configuraciones del listener de ALB. Solo puede modificar certificados para listeners HTTPS.
-
En el paso Create Instance, configure la VPC y el vSwitch para la nueva instancia ALB, y luego haga clic en Next.
Parámetro
Descripción
VPC
Para una instancia CLB orientada a la red interna, la nueva instancia ALB se despliega en la misma VPC que la instancia CLB de forma predeterminada.
Para una instancia CLB orientada a Internet, debe seleccionar una VPC.
Zone
Seleccione una zona y un vSwitch.
Para garantizar alta disponibilidad, se recomienda seleccionar como mínimo dos zonas si la región actual admite dos o más zonas. ALB no cobra extra por usar varias zonas.
Seleccione un vSwitch en cada zona seleccionada. Si no hay vSwitches disponibles en una zona, cree uno siguiendo las indicaciones de la consola.
Opcional: Cuando migre una instancia CLB orientada a Internet, debe seleccionar una dirección IP elástica (EIP) en cada zona seleccionada.
Si no hay ninguna EIP existente disponible, puede seleccionar Purchase EIP. El sistema crea automáticamente una dirección IP elástica (EIP) BGP (Multi-ISP) pay-as-you-go (pago por transferencia de datos) con protección Anti-DDoS Origin Basic y la asocia con la instancia ALB.
También puede asociar una EIP existente con la nueva instancia ALB.
ImportanteSolo puede asociar EIPs pay-as-you-go (pago por transferencia de datos) que no formen parte de una instancia de Internet Shared Bandwidth.
Las EIPs en diferentes zonas para la misma instancia ALB deben ser del mismo tipo.
En el paso Confirm Order, revise las configuraciones de la instancia ALB, seleccione la casilla en la sección Pricing/Billing y luego haga clic en Start Migration.
-
En el paso Complete, espere a que finalice la migración. Luego puede realizar las siguientes operaciones.
Resource Orchestration Service (ROS) realiza la migración, lo cual toma de 1 a 10 minutos. Puede seguir las indicaciones para ir a la consola de ROS y ver el estado de la tarea de migración en la pila correspondiente.
Haga clic en View Instance para ir a la página de detalles de la nueva instancia ALB.
Haga clic en CLB Instance List para volver a la lista de instancias CLB.
Haga clic en ALB Instance List para volver a la lista de instancias ALB.
-
Pasos siguientes: Después de la migración, compruebe que los servidores backend se hayan agregado a la nueva instancia ALB.
En el panel de navegación izquierdo, vaya a .
En la página Instances, busque la nueva instancia ALB y haga clic en su ID.
Haga clic en la pestaña Listener. Busque el listener de destino y haga clic en View Details en la columna Actions.
-
En la pestaña Listener Details, haga clic en View/Modify Backend Server en la sección Server Group (Default Forwarding Rule). En la pestaña Backend Servers que aparece, compruebe si hay servidores backend listados.
Si no hay servidores backend listados, haga clic en Add Backend Server para agregar como mínimo dos. También debe desplegar aplicaciones en ellos para que la instancia ALB pueda distribuir solicitudes. En este ejemplo, ECS01 y ECS02 se agregan como servidores backend a la instancia ALB.
Para obtener más información sobre cómo crear una instancia ECS, consulte Create an instance by using the wizard.
-
El siguiente ejemplo muestra los comandos para desplegar aplicaciones de prueba en ECS01 y ECS02.
Paso 2: Prueba de tráfico
(Opcional) Habilitar registros de acceso
ALB se integra con Simple Log Service (SLS) para proporcionar registros de acceso. Utilice los registros de acceso para monitorear la carga en las instancias ALB y solucionar problemas.
Inicie sesión en la consola de ALB.
En la barra de navegación superior, seleccione la región donde está desplegada la instancia ALB.
En la página Instances, busque la instancia ALB de destino y haga clic en su ID.
En la página de detalles de la instancia, haga clic en la pestaña Access Logs. Luego, en la pestaña Access Logs, haga clic en Create Access Log.
-
En el cuadro de diálogo Create Access Log, configure Project y Logstore, y luego haga clic en OK. En el cuadro de diálogo de confirmación, haga clic nuevamente en OK.
Parámetro
Descripción
Project
Una unidad de gestión de recursos en Simple Log Service utilizada para el aislamiento y control de recursos.
Select Project: Seleccione un Project de la lista desplegable.
Create Project: Introduzca un nombre para el nuevo Project.
Logstore
Una unidad en Simple Log Service utilizada para recopilar, almacenar y consultar datos de registro.
Select Logstore: Seleccione un Logstore de la lista desplegable.
Create Logstore: Introduzca un nombre para el nuevo Logstore. Si decide crear un nuevo Project, también debe crear un nuevo Logstore.
Notes on Creating Service-linked Role
Esta operación crea automáticamente un rol vinculado al servicio con los permisos necesarios.
Prueba de tráfico
-
Remotely log in to ECS03.
NotaEsta instancia ECS03 tiene una dirección IP pública.
-
Ejecute el siguiente comando para modificar el archivo hosts.
sudo vi /etc/hostsEn el archivo hosts, agregue la dirección IP elástica y el nombre de dominio de la instancia ALB, y luego guarde y cierre el archivo.
118.XX.XX.113 www.example.net -
Ejecute el siguiente comando para probar el reenvío de tráfico a través de la instancia ALB.
curl -v www.example.netLa siguiente figura muestra la salida esperada:
[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. -
(Opcional) Para ver los registros de acceso, regrese a la consola de ALB. En la pestaña Access Logs de su instancia ALB, haga clic en el enlace junto a Simple Log Service.
En la consola de Simple Log Service, también puede combinar campos como request_uri, http_host, upstream_addr y status según sea necesario para ver los registros de ejecución de un nombre de dominio ALB o reglas de reenvío basadas en URL.
Paso 3: Migrar tráfico a la instancia ALB
Dado que las reglas de reenvío de CLB y ALB manejan los nombres de dominio y las URL de manera diferente, debe comparar cuidadosamente las configuraciones de las reglas de reenvío de CLB y ALB antes de migrar el tráfico. Para asegurar que proporcionen exactamente la misma funcionalidad, es posible que deba ajustar las reglas de reenvío en ALB según differences between CLB and ALB forwarding rules. Además, todas las configuraciones deben probarse y verificarse exhaustivamente para evitar impactos inesperados en su negocio durante el proceso de migración.
Realice la migración de tráfico de CLB fuera de las horas pico.
Los siguientes pasos asumen que la resolución DNS ya está configurada para la instancia CLB, con un registro A que apunta el nombre de dominio del servicio a la dirección de servicio de la instancia CLB. Después de verificar la configuración de la instancia ALB, migre el tráfico de la instancia CLB a la instancia ALB de la siguiente manera. Este tema utiliza Alibaba Cloud DNS como ejemplo. Para obtener más información sobre Alibaba Cloud DNS, consulte Public Authoritative DNS Resolution.
Paso 1: Configurar un dominio temporal y un registro CNAME
Se recomienda un registro CNAME para la instancia ALB. Para habilitar el enrutamiento ponderado, agregue un registro CNAME para un nombre de dominio temporal que apunte a la dirección de servicio de la instancia CLB. Los siguientes pasos utilizan www.example.net como nombre de dominio de servicio para la instancia CLB.
Para usar el enrutamiento ponderado, debe tener varios registros A, CNAME o AAAA que compartan el mismo nombre de host y origen de consulta.
Inicie sesión en la consola de Alibaba Cloud DNS.
En la página Public Zone, busque y haga clic en el nombre de dominio
example.netpara la instancia CLB.En la página Settings, busque el registro A que apunta a la dirección de servicio de la instancia CLB y haga clic en Edit en la columna Actions.
En el panel Edit Record, cambie el Hostname y luego haga clic en OK. En este ejemplo, el Hostname se cambia a web0. Mantenga los demás parámetros sin cambios.
-
En la página Settings, haga clic en Add Record. En el panel Add Record, configure los siguientes parámetros y haga clic en OK.
Parámetro
Descripción
Record Type
Seleccione CNAME en la lista desplegable.
Hostname
El prefijo de su nombre de dominio. En este ejemplo, introduzca www.
DNS Query Source
Seleccione Default.
TTL
Tiempo de vida (TTL), que controla cuánto tiempo se almacena en caché un registro DNS en los servidores DNS. En este ejemplo, establezca el valor en 5 segundos.
Record Value
Introduzca el nombre de dominio temporal. En este ejemplo, introduzca web0.example.net.
Paso 2: Agregar un registro CNAME para ALB
En la página Settings, haga clic en Add Record. En el panel Add Record, configure los siguientes parámetros y haga clic en OK.
|
Parámetro |
Descripción |
|
Record Type |
Seleccione CNAME en la lista desplegable. |
|
Hostname |
El prefijo de su nombre de dominio. En este ejemplo, introduzca www. |
|
DNS Query Source |
Seleccione Default. |
|
TTL |
Tiempo de vida (TTL), que controla cuánto tiempo se almacena en caché un registro DNS en los servidores DNS. En este ejemplo, establezca el valor en 5 segundos. |
|
Record Value |
Introduzca el nombre DNS de la instancia ALB. |
Paso 3: Establecer pesos e iniciar la versión canary
En la página Settings, busque el registro CNAME que agregó en el Paso 2. Haga clic en la flecha desplegable junto a Edit y seleccione Edit Record Set.
En la sección Record Values en la parte inferior del panel Edit Record, establezca los pesos para los registros DNS de las instancias CLB y ALB de la siguiente manera: establezca el peso del registro DNS para la instancia CLB en 100, y el peso del registro DNS para la instancia ALB en 0. Haga clic en OK para guardar los cambios y salir.
Después de verificar que sus servicios no se ven afectados, disminuya gradualmente el peso del registro DNS para la instancia CLB y aumente el peso del registro DNS para la instancia ALB.
-
Inicie sesión en la instancia ECS04 en la misma VPC que la instancia ALB y ejecute el comando
digvarias veces para verificar la migración de tráfico.NotaAsegúrese de que la instancia ECS04 tenga una dirección IP pública e instale el comando dig ejecutando
yum install bind-utils.dig www.example.netLa siguiente figura muestra la salida del comando. Los resultados muestran que las solicitudes se distribuyen a la instancia ALB o CLB según los pesos configurados.
[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
Paso 4: Completar la migración de tráfico
Según los resultados de la verificación de la migración de tráfico, disminuya gradualmente el peso del registro DNS para la instancia CLB a 0 y, al mismo tiempo, aumente gradualmente el peso del registro DNS para la instancia ALB a 100. Esto completa la migración de tráfico de la instancia CLB a la instancia ALB. Cuando todas las conexiones de larga duración en la instancia CLB se hayan procesado por completo y la instancia CLB no reciba nuevo tráfico, puede monitorear la instancia durante un período de tiempo según su escenario de negocio y luego liberar la instancia CLB. Para obtener más información sobre cómo liberar una instancia CLB, consulte Release a CLB instance.
Preguntas frecuentes
Migración de reglas de redirección y reenvío de CLB
Después de la migración, el sistema configura automáticamente las reglas de redirección y forwarding rules para nombres de dominio y rutas de URL en la instancia de ALB.
Dado que CLB y ALB procesan los nombres de dominio y las URL de forma distinta, se recomienda comparar cuidadosamente las configuraciones de reglas de reenvío de CLB y ALB antes de transferir el tráfico. Para garantizar una funcionalidad idéntica, es posible que deba ajustar las reglas de reenvío en ALB según la differences between CLB and ALB forwarding rules.
Diferencias entre las reglas de reenvío de CLB y ALB
Las reglas de reenvío de CLB y ALB difieren en la forma en que procesan los nombres de dominio y las rutas de URL:
-
Nombre de dominio
CLB domain name forwarding rules admite coincidencia exacta y coincidencia con comodines. La precedencia de coincidencia es la siguiente: coincidencia exacta > comodín más específico > comodín menos específico. Esto garantiza que la regla más precisa se ejecute primero.
ALB domain name forwarding rules admite coincidencia exacta, coincidencia con comodines y coincidencia con expresiones regulares. Las reglas se evalúan según la priority that you specify.
-
Ruta de URL
CLB URL path forwarding rules utiliza coincidencia de prefijo más largo.
ALB URL path forwarding rules admite coincidencia exacta, coincidencia con comodines y coincidencia con expresiones regulares.
La siguiente tabla compara cómo CLB y ALB manejan los caracteres especiales en las solicitudes de URL. Utilice esta tabla para adaptar sus reglas de reenvío al migrar de CLB a ALB.
URL configurada
Solicitud
CLB
ALB
Descripción
??No coincide
No coincide
El carácter
?en una solicitud suele separar la ruta de URL de la cadena de consulta y se elimina durante el procesamiento.Cualquier carácter válido
No coincide
Coincide
En una coincidencia con comodines,
?puede representar cualquier carácter válido individual.%%No coincide
- (No permitido)
El carácter
%en una solicitud se usa normalmente para codificación porcentual. Durante el procesamiento,%61se decodifica comoa.%61%61No coincide
- (No permitido)
El carácter
%en una solicitud se usa normalmente para codificación porcentual. Durante el procesamiento,%61se decodifica comoa.aNo coincide
No coincide
-
a%61Coincide
Coincide
El carácter
%en una solicitud se usa normalmente para codificación porcentual. Durante el procesamiento,%61se decodifica comoa.ab,abc, etc.Coincide
No coincide
CLB admite coincidencia de prefijo más largo. ALB admite coincidencia exacta y coincidencia con comodines.
test/*test- (No compatible)
No coincide
CLB admite coincidencia de prefijo más largo. ALB admite coincidencia con comodines.
test/- (No compatible)
Coincide
test/a- (No compatible)
Coincide
Migración de certificados para listeners HTTPS de CLB
-
Durante la migración, debe especificar manualmente los certificados. Si no cuenta con los certificados obligatorios, primero debe adquirirlos o cargarlos en la consola de SSL Certificate.
Para certificados de servidor, consulte Purchase a commercial certificate y Upload, synchronize, and share SSL certificates.
Para certificados de CA, consulte Purchase and enable a private CA.
-
Después de la migración, el sistema aplica automáticamente los certificados de servidor, adicionales y de CA que usted especifique.
ALB puede distribuir tráfico para varios nombres de dominio. Para obtener más información, consulte Configure an HTTPS website with multiple domain names on a single ALB instance.
ALB es compatible con autenticación HTTPS unidireccional y bidireccional. Para obtener más información, consulte Use end-to-end HTTPS to encrypt traffic y Deploy an HTTPS service with two-way authentication by using ALB.
Migración de servidores backend desde diferentes VPC
Un grupo de servidores de ALB pertenece a una VPC específica. Durante la migración, el sistema crea un nuevo grupo de servidores en la VPC de la instancia de ALB. Debe agregar manualmente los servidores backend a este nuevo grupo. Estos servidores también deben estar en la misma VPC que la instancia de ALB.
ALB permite adjuntar servidores de diferentes VPC mediante un grupo de servidores basado en IP. Para ello, cree un grupo de servidores basado en IP para su instancia de ALB después de completar el asistente de migración y, a continuación, agregue las instancias de ECS al grupo de servidores. Para obtener más información, consulte Use ALB to attach servers in VPCs across regions.