Diferentemente do Classic Load Balancer (CLB), o Application Load Balancer (ALB) é especializado em balanceamento de carga da Camada 7, oferece recursos avançados de roteamento e processa tráfego em grande escala na camada de aplicação. Migre listeners da Camada 7 do CLB para o ALB com um único clique e ative a proteção WAF com um clique, desacoplando totalmente o encaminhamento de tráfego da proteção.
Limitações da migração
Tipos de instância CLB compatíveis
Instâncias CLB IPv4 voltadas para rede interna em uma VPC com um listener da Camada 7 (HTTP ou HTTPS) configurado.
Instâncias CLB IPv4 voltadas para internet com um listener da Camada 7 (HTTP ou HTTPS) configurado.
Cenários não compatíveis
O assistente de migração não oferece suporte aos cenários a seguir. Recomendamos que você manually migrate Layer 7 listeners from CLB to ALB.
Instâncias CLB sem um listener HTTP ou HTTPS configurado.
Instâncias CLB voltadas para rede interna em uma rede clássica.
Instâncias CLB IPv6.
Considerações sobre a migração
A migração não é suportada em regiões onde o ALB não está disponível. Para obter informações sobre as regiões que oferecem suporte ao ALB, consulte Regions and zones that support ALB.
O assistente de migração não transfere configurações do WAF. Se o WAF estiver ativado na instância CLB, ative manualmente a proteção WAF na instância ALB de destino após a migração. Recomendamos ativar o WAF 3.0 para a nova instância ALB. Para mais informações, consulte Enable WAF protection for an ALB instance.
O assistente não migra regras de alerta baseadas em limiar do CLB. Configure novas regras de alerta para a instância ALB usando o console do CloudMonitor, operações de API ou SDKs. Para mais informações, consulte Configure alert rules for ALB metrics.
A proteção DDoS é ativada por padrão na instância ALB. No entanto, o assistente de migração não transfere limiares personalizados de proteção DDoS. Configure esses limiares manualmente no console de Segurança de Tráfego após a migração.
O assistente não migra configurações de controle de acesso. Caso precise de controle de acesso, configure-o na instância ALB após a migração. Para mais informações, consulte Access control.
Para listeners HTTPS, especifique manualmente o certificado de servidor e o certificado CA.
O assistente de migração não transfere configurações de grupo de servidores primário/secundário do CLB.
O assistente migra automaticamente os servidores de backend de uma instância CLB voltada para rede interna. Contudo, ele não migra atualmente servidores de backend de instâncias CLB voltadas para internet. O assistente cria um novo grupo de servidores na VPC onde a instância ALB reside. Adicione manualmente os servidores de backend a esse grupo. Os servidores de backend devem estar na mesma VPC da instância ALB.
Faturamento
A migração com um clique do CLB para o ALB não gera cobranças adicionais. A nova instância ALB é faturada conforme as regras de faturamento do ALB.
Pré-requisitos
Configure um listener da Camada 7 (listener HTTP ou HTTPS) na instância CLB que você planeja migrar.
-
Este exemplo utiliza quatro instâncias ECS.
Servidores de aplicação: ECS01 e ECS02 atuam como servidores de backend.
-
Servidores de teste: Utilize o ECS03 para testar o tráfego antes da migração e o ECS04 para verificar o tráfego durante a migração.
Se você já possui servidores de teste, não é necessário criar o ECS03 e o ECS04.
Etapa 1: Usar o assistente de migração
-
Abra o assistente de migração usando um dos métodos a seguir.
Método 1: Console do CLB
Faça login no console do CLB.
Na barra de navegação superior, selecione a região da instância CLB.
Na página Instances, localize a instância de destino e clique em seu ID.
Clique na aba Migration Wizard. Após confirmar as informações na mensagem, clique em Enable no cartão Migrate from CLB to ALB.
Método 2: Console do ALB
NotaEste método fica indisponível se não existirem instâncias ALB na região da instância CLB a ser migrada. Nesse caso, utilize o Método 1.
Faça login no console do ALB.
Na barra de navegação superior, selecione a região da instância CLB.
Na página Instances, clique em Migrate from CLB to ALB.
Na caixa de diálogo Migrate from CLB to ALB, confirme as informações na mensagem, selecione a instância CLB a ser migrada e clique em Open Migration Wizard.
-
Na etapa Review Configurations, revise as informações básicas da instância CLB e as informações pré-configuradas para a instância ALB. Configure todos os listeners marcados com o ícone
, marque a caixa de seleção de confirmação e clique em Next.
: Indica um item que requer configuração manual.
: Indica um item que o sistema modifica automaticamente.
Clique em Modify Listener e Modify Certificate para modificar as configurações do listener do ALB. Certificados só podem ser modificados em listeners HTTPS.
-
Na etapa Create Instance, configure a VPC e o vSwitch para a nova instância ALB e clique em Next.
Parâmetro
Descrição
VPC
Para uma instância CLB voltada para rede interna, a nova instância ALB é implantada na mesma VPC da instância CLB por padrão.
Para uma instância CLB voltada para internet, selecione uma VPC.
Zone
Selecione uma zona e um vSwitch.
Para garantir alta disponibilidade, recomendamos selecionar pelo menos duas zonas se a região atual oferecer suporte a duas ou mais zonas. O ALB não cobra taxas extras pelo uso de múltiplas zonas.
Selecione um vSwitch em cada zona escolhida. Se não houver vSwitches disponíveis em uma zona, crie um conforme orientado no console.
Opcional: Ao migrar uma instância CLB voltada para internet, selecione um elastic IP address (EIP) em cada zona escolhida.
Se nenhum EIP existente estiver disponível, selecione Purchase EIP. O sistema cria automaticamente um elastic IP address (EIP) BGP (Multi-ISP) com pagamento conforme o uso (pagamento por transferência de dados) e proteção Anti-DDoS Origin Basic, associando-o à instância ALB.
Também é possível associar um EIP existente à nova instância ALB.
ImportanteSomente EIPs com pagamento conforme o uso (pagamento por transferência de dados) que não façam parte de uma instância Internet Shared Bandwidth podem ser associados.
Os EIPs em zonas diferentes para a mesma instância ALB devem ser do mesmo tipo.
Na etapa Confirm Order, revise as configurações da instância ALB, marque a caixa de seleção na seção Pricing/Billing e clique em Start Migration.
-
Na etapa Complete, aguarde a conclusão da migração. Em seguida, execute as operações abaixo.
O Resource Orchestration Service (ROS) realiza a migração, que leva de 1 a 10 minutos. Siga as instruções para acessar o console do ROS e visualizar o status da tarefa de migração na stack correspondente.
Clique em View Instance para ir à página de detalhes da nova instância ALB.
Clique em CLB Instance List para retornar à lista de instâncias CLB.
Clique em ALB Instance List para retornar à lista de instâncias ALB.
-
Próximos passos: Após a migração, verifique se os servidores de backend foram adicionados à nova instância ALB.
No painel de navegação à esquerda, escolha .
Na página Instances, localize a nova instância ALB e clique em seu ID.
Clique na aba Listener. Localize o listener de destino e clique em View Details na coluna Actions.
-
Na aba Listener Details, clique em View/Modify Backend Server na seção Server Group (Default Forwarding Rule). Na aba Backend Servers exibida, verifique se há servidores de backend listados.
Se nenhum servidor de backend estiver listado, clique em Add Backend Server para adicionar pelo menos dois. Também implante aplicações neles para que a instância ALB possa distribuir requisições. Neste exemplo, ECS01 e ECS02 são adicionados como servidores de backend à instância ALB.
Para mais informações sobre como criar uma instância ECS, consulte Create an instance by using the wizard.
-
O exemplo a seguir mostra os comandos para implantar aplicações de teste no ECS01 e no ECS02.
Etapa 2: Testar o tráfego
(Opcional) Ativar logs de acesso
O ALB integra-se ao Simple Log Service (SLS) para fornecer logs de acesso. Utilize esses logs para monitorar a carga nas instâncias ALB e solucionar problemas.
Faça login no console do ALB.
Na barra de navegação superior, selecione a região onde a instância ALB está implantada.
Na página Instances, localize a instância ALB de destino e clique em seu ID.
Na página de detalhes da instância, clique na aba Access Logs. Em seguida, na aba Access Logs, clique em Create Access Log.
-
Na caixa de diálogo Create Access Log, configure Project e Logstore e clique em OK. Na caixa de diálogo de confirmação, clique em OK novamente.
Parâmetro
Descrição
Project
Uma unidade de gerenciamento de recursos no Simple Log Service usada para isolamento e controle de recursos.
Select Project: Selecione um Project na lista suspensa.
Create Project: Insira um nome para o novo Project.
Logstore
Uma unidade no Simple Log Service usada para coletar, armazenar e consultar dados de log.
Select Logstore: Selecione um Logstore na lista suspensa.
Create Logstore: Insira um nome para o novo Logstore. Se optar por criar um novo Project, também será necessário criar um novo Logstore.
Notes on Creating Service-linked Role
Esta operação cria automaticamente uma função vinculada ao serviço com as permissões necessárias.
Testar o tráfego
-
Remotely log in to o ECS03.
NotaEsta instância ECS03 possui um endereço IP público.
-
Execute o comando a seguir para modificar o arquivo hosts.
sudo vi /etc/hostsNo arquivo hosts, adicione o elastic IP address e o nome de domínio da instância ALB, salve e feche o arquivo.
118.XX.XX.113 www.example.net -
Execute o comando a seguir para testar o encaminhamento de tráfego pela instância ALB.
curl -v www.example.netA figura a seguir mostra a saída 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 visualizar os logs de acesso, retorne ao console do ALB. Na aba Access Logs da sua instância ALB, clique no link ao lado de Simple Log Service.
No console do Simple Log Service, também é possível combinar campos como request_uri, http_host, upstream_addr e status conforme necessário para visualizar os logs de execução de um nome de domínio ALB ou regras de encaminhamento baseadas em URL.
Etapa 3: Migrar o tráfego para a instância ALB
Como as regras de encaminhamento do CLB e do ALB tratam nomes de domínio e URLs de forma diferente, compare cuidadosamente as configurações das regras de encaminhamento do CLB e do ALB antes de migrar o tráfego. Para garantir que ofereçam exatamente a mesma funcionalidade, talvez seja necessário ajustar as regras de encaminhamento no ALB com base no differences between CLB and ALB forwarding rules. Além disso, todas as configurações devem ser rigorosamente testadas e verificadas para evitar impactos inesperados nos seus negócios durante o processo de migração.
Realize a migração de tráfego do CLB fora dos horários de pico.
As etapas a seguir pressupõem que a resolução DNS já esteja configurada para a instância CLB, com um registro A apontando o nome de domínio de serviço para o endereço de serviço da instância CLB. Após verificar a configuração da instância ALB, migre o tráfego da instância CLB para a instância ALB conforme descrito abaixo. Este tópico usa o Alibaba Cloud DNS como exemplo. Para mais informações sobre o Alibaba Cloud DNS, consulte Public Authoritative DNS Resolution.
Etapa 1: Configurar um domínio temporário e um registro CNAME
Recomenda-se usar um registro CNAME para a instância ALB. Para habilitar o roteamento ponderado, adicione um registro CNAME para um nome de domínio temporário que aponte para o endereço de serviço da instância CLB. As etapas a seguir usam www.example.net como o nome de domínio de serviço para a instância CLB.
Para usar roteamento ponderado, é necessário ter múltiplos registros A, CNAME ou AAAA que compartilhem o mesmo hostname e origem de consulta.
Faça login no console do Alibaba Cloud DNS.
Na página Public Zone, localize e clique no nome de domínio
example.netda instância CLB.Na página Settings, localize o registro A que aponta para o endereço de serviço da instância CLB e clique em Edit na coluna Actions.
No painel Edit Record, altere o Hostname e clique em OK. Neste exemplo, o Hostname é alterado para web0. Mantenha os demais parâmetros inalterados.
-
Na página Settings, clique em Add Record. No painel Add Record, configure os parâmetros a seguir e clique em OK.
Parâmetro
Descrição
Record Type
Selecione CNAME na lista suspensa.
Hostname
O prefixo do seu nome de domínio. Neste exemplo, insira www.
DNS Query Source
Selecione Default.
TTL
Time to Live (TTL), que controla por quanto tempo um registro DNS é armazenado em cache nos servidores DNS. Neste exemplo, defina o valor como 5 segundos.
Record Value
Insira o nome de domínio temporário. Neste exemplo, insira web0.example.net.
Etapa 2: Adicionar um registro CNAME para o ALB
Na página Settings, clique em Add Record. No painel Add Record, configure os parâmetros a seguir e clique em OK.
|
Parâmetro |
Descrição |
|
Record Type |
Selecione CNAME na lista suspensa. |
|
Hostname |
O prefixo do seu nome de domínio. Neste exemplo, insira www. |
|
DNS Query Source |
Selecione Default. |
|
TTL |
Time to Live (TTL), que controla por quanto tempo um registro DNS é armazenado em cache nos servidores DNS. Neste exemplo, defina o valor como 5 segundos. |
|
Record Value |
Insira o nome DNS da instância ALB. |
Etapa 3: Definir pesos e iniciar o canary release
Na página Settings, localize o registro CNAME adicionado na Etapa 2. Clique na seta suspensa ao lado de Edit e selecione Edit Record Set.
Na seção Record Values, na parte inferior do painel Edit Record, defina os pesos para os registros DNS das instâncias CLB e ALB da seguinte forma: defina o peso do registro DNS da instância CLB como 100 e o peso do registro DNS da instância ALB como 0. Clique em OK para salvar as alterações e sair.
Após confirmar que seus serviços não foram afetados, diminua gradualmente o peso do registro DNS da instância CLB e aumente o peso do registro DNS da instância ALB.
-
Faça login na instância ECS04 na mesma VPC da instância ALB e execute o comando
digvárias vezes para verificar a migração de tráfego.NotaCertifique-se de que a instância ECS04 tenha um endereço IP público e instale o comando dig executando
yum install bind-utils.dig www.example.netA figura a seguir mostra a saída do comando. Os resultados indicam que as requisições são distribuídas para a instância ALB ou CLB com base nos 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
Etapa 4: Concluir a migração de tráfego
Com base nos resultados da verificação da migração de tráfego, diminua gradualmente o peso do registro DNS da instância CLB para 0 e, simultaneamente, aumente gradualmente o peso do registro DNS da instância ALB para 100. Isso conclui a migração de tráfego da instância CLB para a instância ALB. Quando todas as conexões de longa duração na instância CLB forem totalmente processadas e a instância CLB não receber mais tráfego novo, monitore a instância por um período baseado no seu cenário de negócios e, em seguida, libere a instância CLB. Para mais informações sobre como liberar uma instância CLB, consulte Release a CLB instance.
FAQ
Migrando regras de redirecionamento e encaminhamento do CLB
Após a migração, o sistema configura automaticamente o redirecionamento e forwarding rules para nomes de domínio e caminhos de URL na instância ALB.
Como o CLB e o ALB processam nomes de domínio e URLs de maneira diferente, recomendamos comparar cuidadosamente as configurações das regras de encaminhamento do CLB e do ALB antes de transferir o tráfego. Para garantir funcionalidade idêntica, talvez seja necessário ajustar as regras de encaminhamento no ALB com base no differences between CLB and ALB forwarding rules.
Diferenças entre as regras de encaminhamento do CLB e do ALB
As regras de encaminhamento do CLB e do ALB diferem na forma como processam nomes de domínio e caminhos de URL:
-
Nome de domínio
O CLB domain name forwarding rules suporta correspondência exata e correspondência curinga. A precedência de correspondência é a seguinte: correspondência exata > curinga mais específico > curinga menos específico. Isso garante que a regra mais precisa seja executada primeiro.
O ALB domain name forwarding rules suporta correspondência exata, correspondência curinga e correspondência por expressão regular. As regras são avaliadas com base no priority that you specify.
-
Caminho de URL
O CLB URL path forwarding rules usa correspondência de prefixo mais longo.
O ALB URL path forwarding rules suporta correspondência exata, correspondência curinga e correspondência por expressão regular.
A tabela a seguir compara como o CLB e o ALB lidam com caracteres especiais em requisições de URL. Use esta tabela para adaptar suas regras de encaminhamento ao migrar do CLB para o ALB.
URL Configurada
Requisição
CLB
ALB
Descrição
??Não corresponde
Não corresponde
O caractere
?em uma requisição normalmente separa o caminho da URL da string de consulta e é removido durante o processamento.Qualquer caractere válido
Não corresponde
Corresponde
Em uma correspondência curinga,
?pode representar qualquer caractere válido único.%%Não corresponde
- (Não permitido)
O caractere
%em uma requisição é tipicamente usado para codificação percentual. Durante o processamento,%61é decodificado paraa.%61%61Não corresponde
- (Não permitido)
O caractere
%em uma requisição é tipicamente usado para codificação percentual. Durante o processamento,%61é decodificado paraa.aNão corresponde
Não corresponde
-
a%61Corresponde
Corresponde
O caractere
%em uma requisição é tipicamente usado para codificação percentual. Durante o processamento,%61é decodificado paraa.ab,abc, etc.Corresponde
Não corresponde
O CLB suporta correspondência de prefixo mais longo. O ALB suporta correspondência exata e correspondência curinga.
test/*test- (Não suportado)
Não corresponde
O CLB suporta correspondência de prefixo mais longo. O ALB suporta correspondência curinga.
test/- (Não suportado)
Corresponde
test/a- (Não suportado)
Corresponde
Migrando certificados para listeners HTTPS do CLB
-
Durante a migração, especifique manualmente os certificados. Se não possuir os certificados necessários, compre-os ou faça o upload deles no console de Certificados SSL previamente.
Para certificados de servidor, consulte Purchase a commercial certificate e Upload, synchronize, and share SSL certificates.
Para certificados CA, consulte Purchase and enable a private CA.
-
Após a migração, o sistema aplica automaticamente os certificados de servidor, adicionais e CA especificados.
O ALB pode distribuir tráfego para múltiplos nomes de domínio. Para mais informações, consulte Configure an HTTPS website with multiple domain names on a single ALB instance.
O ALB suporta autenticação HTTPS unidirecional e bidirecional. Para mais informações, consulte Use end-to-end HTTPS to encrypt traffic e Deploy an HTTPS service with two-way authentication by using ALB.
Migrando servidores de backend de VPCs diferentes
Um grupo de servidores do ALB pertence a uma VPC específica. Durante a migração, o sistema cria um novo grupo de servidores na VPC da instância ALB. Adicione manualmente os servidores de backend a este novo grupo. Esses servidores também devem estar na mesma VPC da instância ALB.
O ALB permite anexar servidores de VPCs diferentes usando um grupo de servidores baseado em IP. Para isso, crie um grupo de servidores baseado em IP para sua instância ALB após concluir o assistente de migração e adicione as instâncias ECS ao grupo de servidores. Para mais informações, consulte Use ALB to attach servers in VPCs across regions.