Udostępnij przez


Najlepsze rozwiązania dotyczące sieci w usłudze FinOps

W tym artykule opisano sprawdzone rozwiązania FinOps dotyczące usług sieciowych. Koncentrują się na optymalizacji kosztów, ulepszeniach wydajności i szczegółowych informacji o zasobach.


Azure Firewall

W poniższych sekcjach przedstawiono zapytania usługi Azure Resource Graph (ARG) dla usługi Azure Firewall. Te zapytania ułatwiają uzyskanie wglądu w zasoby usługi Azure Firewall i upewnienie się, że zostały skonfigurowane przy użyciu odpowiednich ustawień. Analizując wzorce użycia i rekomendacje od usługi Azure Advisor, możesz zoptymalizować konfiguracje zapory platformy Azure pod kątem efektywności kosztowej.

Zapytanie: Analiza zapory platformy Azure i zasad zapory

Zapytanie ARG analizuje zapory Azure i przypisane do nich zasady zapory w twoim środowisku Azure. Dotyczy to w szczególności zapór ogniowych z poziomem Premium SKU i sprawdza, czy konfiguracje w skojarzonych politykach zapory korzystają z funkcji dostępnych w warstwie Premium.

Kategoria

Optymalizacja

Zapytanie

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

Zapytanie: Analiza usługi Azure Firewall i skojarzonych podsieci

To zapytanie usługi ARG analizuje zapory platformy Azure i skojarzone z nimi podsieci w środowisku platformy Azure. Daje wgląd w to, które podsieci są skojarzone z każdym wystąpieniem zapory Azure. Zoptymalizuj użycie usługi Azure Firewall, używając centralnej instancji usługi Azure Firewall w sieci wirtualnej koncentratora lub centrum zabezpieczeń Virtual WAN. Następnie współużytkuj tę samą zaporę w wielu sieciach wirtualnych typu szprychy, które są połączone z tym samym koncentratorem w tej samej lokalizacji.

Kategoria

Optymalizacja

Zapytanie

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

Poniższa sekcja zawiera zapytania ARG dotyczące bramy aplikacyjnej systemu Azure. Pomaga uzyskać wgląd w zasoby Azure Application Gateway i upewnić się, że są odpowiednio skonfigurowane.

Zapytanie: bezczynne bramy aplikacji

To zapytanie usługi ARG analizuje bramy aplikacji i skojarzone z nimi pule zaplecza w środowisku platformy Azure. Zapewnia szczegółowe informacje o tym, które bramy aplikacji mają puste zaplecza, co wskazuje, że mogą być bezczynne i potencjalnie niepotrzebne.

Kategoria

Optymalizacja

Zapytanie

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

Poniższa sekcja zawiera zapytanie usługi ARG dla usługi ExpressRoute. Pomaga to uzyskać wgląd w obwody usługi ExpressRoute i upewnić się, że są one skonfigurowane przy użyciu odpowiednich ustawień.

Zapytanie: nieaktywne obwody ExpressRoute

To zapytanie ARG analizuje obwody usługi ExpressRoute w środowisku platformy Azure, aby zidentyfikować te, które nie mają ukończonego obwodu.

Kategoria

Optymalizacja

Zapytanie

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

Równoważnik Obciążenia (Load Balancer)

Poniższa sekcja zawiera zapytanie usługi ARG dla usługi Azure Load Balancer. Pomaga to uzyskać wgląd w zasoby modułu równoważenia obciążenia platformy Azure i upewnić się, że są one skonfigurowane przy użyciu odpowiednich ustawień.

Zapytanie: bezczynne moduły równoważenia obciążenia

To zapytanie usługi ARG analizuje moduły równoważenia obciążenia platformy Azure i skojarzone z nimi pule zaplecza w środowisku platformy Azure. Zapewnia wgląd, które moduły równoważenia obciążenia mają puste tylne pule, wskazując, że mogą być bezczynne i potencjalnie niepotrzebne.

Kategoria

Optymalizacja

Zapytanie

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

Prywatna strefa DNS

Poniższa sekcja zawiera zapytanie ARG dla prywatnego DNS. Ułatwia to uzyskanie wglądu w zasoby prywatnego DNS i upewnienie się, że są one skonfigurowane przy użyciu odpowiednich ustawień.

Zapytanie: Prywatna strefa DNS

To zapytanie usługi ARG analizuje prywatne strefy DNS w środowisku platformy Azure, aby zidentyfikować takie bez linków sieci wirtualnych.

Kategoria

Optymalizacja

Zapytanie

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

Publiczny adres IP

W poniższych sekcjach przedstawiono zapytania usługi ARG dotyczące publicznych adresów IP. Ułatwiają one uzyskanie wglądu w zasoby publicznego adresu IP i upewnienie się, że zostały skonfigurowane przy użyciu odpowiednich ustawień.

Zapytanie: bezczynne publiczne adresy IP

To zapytanie usługi ARG analizuje publiczne adresy IP platformy Azure. Zapewnia wgląd w to, które publiczne adresy IP są bezczynne i potencjalnie niepotrzebne.

Kategoria

Optymalizacja

Zapytanie

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
)

Zapytanie: Identyfikowanie metody routingu publicznych adresów IP

To zapytanie usługi ARG analizuje publiczne adresy IP i identyfikuje metodę routingu, metodę alokacji i jednostkę SKU. Analizuje również inne szczegóły publicznych adresów IP skojarzonych z konfiguracją adresu IP.

Kategoria

Optymalizacja

Zapytanie

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

Zapytanie: Sprawdzanie zasad ochrony przed atakami DDoS publicznych adresów IP

Jeśli musisz chronić mniej niż 15 zasobów publicznych adresów IP, warstwa ochrony adresów IP jest bardziej ekonomiczną opcją. Jeśli jednak masz więcej niż 15 zasobów publicznych adresów IP do ochrony, warstwa ochrony sieci stanie się bardziej opłacalna.

Kategoria

Optymalizacja

Zapytanie

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")

Brama sieci wirtualnej

W poniższych sekcjach przedstawiono zapytania usługi ARG dotyczące bram sieci wirtualnej. Ułatwiają one uzyskanie wglądu w zasoby bramy sieci wirtualnej i upewnienie się, że są one skonfigurowane przy użyciu odpowiednich ustawień.

Zapytanie: Sprawdzanie bezczynności bramy sieci wirtualnej

Zapytanie ARG analizuje bramy sieciowe wirtualne w środowisku Azure, aby zidentyfikować te, które są nieaktywne.

Kategoria

Optymalizacja

Zapytanie

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

Zapytanie: Sprawdź bezczynność bramy NAT

To zapytanie usługi ARG analizuje bramy NAP w środowisku platformy Azure, aby zidentyfikować te, które są bezczynne.

Kategoria

Optymalizacja

Zapytanie

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

Prześlij opinię

Daj nam znać, jak nam idzie, zostawiając krótką opinię. Te recenzje służą do ulepszania i rozszerzania narzędzi i zasobów FinOps.

Jeśli szukasz czegoś konkretnego, zagłosuj na istniejący lub utwórz nowy pomysł. Podziel się pomysłami z innymi osobami, aby uzyskać więcej głosów. Skupiamy się na pomysłach z największą większością głosów.


Powiązane zasoby:

Powiązane rozwiązania: