O Azure Traffic Manager é um load balancer baseado em DNS que permite distribuir o tráfego de maneira ideal para serviços nas regiões globais do Azure, oferecendo alta disponibilidade e capacidade de resposta.
O Traffic Manager usa o DNS para direcionar solicitações de clientes ao ponto de extremidade de serviço mais apropriado, com base em um método de roteamento de tráfego e na integridade dos pontos de extremidade. Um ponto de extremidade é qualquer serviço voltado para a Internet hospedado dentro ou fora do Azure. O Traffic Manager fornece uma variedade de métodos de roteamento de tráfego e opções de monitoramento de terminal para atender a diferentes necessidades de aplicativos e modelos de failover automático. O Traffic Manager é resiliente a falhas, incluindo a falha de uma região inteira do Azure.
O Azure Traffic Manager distribui o tráfego com base no método de balanceamento de carga abaixo:
- Priority – que encaminha todo o tráfego será roteado para o ponto final primário, a menos que ele falhe.
- Performance – que direciona o tráfego para o terminal medindo menor latência da rede.
- Weighted – que distribui o tráfego com base no peso. Quanto maior o peso, maior o tráfego roteado até o ponto final.
- Geographic – os usuários são direcionados para pontos de extremidade específicos com base em sua localização geográfica de onde a consulta DNS se origina.
Cenário
- Duas instancias de aplicativo Web chamados AppServiceTM01 e AppServiceTM02
- Gerente de tráfego
- Vamos criar duas instancias de aplicativo Web em duas regiões diferentes do Azure.
O Script abaixo cria dois aplicativos web chamados AppServiceTM01 e AppServiceTM02 localizados no WestUS e
EastUS.
Vamos executar o script utilizando o Azure Cloud Shell.
## Criar um Resource Group ##
# Variaveis
$Location1=”WestUS”
# Criar um grupo de recursos
New-AzResourceGroup -Name RG-trafficManager -Location $ Location1
Observe na imagem abaixo a execução dos comandos.
## Criar planos do Serviço de Aplicativo da Web ##
# Variáveis
$ App1Name = “AppServiceT01 $Random”
$ App2Name = “AppServiceT22 $Random”
$ Location1 = “WestUS”
$ Location2 = “EastUS”
# Criar um plano de serviço do aplicativo
New-AzAppservicePlan -Name “$App1Name-Plan” -ResourceGroupName RG-trafficManager -Location $Location1 -Tier Standard
New-AzAppservicePlan -Name “$App2Name-Plan” -ResourceGroupName RG-trafficManager -Location $Location2 -Tier Standard
Observe na imagem abaixo a execução dos comandos.
## Crie um aplicativo da Web no serviço de aplicativo ##
$ App1ResourceId = (New-AzWebApp -Name $ App1Name -ResourceGroupName RG-trafficManager -Location $ Location1 -AppServicePlan “$ App1Name-Plan”). Id
$ App2ResourceId = ( New-AzWebApp -Name $ App2Name -ResourceGroupName RG-trafficManager -Location $ Location2 -AppServicePlan “$ App2Name-Plan”). Id
2 . Clique em Resource group –> RG-trafficManager e observe que nossos aplicativos web e planos foram criados com sucesso.
3. Clique em AppServiceT01 copie a URL https://appservicet01.azurewebsites.net e cole em seu navegador, de preferencia utilizar o modo anonimo do navegador.
Observe que o aplicativo tem uma página padrão, vamos alterar o nome dessa página.
Vamos alterar o nome da página de exibição do AppServiceT01
3. Clique em AppServiceT01, Deployment Tools e clique em App Service Editor (Previw).
04. Na tela App Service Editor (Preview) clique em Go.
05. A tela App Service Editor será aberta, remova a frase Hey App Service developers!, e adicione um nome de sua preferência em nosso exemplo vamos alterar o nome para AppServiceT01. O arquivo sera salvo automaticamente.
06 . Cole a URL https://appservicet01.azurewebsites.net do AppServiceT01 em seu navegador e observe se o nome AppServiceT01 foi adicionado a página.
O próximo passo será alterar o nome da página de exibição do AppServiceT02.
07. Clique em AppServiceT22, Deployment Tools e clique em App Service Editor (Previw).
08. Na tela App Service Editor (Preview) clique em Go.
09. A tela App Service Editor será aberta, remova a frase Hey App Service developers!, e adicione um nome de sua preferência em nosso exemplo vamos alterar o nome para AppServiceT02. O arquivo sera salvo automaticamente.
10. Selecione um URL do AppServiceT02.
11. Cole a URL https://appservicet22.azurewebsites.net do AppServiceT02 em seu navegador e observe se o nome AppServiceT02 foi adicionado a página.
Agora vamos configurar o Traffic Manager para distribuir as requisições na porta 80 com base na performance dos nossos aplicativos web.
O Script abaixo configura o Traffic Manager.
# Variáveis
$trafficmanager = “tmAppService”
$Resourcegroup = “RG-trafficManager”
$App1Name = “AppServiceT01”
$Location1 = “WestUS”
$App2Name = “AppServiceT22”
$Location2 = “East US”
$NameEndpoint01 = “APP-01”
$NameEndpoint02 = “APP-02”
# Criar o Traffic Manager
New-AzTrafficManagerProfile -Name $ trafficmanager -ResourceGroupName $ Resourcegroup -TrafficRoutingMethod Performance -MonitorPath ‘/’ -MonitorProtocol HTTP -RelativeDnsName $ trafficmanager -Ttl 30 -MonitorPort 80 -Verbose
Podemos observar na imagem abaixo a execução dos comandos:
Como podemos observar na imagem abaixo o Traffic Manager Profile foi criado.
Agora vamos adicionar o AppServiceT01 e AppServiceT02 ao Traffic Manager.
O Script abaixo adiciona o AppServiceT01 e AppServiceT02 ao Traffic Manager.
# Add Traffic Manager endpoints
New-AzTrafficManagerEndpoint -Name $NameEndpoint01 -ResourceGroupName $Resourcegroup -ProfileName tmAppService -Type AzureEndpoints -TargetResourceId $App1ResourceId -EndpointStatus Enabled -EndpointLocation $Location1 -Verbose
New-AzTrafficManagerEndpoint -Name $NameEndpoint02 -ResourceGroupName $Resourcegroup -ProfileName tmAppService -Type AzureEndpoints -TargetResourceId $App2ResourceId -EndpointStatus Enabled -EndpointLocation $Location2 -Verbose
Observe na imagem abaixo a execução dos comando.
Observe na imagem abaixo que AppServiceT01 e AppServiceT02 foram adicionados como Endpoints e Monitor status está Online.
As requisições para AppServiceT01 e AppServiceT02 serão feitas utilizando o DNS name do traffic manager.
20. Clique em Configuration, observe que o traffic manager está monitorando nossas aplicações na porta 80, podemos observar outras opções como número de falhas, etc.
O próximo passo é testar o acesso aos aplicativos web utilizando o DNS name do Traffic Manager.
21. Clique em Overview e copie o DNS name
22. Cole o DNS name http://tmappservice.trafficmanager.net em seu navegador.
Observe que as requisições estão sendo direcionadas para o AppServiceT02 vamos para-ló e verificar se as requisições serão direcionadas para o AppServiceT01
Execute o seguinte comando para desabilitar o AppServiceT02.
Disable-AzTrafficManagerEndpoint -Name $NameEndpoint02 -Type AzureEndpoints -ProfileName $trafficmanager -ResourceGroupName $Resourcegroup -Force
Observe na imagem abaixo a execução do comando.
Observe na imagem abaixo que o APP-02 foi desabilitado, o trafego agora tem que ser direcionado para o APP-01
24 . Atualize a página do navegador que está aberta com o endereço dns do traffic manager
Observe que as requisições agora foram direcionadas para o AppServiceT01.
Espero que este conteúdo tenha contribuído com o enriquecimento do conhecimento de vocês em Azure.
Tem alguma sugestão ou observação, comente.
Forte abraço, obrigado e até o próximo post. 🙂
Carreira desenvolvida na área de tecnologia da informação, com ampla experiência em Cloud
Computing e Cloud Security.
Forte atuação em projetos de Cloud Security no Microsoft Azure e com tecnologias de
segurança do Microsoft 365.
Tenho Experiência em Microsoft Azure, Microsoft 365, AWS e Windows Server.
Sou Microsoft MVP na categoria Microsoft Azure, AWS Communit Builder Security & Identity e
MCT.