Partilhar via


Melhores práticas de FinOps para redes

Este artigo descreve 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.


Azure Firewall

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

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

Esta 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: Análise do Firewall do Azure e sub-redes associadas

Esta consulta ARG analisa firewalls do Azure e suas sub-redes associadas em seu ambiente do Azure. Ele fornece informações sobre quais sub-redes estão associadas a cada instância de 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 muitas redes virtuais spoke que estão 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 Aplicação

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

Consulta: Gateways de aplicativos ociosos

Esta consulta ARG analisa gateways de aplicativos e seus pools de back-end associados em seu ambiente do Azure. Ele fornece informações sobre quais gateways de aplicativos 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 informações sobre seus circuitos de Rota Expressa e garantir que eles estejam configurados com as configurações apropriadas.

Consulta: Circuitos Idle ExpressRoute

Esta consulta ARG analisa circuitos de Rota Expressa 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

Balanceador de Carga

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

Consulta: Balanceadores de carga ociosos

Esta consulta ARG analisa os balanceadores de carga do Azure e seus pools de back-end associados em seu ambiente do Azure. Ele fornece informações 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 informações sobre seus recursos de DNS privado e garantir que eles estejam configurados com as configurações apropriadas.

Consulta: DNS privado

Esta consulta ARG analisa zonas DNS privadas dentro do 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 informações sobre seus recursos de endereço IP público e garantir que eles estejam configurados com as configurações apropriadas.

Consulta: Endereços IP públicos ociosos

Esta consulta ARG analisa endereços IP públicos do Azure. Ele fornece informações 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

Esta consulta ARG analisa endereços IP públicos e identifica o método de roteamento, o método de alocação e a SKU. Ele também analisa outros detalhes de endereços IP públicos que estão associados a uma configuração 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: Verifique a política de proteção contra DDoS de endereços IP públicos

Se você precisar proteger menos de 15 recursos IP públicos, a camada de proteção IP é a opção mais econômica. No entanto, se você tiver mais de 15 recursos IP públicos 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 informações sobre seus recursos do Gateway de Rede Virtual e garantir que eles estejam configurados com as configurações apropriadas.

Consulta: Verifique se há Gateway de Rede Virtual ocioso

Esta consulta ARG analisa os Gateways de Rede Virtual no 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: Verifique se há gateway NAT ocioso

Esta consulta ARG analisa gateways NAT em seu ambiente do Azure para identificar qualquer um que esteja ocioso.

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

Procura mais?

Perdemos alguma coisa? Gostaria de ver algo acrescentado? Adoraríamos saber mais sobre quaisquer perguntas, problemas ou soluções que você gostaria de ver abordadas aqui. Crie um novo problema com os detalhes que você gostaria de ver incluídos aqui.


Recursos relacionados:

Soluções relacionadas: