Anexar um back-end entre assinaturas a um Azure Load Balancer
Neste artigo, você aprenderá a anexar um back-end entre assinaturas a um Azure Load Balancer criando um pool de back-end entre assinaturas e anexando interfaces de rede entre assinaturas ao pool de back-end do balanceador de carga.
Um balanceador de carga entre assinaturas pode referenciar uma rede virtual que reside em uma assinatura diferente dos balanceadores de carga. Esse recurso permite implantar um balanceador de carga em uma assinatura e fazer referência a uma rede virtual em outra assinatura.
Pré-requisitos
- Duas assinaturas do Azure.
- Uma conta do Azure com assinaturas ativas. Crie uma conta gratuitamente
- Uma Rede Virtual existente. implantada em uma das assinaturas. Para este exemplo, a rede virtual está na Assinatura A do Azure.
- O Azure PowerShell instalado localmente ou o Azure Cloud Shell.
Se você optar por instalar e usar o PowerShell localmente, este artigo exigirá o módulo do Azure PowerShell versão 5.4.1 ou posterior. Execute Get-Module -ListAvailable Az
para localizar a versão instalada. Se você precisa atualizar, consulte Instalar o módulo do Azure PowerShell. Se você estiver executando o PowerShell localmente, também precisará executar o Connect-AzAccount
para criar uma conexão com o Azure.
Importante
Todos os exemplos de código usarão nomes de exemplo e espaços reservados. Substitua-os pelos valores do seu ambiente.
Os valores que precisam de substituição serão colocados entre colchetes angulares, assim: <example value>
.
Entrar no Azure
Com o Azure PowerShell, você entra no Azure com Connect-AzAccount
e altera o contexto da assinatura com Set-AzContext
para a Assinatura A do Azure. Em seguida, obtenha as informações da rede virtual com Get-AzVirtualNetwork
. Você precisa da ID da assinatura do Azure, do nome do grupo de recursos e do nome da rede virtual do seu ambiente.
# Sign in to Azure
Connect-AzAccount
# Set the subscription context to Azure Subscription A
Set-AzContext -Subscription '<Azure Subscription A>'
# Get the Virtual Network information with Get-AzVirtualNetwork
$net = @{
Name = '<vnet name>'
ResourceGroupName = '<Resource Group Subscription A>'
}
$vnet = Get-AzVirtualNetwork @net
Criar um grupo de recursos
Nesta seção, você criará um grupo de recursos na Assinatura B do Azure. Esse grupo de recursos é para todos os seus recursos associados ao balanceador de carga.
Com o Azure PowerShell, você alterna o contexto de assinatura com Set-AzContext
e cria um grupo de recursos com New-AzResourceGroup
.
# Set the subscription context to Azure Subscription B
Set-AzContext -Subscription '<Azure Subscription B>'
# Create a resource group
$rg = @{
Name = 'myResourceGroupLB'
Location = 'westus'
}
New-AzResourceGroup @rg
Observação
Ao criar o grupo de recursos para o balanceador de carga, use a mesma região do Azure que a rede virtual na Assinatura A do Azure.
Criar um balanceador de carga
Nesta seção, você criará um balanceador de carga na Assinatura B do Azure. Você cria um balanceador de carga com um endereço IP de front-end.
Com o Azure PowerShell, você:
- Um balanceador de carga com
New-AzLoadBalancer
- Criar um endereço IP público com
New-AzPublicIpAddress
- Adicionar uma configuração de IP de front-end com
Add-AzLoadBalancerFrontendIpConfig
- Criar um pool de endereços de back-end com
New-AzLoadBalancerBackendAddressPool
.
# Create a load balancer
$loadbalancer = @{
ResourceGroupName = 'resource group B'
Name = 'LB Name'
Location = 'eastus'
Sku = 'Standard'
}
$LB = New-AzLoadBalancer @loadbalancer
$LBinfo = @{
ResourceGroupName = 'resource group B'
Name = 'my-lb'
}
# Create a public IP address
$publicip = @{
Name = 'IP Address Name'
ResourceGroupName = 'resource group B'
Location = 'eastus'
Sku = 'Standard'
AllocationMethod = 'static'
Zone = 1,2,3
}
New-AzPublicIpAddress @publicip
# Place public IP created in previous steps into variable
$pip = @{
Name = 'IP Address Name'
ResourceGroupName = 'resource group B'
}
$publicIp = Get-AzPublicIpAddress @pip
## Create load balancer frontend configuration and place in variable
$fip = @{
Name = 'Frontend Name'
PublicIpAddress = $publicip
}
$LB = $LB | Add-AzLoadBalancerFrontendIpConfig @fip
$LB = $LB | Set-AzLoadBalancer
# Create backend address pool configuration and place in variable. ##
$be = @{
ResourceGroupName= "resource group B"
Name= "myBackEndPool"
LoadBalancerName= "LB Name"
VirtualNetwork=$vnet.id
SyncMode= "Automatic"
}
#Create the backend pool
$backend = New-AzLoadBalancerBackendAddressPool @be
$LB = Get-AzLoadBalancer @LBinfo
Criar uma regra de investigação de integridade e balanceador de carga
Crie uma investigação de integridade que determina a integridade das instâncias de VM de back-end e uma regra de balanceador de carga que define a configuração de IP de front-end para o tráfego de entrada, o pool de IP de back-end para receber o tráfego e a porta de origem e destino necessárias.
Com o Azure PowerShell, crie uma investigação de integridade com Add-AzLoadBalancerProbeConfig
que determina a integridade das instâncias de VM de back-end. Em seguida, crie uma regra de balanceador de carga com Add-AzLoadBalancerRuleConfig
que define a configuração de IP de front-end para o tráfego de entrada e o pool de IP de back-end para receber o tráfego, junto com as portas de origem e de destino necessárias.
## Create the health probe and place in variable. ##
$probe = @{
Name = 'myHealthProbe2'
Protocol = 'tcp'
Port = '80'
IntervalInSeconds = '360'
ProbeCount = '5'
}
## Create the load balancer rule and place in variable. ##
$lbrule = @{
Name = 'myHTTPRule2'
Protocol = 'tcp'
FrontendPort = '80'
BackendPort = '80'
IdleTimeoutInMinutes = '15'
FrontendIpConfiguration = $LB.FrontendIpConfigurations[0]
BackendAddressPool = $backend
}
## Set the load balancer resource. ##
$LB | Add-AzLoadBalancerProbeConfig @probe
$LB | Add-AzLoadBalancerRuleConfig @lbrule
$LB | Set-AzLoadBalancer
Anexar cartões de interface de rede ao balanceador de carga
Nesta seção, você anexa a NIC (placa de interface de rede) da Assinatura A do Azure ao balanceador de carga na Assinatura B do Azure. Crie um adaptador de rede com New-AzNetworkInterface
e, em seguida, crie uma configuração de IP para a placa de interface de rede com New-AzNetworkInterfaceIpConfig
.
Observação
A NIC (placa de interface de rede) deve estar na mesma VNet que o pool de back-end do balanceador de carga.
# Set the subscription context to **Azure Subscription A**
Set-AzContext -Subscription 'Sub A'
# Create a network interface card
$IP1 = @{
Name = 'MyIpConfig'
subnetID= $vnet.subnets[0].Id
PrivateIpAddressVersion = 'IPv4'
-LoadBalancerBackendAddressPool $lb-be-info
}
$IP1Config = New-AzNetworkInterfaceIpConfig @IP1 -Primary
$nic = @{
Name = 'MyNic'
ResourceGroupName = '<Resoure Group Subscription A>'
Location = 'eastus'
IpConfiguration = $IP1Config
}
New-AzNetworkInterface @nic
Limpar os recursos
Quando não forem mais necessários, você poderá usar o comando Remove-AzResourceGroup para remover o grupo de recursos que você criou junto com o balanceador de carga e os recursos restantes.
Remove-AzResourceGroup -Name 'myResourceGroupLB'