Compartilhar via


Práticas recomendadas de FinOps para rede

Este artigo descreve as práticas comprovadas de FinOps para serviços de rede. Eles se concentram na otimização de custos, melhorias de eficiência e insights de recursos.


Firewall do Azure

As seções a seguir fornecem consultas ARG (Azure Resource Graph) para o Firewall do Azure. Essas consultas ajudam você a obter insights sobre os recursos de firewall do Azure e garantir que eles estejam configurados com as configurações apropriadas. Ao analisar os padrões de uso e exibir recomendações do Assistente do Azure, você pode otimizar suas configurações de firewall do Azure para eficiência de custos.

Consulta: Análise de firewall e políticas de firewall do Azure

Essa consulta ARG analisa os firewalls do Azure e suas políticas de firewall associadas em seu ambiente do Azure. Ele visa especificamente firewalls com uma camada de SKU premium e verifica se as configurações em suas políticas de firewall associadas estão utilizando os recursos premium.

Categoria

Otimização

Consulta

resources 
| where type =~ 'Microsoft.Network/azureFirewalls' and properties.sku.tier=="Premium"
| project FWID=id, firewallName=name, SkuTier=tostring(properties.sku.tier), resourceGroup, location
| join kind=inner (
    resources
    | where type =~ 'microsoft.network/firewallpolicies'
    | mv-expand properties.firewalls
    | extend intrusionDetection = tostring(properties.intrusionDetection contains "Alert"
        or properties.intrusionDetection contains "Deny")
    | extend transportSecurity = tostring(properties.transportSecurity contains "keyVaultSecretId")
    | extend FWID = tostring(properties_firewalls.id)
    | where intrusionDetection == "False"
        and transportSecurity == "False"
    | project
        PolicyName = name,
        PolicySKU = tostring(properties.sku.tier),
        intrusionDetection,
        transportSecurity,
        FWID
) on FWID

Consulta: Firewall do Azure e análise de sub-redes associadas

Essa consulta ARG analisa os firewalls do Azure e suas sub-redes associadas em seu ambiente do Azure. Ele fornece insights sobre quais sub-redes estão associadas a cada instância do firewall do Azure. Otimize o uso do firewall do Azure tendo uma instância central do firewall do Azure na rede virtual do hub ou no hub seguro da WAN Virtual. Em seguida, compartilhe o mesmo firewall em várias redes virtuais spoke conectadas ao mesmo hub da mesma região.

Categoria

Otimização

Consulta

resources
| where type =~ 'Microsoft.Network/azureFirewalls' and properties.sku.tier=="Premium"
| project
    FWID=id,
    firewallName=name,
    SkuTier=tostring(properties.sku.tier),
    resourceGroup,
    location
| join kind=inner (
    resources
    | where type =~ 'microsoft.network/firewallpolicies'
    | mv-expand properties.firewalls
    | extend intrusionDetection = tostring(properties.intrusionDetection contains "Alert"
        or properties.intrusionDetection contains "Deny")
    | extend transportSecurity = tostring(properties.transportSecurity contains "keyVaultSecretId")
    | extend FWID=tostring(properties_firewalls.id)
    | where intrusionDetection == "False"
        and transportSecurity == "False"
    | project
        PolicyName = name,
        PolicySKU = tostring(properties.sku.tier),
        intrusionDetection,
        transportSecurity,
        FWID
) on FWID

Gateway de Aplicativo

A seção a seguir fornece consultas ARG para o Gateway de Aplicativo do Azure. Ele ajuda você a obter insights sobre os recursos do Gateway de Aplicativo do Azure e garantir que eles estejam configurados com as configurações apropriadas.

Consulta: Gateways de aplicativo ociosos

Essa consulta ARG analisa os gateways de aplicativo e seus pools de back-end associados em seu ambiente do Azure. Ele fornece insights sobre quais gateways de aplicativo têm pools de back-end vazios, indicando que eles podem estar ociosos e potencialmente desnecessários.

Categoria

Otimização

Consulta

resources
| where type =~ 'Microsoft.Network/applicationGateways'
| extend
    backendPoolsCount = array_length(properties.backendAddressPools),
    SKUName = tostring(properties.sku.name),
    SKUTier = tostring(properties.sku.tier),
    SKUCapacity = properties.sku.capacity,
    backendPools = properties.backendAddressPools,
    resourceGroup = strcat('/subscriptions/',subscriptionId,'/resourceGroups/',resourceGroup)
| project id, name, SKUName, SKUTier, SKUCapacity, resourceGroup, subscriptionId
| join (
    resources
    | where type =~ 'Microsoft.Network/applicationGateways'
    | mvexpand backendPools = properties.backendAddressPools
    | extend backendIPCount = array_length(backendPools.properties.backendIPConfigurations)
    | extend backendAddressesCount = array_length(backendPools.properties.backendAddresses)
    | extend backendPoolName = backendPools.properties.backendAddressPools.name
    | summarize
        backendIPCount = sum(backendIPCount),
        backendAddressesCount = sum(backendAddressesCount)
        by id
) on id
| project-away id1
| where (backendIPCount == 0 or isempty(backendIPCount))
    and (backendAddressesCount==0 or isempty(backendAddressesCount))
| order by id asc

ExpressRoute

A seção a seguir fornece uma consulta ARG para ExpressRoute. Ele ajuda você a obter insights sobre seus circuitos do ExpressRoute e garantir que eles estejam configurados com as configurações apropriadas.

Consulta: Circuitos ociosos do ExpressRoute

Essa consulta ARG analisa os circuitos do ExpressRoute em seu ambiente do Azure para identificar qualquer um sem um circuito concluído.

Categoria

Otimização

Consulta

resources
| where type =~ 'Microsoft.Network/expressRouteCircuits'
    and properties.serviceProviderProvisioningState == "NotProvisioned"
| extend
    ServiceLocation = tostring(properties.serviceProviderProperties.peeringLocation),
    ServiceProvider = tostring(properties.serviceProviderProperties.serviceProviderName),
    BandwidthInMbps = tostring(properties.serviceProviderProperties.bandwidthInMbps)
| project
    ERId = id,
    ERName = name,
    ERRG = resourceGroup,
    SKUName = tostring(sku.name),
    SKUTier = tostring(sku.tier),
    SKUFamily = tostring(sku.family),
    ERLocation = location,
    ServiceLocation,
    ServiceProvider,
    BandwidthInMbps

Load Balancer

A seção a seguir fornece uma consulta ARG para o Azure Load Balancer. Ele ajuda você a obter insights sobre os recursos do balanceador de carga do Azure e garantir que eles estejam configurados com as configurações apropriadas.

Consulta: Balanceadores de carga ociosos

Essa consulta ARG analisa os balanceadores de carga do Azure e seus pools de back-end associados em seu ambiente do Azure. Ele fornece insights sobre quais balanceadores de carga têm pools de back-end vazios, indicando que eles podem estar ociosos e potencialmente desnecessários.

Categoria

Otimização

Consulta

resources
| extend resourceGroup = strcat('/subscriptions/', subscriptionId, '/resourceGroups/', resourceGroup)
| extend SKUName = tostring(sku.name)
| extend SKUTier = tostring(sku.tier)
| extend location,backendAddressPools = properties.backendAddressPools
| where type =~ 'microsoft.network/loadbalancers'
    and array_length(backendAddressPools) == 0
    and sku.name!='Basic'
| order by id asc
| project
    id,
    name,
    SKUName,
    SKUTier,
    backendAddressPools,
    location,
    resourceGroup,
    subscriptionId

DNS privado

A seção a seguir fornece uma consulta ARG para DNS privado. Ele ajuda você a obter insights sobre seus recursos de DNS privado e garantir que eles estejam configurados com as configurações apropriadas.

Consulta: DNS privado

Essa consulta ARG analisa as zonas DNS privadas em seu ambiente do Azure para identificar qualquer uma sem Links de Rede Virtual.

Categoria

Otimização

Consulta

resources
| where type == "microsoft.network/privatednszones"
    and properties.numberOfVirtualNetworkLinks == 0
| project id, PrivateDNSName=name,
    NumberOfRecordSets = tostring(properties.numberOfRecordSets),
    resourceGroup = tostring(strcat('/subscriptions/', subscriptionId, '/resourceGroups/', resourceGroup)),
    vNets = tostring(properties.properties.numberOfVirtualNetworkLinks),
    subscriptionId

Endereço IP público

As seções a seguir fornecem consultas ARG para endereços IP públicos. Eles ajudam você a obter insights sobre seus recursos de endereço IP público e garantem que eles estejam configurados com as configurações apropriadas.

Consulta: Endereços IP públicos ociosos

Essa consulta ARG analisa os endereços IP públicos do Azure. Ele fornece insights sobre quais IPs públicos estão ociosos e potencialmente desnecessários.

Categoria

Otimização

Consulta

resources
| where type =~ 'Microsoft.Network/publicIPAddresses'
    and isempty(properties.ipConfiguration)
    and isempty(properties.natGateway)
    and properties.publicIPAllocationMethod =~ 'Static'
| extend
    PublicIpId = id,
    IPName = name,
    AllocationMethod = tostring(properties.publicIPAllocationMethod),
    SKUName = sku.name,
    Location = location,
    resourceGroup = strcat('/subscriptions/', subscriptionId, '/resourceGroups/', resourceGroup)
| project PublicIpId, IPName, SKUName, resourceGroup, Location, AllocationMethod, subscriptionId
| union (
    Resources
    | where type =~ 'microsoft.network/networkinterfaces'
        and isempty(properties.virtualMachine)
        and isnull(properties.privateEndpoint)
        and isnotempty(properties.ipConfigurations)
    | extend IPconfig = properties.ipConfigurations
    | mv-expand IPconfig
    | extend PublicIpId= tostring(IPconfig.properties.publicIPAddress.id)
    | project PublicIpId
    | join (
        resource
        | where type =~ 'Microsoft.Network/publicIPAddresses'
        | extend
            PublicIpId = id,
            IPName = name,
            AllocationMethod = tostring(properties.publicIPAllocationMethod),
            SKUName = sku.name,
            resourceGroup,
            Location = location
    ) on PublicIpId
    | project
        PublicIpId,
        IPName,
        SKUName,
        resourceGroup,
        Location,
        AllocationMethod,
        subscriptionId
)

Consulta: Identificar o método de roteamento de endereços IP públicos

Essa consulta ARG analisa endereços IP públicos e identifica o método de roteamento, o método de alocação e o SKU. Ele também analisa outros detalhes de endereços IP públicos associados a uma configuração de IP.

Categoria

Otimização

Consulta

resources
| where type =~ 'Microsoft.Network/publicIPAddresses'
    and isnotempty(properties.ipConfiguration)
| where tostring(properties.ipTags) == "[]"
| extend
    PublicIpId = id,
    RoutingMethod = id,
    IPName = name,
    AllocationMethod = tostring(properties.publicIPAllocationMethod),
    SKUName = sku.name,
    Location = location,
    resourceGroup = strcat('/subscriptions/', subscriptionId, '/resourceGroups/', resourceGroup)
| project
    PublicIpId,
    IPName,
    RoutingMethod,SKUName,
    resourceGroup,
    Location,
    AllocationMethod,
    subscriptionId

Consulta: Verificar a política de proteção contra DDoS de endereços IP públicos

Se você precisar proteger menos de 15 recursos de IP público, a camada de proteção de IP será a opção mais econômica. No entanto, se você tiver mais de 15 recursos de IP público para proteger, a camada de proteção de rede se tornará mais econômica.

Categoria

Otimização

Consulta

resources
| where type == "microsoft.network/publicipaddresses"
| project ddosProtection = tostring(properties.ddosSettings), name
| where ddosProtection has "Enabled"
| count
| project TotalIpsProtected = Count
| extend CheckIpsProtected = iff(TotalIpsProtected >= 15, "Enable Network Protection tier", "Enable PIP DDoS Protection")

Gateway de Rede Virtual

As seções a seguir fornecem consultas ARG para Gateways de Rede Virtual. Eles ajudam você a obter insights sobre os recursos do Gateway de Rede Virtual e garantem que eles estejam configurados com as configurações apropriadas.

Consulta: Verificar se há Gateway de Rede Virtual ocioso

Essa consulta ARG analisa os Gateways de Rede Virtual em seu ambiente do Azure para identificar os que estão ociosos.

Categoria

Otimização

Consulta

resources
| where type == "microsoft.network/virtualnetworkgateways"
| extend resourceGroup = strcat('/subscriptions/', subscriptionId, '/resourceGroups/', resourceGroup)
| project id, GWName=name, resourceGroup, location, subscriptionId
| join kind = leftouter(
    resources
    | where type == "microsoft.network/connections"
    | extend id = tostring(properties.virtualNetworkGateway1.id)
    | project id
) on id
| where isempty(id1)
| project
    id,
    GWName,
    resourceGroup,
    location,
    subscriptionId,
    status=id

Consulta: Verificar se há gateway NAT ocioso

Essa consulta ARG analisa os gateways NAT em seu ambiente do Azure para identificar os que estão ociosos.

Categoria

Otimização

Consulta

resources
| where type == "microsoft.network/natgateways" and isnull(properties.subnets)
| project
    id,
    GWName = name,
    SKUName = tostring(sku.name),
    SKUTier = tostring(sku.tier),
    Location = location,
    resourceGroup = tostring(strcat('/subscriptions/', subscriptionId, '/resourceGroups/', resourceGroup)),
    subnet = tostring(properties.subnet),
    subscriptionId

Procurando mais?

Perdemos alguma coisa? Você gostaria de ver algo adicionado? Adoraríamos ouvir sobre quaisquer perguntas, problemas ou soluções que você gostaria de ver abordados aqui. Crie um novo problema com os detalhes que você gostaria de ver incluídos aqui.


Recursos relacionados:

Soluções relacionadas: