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.
Zugehöriger Inhalt
Verwandte Ressourcen:
Verwandte Lösungen: