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

Anwendungs-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: Anwendungsgateways im Leerlauf

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: ExpressRoute-Verbindungen im Leerlauf

Diese ARG-Abfrage analysiert ExpressRoute-Verbindungen in Ihrer Azure-Umgebung, um jene ohne eine abgeschlossene Verbindung 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

Lastenausgleich

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: Lastenausgleiche im Leerlauf

Diese ARG-Abfrage analysiert Azure-Lastenausgleichsgeräte und die zugehörigen Back-End-Pools in Ihrer Azure-Umgebung. Sie bietet Einblicke, welche Lastenausgleiche ü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: Private DNS

Diese ARG-Abfrage analysiert Private DNS-Zonen in Ihrer Azure-Umgebung, um solche 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: Ungenutzte öffentliche IP-Adressen

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 nach 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 nach 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

Feedback senden

Lassen Sie uns mit einer kurzen Bewertung wissen, wie wir abschneiden. Wir verwenden diese Rezensionen, um FinOps-Tools und -Ressourcen zu verbessern und zu erweitern.

Wenn Sie nach etwas Spezifischem suchen, wählen Sie eine vorhandene Idee aus, oder erstellen Sie eine neue Idee. Teilen Sie Ideen mit anderen, um mehr Stimmen zu erhalten. Wir konzentrieren uns auf Ideen mit den meisten Stimmen.


Verwandte Ressourcen:

Verwandte Lösungen: