Freigeben über


Bewährte Methoden für FinOps für Netzwerke

In diesem Artikel werden bewährte FinOps-Methoden für Netzwerkdienste beschrieben. Sie konzentrieren sich auf Kostenoptimierung, Effizienzverbesserungen und Ressourcenerkenntnisse.


Azure Firewall

In den folgenden Abschnitten werden Azure Resource Graph (ARG)-Abfragen für Azure Firewall bereitgestellt. Diese Abfragen helfen Ihnen, Einblicke in Ihre Azure-Firewallressourcen zu erhalten und sicherzustellen, dass sie mit den entsprechenden Einstellungen konfiguriert sind. Durch die Analyse von Nutzungsmustern und Empfehlungen von Azure Advisor können Sie Ihre Azure-Firewallkonfigurationen auf Kosteneffizienz optimieren.

Abfrage: Analyse von Azure-Firewall- und Firewallrichtlinien

Diese ARG-Abfrage analysiert Azure-Firewalls und die zugehörigen Firewallrichtlinien in Ihrer Azure-Umgebung. Sie zielt speziell auf Firewalls mit einer Premium-SKU-Stufe ab und überprüft, ob die Konfigurationen in ihren zugehörigen Firewallrichtlinien die Premium-Features nutzen.

Kategorie

Optimierung

Abfrage

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

Abfrage: Azure Firewall und zugehörige Subnetzanalyse

Diese ARG-Abfrage analysiert Azure-Firewalls und die zugehörigen Subnetze in Ihrer Azure-Umgebung. Sie bietet Einblicke in die Subnetze, die jeder Azure-Firewallinstanz zugeordnet sind. Optimieren Sie die Verwendung der Azure-Firewall, indem Sie eine zentrale Instanz der Azure-Firewall im virtuellen Hub oder im sicheren WAN-Hub verwenden. Teilen Sie dann dieselbe Firewall über viele virtuelle Speichennetzwerke, die mit demselben Hub aus derselben Region verbunden sind.

Kategorie

Optimierung

Abfrage

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

Application Gateway

Der folgende Abschnitt enthält eine ARG-Abfrage für Azure-App lication Gateway. Es hilft Ihnen, Einblicke in Ihre Azure-App lication Gateway-Ressourcen zu erhalten und sicherzustellen, dass sie mit den entsprechenden Einstellungen konfiguriert sind.

Abfrage: Idle-Anwendungsgateways

Diese ARG-Abfrage analysiert Anwendungsgateways und die zugehörigen Back-End-Pools in Ihrer Azure-Umgebung. Es bietet Einblicke, welche Anwendungsgateways über leere Back-End-Pools verfügen, was darauf hinweist, dass sie im Leerlauf und potenziell unnötig sind.

Kategorie

Optimierung

Abfrage

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

Der folgende Abschnitt enthält eine ARG-Abfrage für ExpressRoute. Es hilft Ihnen, Einblicke in Ihre ExpressRoute-Schaltkreise zu gewinnen und sicherzustellen, dass sie mit den entsprechenden Einstellungen konfiguriert sind.

Abfrage: Leerlauf-ExpressRoute-Schaltkreise

Diese ARG-Abfrage analysiert ExpressRoute-Schaltkreise in Ihrer Azure-Umgebung, um ohne einen abgeschlossenen Schaltkreis zu identifizieren.

Kategorie

Optimierung

Abfrage

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

Der folgende Abschnitt enthält eine ARG-Abfrage für Azure Load Balancer. Es hilft Ihnen, Einblicke in Ihre Azure Load Balancer-Ressourcen zu erhalten und sicherzustellen, dass sie mit den entsprechenden Einstellungen konfiguriert sind.

Abfrage: Leerlauflastenausgleich

Diese ARG-Abfrage analysiert Azure-Lastenausgleichsgeräte und die zugehörigen Back-End-Pools in Ihrer Azure-Umgebung. Es bietet Einblicke, welche Lastenausgleichsgeräte über leere Back-End-Pools verfügen, was darauf hinweist, dass sie im Leerlauf und potenziell unnötig sind.

Kategorie

Optimierung

Abfrage

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

Privates DNS

Der folgende Abschnitt enthält eine ARG-Abfrage für Privates DNS. Es hilft Ihnen, Einblicke in Ihre Privates DNS Ressourcen zu gewinnen und sicherzustellen, dass sie mit den entsprechenden Einstellungen konfiguriert sind.

Abfrage: Privates DNS

Diese ARG-Abfrage analysiert Privates DNS Zonen in Ihrer Azure-Umgebung, um ohne virtuelle Netzwerkverbindungen zu identifizieren.

Kategorie

Optimierung

Abfrage

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

Öffentliche IP-Adresse

In den folgenden Abschnitten werden ARG-Abfragen für öffentliche IP-Adressen bereitgestellt. Sie helfen Ihnen, Einblicke in Ihre ressourcen für öffentliche IP-Adressen zu erhalten und sicherzustellen, dass sie mit den entsprechenden Einstellungen konfiguriert sind.

Abfrage: Öffentliche IP-Adressen im Leerlauf

Diese ARG-Abfrage analysiert öffentliche Azure-IP-Adressen. Es bietet Einblicke, welche öffentlichen IPs leer und potenziell unnötig sind.

Kategorie

Optimierung

Abfrage

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
)

Abfrage: Identifizieren der Routingmethode für öffentliche IP-Adressen

Diese ARG-Abfrage analysiert öffentliche IP-Adressen und identifiziert die Routingmethode, die Zuordnungsmethode und die SKU. Außerdem werden weitere Details zu öffentlichen IP-Adressen analysiert, die einer IP-Konfiguration zugeordnet sind.

Kategorie

Optimierung

Abfrage

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

Abfrage: Überprüfen der DDoS-Schutzrichtlinie für öffentliche IP-Adressen

Wenn Sie weniger als 15 öffentliche IP-Ressourcen schützen müssen, ist die IP-Schutzebene die kostengünstigere Option. Wenn Sie jedoch mehr als 15 öffentliche IP-Ressourcen zum Schutz haben, wird die Netzwerkschutzebene kostengünstiger.

Kategorie

Optimierung

Abfrage

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 für virtuelle Netzwerke

In den folgenden Abschnitten werden ARG-Abfragen für Virtuelle Netzwerkgateways bereitgestellt. Sie helfen Ihnen, Einblicke in Ihre Ressourcen für virtuelles Netzwerkgateway zu gewinnen und sicherzustellen, dass sie mit den entsprechenden Einstellungen konfiguriert sind.

Abfrage: Überprüfen des virtuellen Netzwerkgateways im Leerlauf

Diese ARG-Abfrage analysiert virtuelle Netzwerkgateways in Ihrer Azure-Umgebung, um alle im Leerlauf befindlichen Gateways zu identifizieren.

Kategorie

Optimierung

Abfrage

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

Abfrage: Überprüfen des NAT-Gateways im Leerlauf

Diese ARG-Abfrage analysiert NAT-Gateways in Ihrer Azure-Umgebung, um alle im Leerlauf befindlichen Gateways zu identifizieren.

Kategorie

Optimierung

Abfrage

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

Suchen Sie mehr?

Haben wir etwas verpasst? Möchten Sie etwas hinzufügen? Wir freuen uns, uns über Fragen, Probleme oder Lösungen zu informieren, die Hier behandelt werden sollen. Erstellen Sie ein neues Problem mit den Details, die Sie hier sehen möchten.


Verwandte Ressourcen:

Verwandte Lösungen: