Procedure consigliate di FinOps per la rete
Questo articolo illustra procedure FinOps comprovate per i servizi di rete. Si concentrano sull'ottimizzazione dei costi, sui miglioramenti dell'efficienza e sulle informazioni dettagliate sulle risorse.
Firewall di Azure
Le sezioni seguenti forniscono query di Azure Resource Graph (ARG) per Firewall di Azure. Queste query consentono di ottenere informazioni dettagliate sulle risorse del firewall di Azure e assicurarsi che siano configurate con le impostazioni appropriate. Analizzando i modelli di utilizzo e visualizzando le raccomandazioni di Azure Advisor, è possibile ottimizzare le configurazioni del firewall di Azure per ottimizzare l'efficienza dei costi.
Query: analisi dei criteri firewall e firewall di Azure
Questa query ARG analizza i firewall di Azure e i criteri firewall associati all'interno dell'ambiente Azure. È destinato in particolare ai firewall con un livello SKU Premium e verifica che le configurazioni nei criteri firewall associati usino le funzionalità Premium.
Categoria
Ottimizzazione
Query
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
Query: Firewall di Azure e l'analisi delle subnet associate
Questa query ARG analizza i firewall di Azure e le subnet associate all'interno dell'ambiente Azure. Fornisce informazioni dettagliate sulle subnet associate a ogni istanza del firewall di Azure. Ottimizzare l'uso del firewall di Azure con un'istanza centrale del firewall di Azure nella rete virtuale hub o rete WAN virtuale hub sicuro. Condividere quindi lo stesso firewall tra più reti virtuali spoke connesse allo stesso hub dalla stessa area.
Categoria
Ottimizzazione
Query
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 applicazione
La sezione seguente fornisce una query ARG per app Azure lication Gateway. Consente di ottenere informazioni dettagliate sulle risorse del gateway di app Azure e assicurarsi che siano configurate con le impostazioni appropriate.
Query: gateway applicazione inattive
Questa query ARG analizza i gateway applicazione e i pool back-end associati all'interno dell'ambiente Azure. Fornisce informazioni dettagliate su quali gateway applicazione hanno pool back-end vuoti, a indicare che potrebbero essere inattive e potenzialmente non necessarie.
Categoria
Ottimizzazione
Query
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
La sezione seguente fornisce una query ARG per ExpressRoute. Consente di ottenere informazioni dettagliate sui circuiti ExpressRoute e di assicurarsi che siano configurati con le impostazioni appropriate.
Query: circuiti ExpressRoute inattive
Questa query ARG analizza i circuiti ExpressRoute all'interno dell'ambiente Azure per identificare eventuali circuiti senza un circuito completato.
Categoria
Ottimizzazione
Query
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
La sezione seguente fornisce una query ARG per Azure Load Balancer. Consente di ottenere informazioni dettagliate sulle risorse del servizio di bilanciamento del carico di Azure e assicurarsi che siano configurate con le impostazioni appropriate.
Query: servizi di bilanciamento del carico inattive
Questa query ARG analizza i servizi di bilanciamento del carico di Azure e i pool back-end associati all'interno dell'ambiente Azure. Fornisce informazioni dettagliate su quali servizi di bilanciamento del carico hanno pool back-end vuoti, a indicare che potrebbero essere inattive e potenzialmente non necessarie.
Categoria
Ottimizzazione
Query
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 privato
Nella sezione seguente viene fornita una query ARG per DNS privato. Consente di ottenere informazioni dettagliate sulle risorse DNS privato e assicurarsi che siano configurate con le impostazioni appropriate.
Query: DNS privato
Questa query ARG analizza DNS privato zone all'interno dell'ambiente Azure per identificare eventuali aree senza collegamenti Rete virtuale.
Categoria
Ottimizzazione
Query
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
Indirizzo IP pubblico
Le sezioni seguenti forniscono query ARG per gli indirizzi IP pubblici. Consentono di ottenere informazioni dettagliate sulle risorse dell'indirizzo IP pubblico e assicurarsi che siano configurate con le impostazioni appropriate.
Query: indirizzi IP pubblici inattive
Questa query ARG analizza gli indirizzi IP pubblici di Azure. Fornisce informazioni dettagliate su quali indirizzi IP pubblici sono inattive e potenzialmente non necessari.
Categoria
Ottimizzazione
Query
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
)
Query: Identificare il metodo di routing degli indirizzi IP pubblici
Questa query ARG analizza gli indirizzi IP pubblici e identifica il metodo di routing, il metodo di allocazione e lo SKU. Analizza anche altri dettagli degli indirizzi IP pubblici associati a una configurazione IP.
Categoria
Ottimizzazione
Query
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
Query: Controllare i criteri di protezione DDoS degli indirizzi IP pubblici
Se è necessario proteggere meno di 15 risorse IP pubbliche, il livello di protezione IP è l'opzione più conveniente. Tuttavia, se si dispone di più di 15 risorse IP pubbliche da proteggere, il livello di protezione di rete diventa più conveniente.
Categoria
Ottimizzazione
Query
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 di rete virtuale
Le sezioni seguenti forniscono query ARG per i gateway Rete virtuale. Consentono di ottenere informazioni dettagliate sulle risorse del gateway Rete virtuale e assicurarsi che siano configurate con le impostazioni appropriate.
Query: verificare la presenza di gateway Rete virtuale inattive
Questa query ARG analizza Rete virtuale gateway all'interno dell'ambiente Di Azure per identificare eventuali elementi inattive.
Categoria
Ottimizzazione
Query
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
Query: verificare la presenza di un gateway NAT inattiva
Questa query ARG analizza i gateway NAT all'interno dell'ambiente Di Azure per identificare eventuali elementi inattive.
Categoria
Ottimizzazione
Query
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
Stai cercando di più?
Ci mancava qualcosa? Vuoi vedere qualcosa aggiunto? Ci piacerebbe ascoltare eventuali domande, problemi o soluzioni che vorresti vedere qui. Creare un nuovo problema con i dettagli che si desidera visualizzare qui.
Contenuto correlato
Risorse correlate:
Soluzioni correlate:
- Report di Power BI per FinOps Toolkit
- Hub FinOps
- Cartelle di lavoro di FinOps
- Motore di ottimizzazione