Como Configurar o Azure Traffic Manager com PowerShell

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
  1. 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. 🙂

Deixe um comentário

O seu endereço de e-mail não será publicado.