Aracılığıyla paylaş


Ağ için en iyi FinOps yöntemleri

Bu makalede ağ hizmetleri için kanıtlanmış FinOps uygulamaları özetlenmektedir. Maliyet iyileştirme, verimlilik iyileştirmeleri ve kaynak içgörülerine odaklanır.


Azure Güvenlik Duvarı

Aşağıdaki bölümlerde Azure Güvenlik Duvarı için Azure Kaynak Grafı (ARG) sorguları sağlanır. Bu sorgular, Azure güvenlik duvarı kaynaklarınız hakkında içgörüler edinmenize ve bunların uygun ayarlarla yapılandırıldığından emin olmanıza yardımcı olur. Azure Danışmanı'nın kullanım örüntülerini analiz ederek ve önerileri gün yüzüne çıkararak, Azure güvenlik duvarı yapılandırmalarınızı maliyet verimliliği için optimize edebilirsiniz.

Sorgu: Azure güvenlik duvarı ve güvenlik duvarı ilkeleri analizi

Bu ARG sorgusu, Azure ortamınızda Azure güvenlik duvarlarını ve bunların ilişkili güvenlik duvarı ilkelerini analiz eder. Özel olarak premium SKU katmanına sahip güvenlik duvarlarını hedefler ve ilişkili güvenlik duvarı ilkelerindeki yapılandırmaların premium özelliklerden yararlandığını doğrular.

Kategori

İyileştirme

Sorgu

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

Sorgu: Azure Güvenlik Duvarı ve ilişkili alt ağlar analizi

Bu ARG sorgusu, Azure ortamınızdaki Azure güvenlik duvarlarını ve bunların ilişkili alt ağlarını analiz eder. Her Azure güvenlik duvarı örneğiyle hangi alt ağların ilişkilendirildiğine ilişkin içgörüler sağlar. Azure Güvenlik Duvarı'nın kullanımını optimize etmek için, bağlantı sanal ağı veya Sanal WAN güvenli merkezinde merkezi bir Azure Güvenlik Duvarı örneğine sahip olun. Ardından aynı güvenlik duvarını aynı bölgeden aynı hub'a bağlı birçok uç sanal ağında paylaşın.

Kategori

İyileştirme

Sorgu

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

Aşağıdaki bölüm, Azure Uygulama Gateway'ı için ARG sorguları sağlar. Azure Uygulama Gateway’i kaynaklarınız hakkında bilgi edinmenize ve her zaman uygun ayarlarla yapılandırıldıklarından emin olmanıza yardımcı olur.

Sorgu: Atıl uygulama ağ geçitleri

Bu ARG sorgusu, Azure ortamınızdaki uygulama ağ geçitlerini ve bunların ilişkili arka uç havuzlarını analiz eder. Hangi uygulama ağ geçitlerinin boş arka uç havuzlarına sahip olduğu hakkında içgörüler sağlar ve bunların boşta ve gereksiz olabileceğini gösterebilir.

Kategori

İyileştirme

Sorgu

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

Aşağıdaki bölümde ExpressRoute için bir ARG sorgusu sağlanmaktadır. ExpressRoute bağlantı hatlarınızla ilgili içgörüler elde etmenize ve uygun ayarlarla yapılandırıldığından emin olmanıza yardımcı olur.

Sorgu: Boşta ExpressRoute devreleri

Bu ARG sorgusu, tamamlanmış bir bağlantı hattı olmayan bağlantı hatlarını belirlemek için Azure ortamınızdaki ExpressRoute bağlantı hatlarını analiz eder.

Kategori

İyileştirme

Sorgu

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

Yük Dengeleyici

Aşağıdaki bölümde Azure Load Balancer için bir ARG sorgusu sağlanmaktadır. Azure yük dengeleyici kaynaklarınızla ilgili içgörüler elde etmenize ve bunların uygun ayarlarla yapılandırıldığından emin olmanıza yardımcı olur.

Sorgu: Boşta kalan yük dengeleyiciler

Bu ARG sorgusu, Azure ortamınızdaki Azure yük dengeleyicileri ve ilişkili arka uç havuzlarını analiz eder. Yük dengeleyicilerin arka uç havuzlarının boş olduğuna dair içgörüler sağlar, bu da onların atıl ve belki de gereksiz olabileceklerini gösterir.

Kategori

İyileştirme

Sorgu

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

Özel DNS

Aşağıdaki bölümde Özel DNS için bir ARG sorgusu sağlanmaktadır. Özel DNS kaynaklarınızla ilgili içgörüler elde etmenize ve uygun ayarlarla yapılandırıldığından emin olmanıza yardımcı olur.

Sorgu: Özel DNS

Bu ARG sorgusu, Sanal Ağ Bağlantıları olmadan bunları tanımlamak için Azure ortamınızdaki Özel DNS bölgeleri analiz eder.

Kategori

İyileştirme

Sorgu

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

Genel IP adresi

Aşağıdaki bölümlerde genel IP adresleri için ARG sorguları sağlanır. Genel IP adresi kaynaklarınız hakkında içgörüler edinmenize ve uygun ayarlarla yapılandırıldığından emin olmanıza yardımcı olur.

Sorgu: Boşta genel IP adresleri

Bu ARG sorgusu Azure genel IP adreslerini analiz eder. Hangi genel IP'lerin boşta ve potansiyel olarak gereksiz olduğu hakkında içgörüler sağlar.

Kategori

İyileştirme

Sorgu

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
)

Sorgu: Genel IP adreslerini tanımlama yönlendirme yöntemi

Bu ARG sorgusu genel IP adreslerini analiz eder ve yönlendirme yöntemini, ayırma yöntemini ve SKU'yu tanımlar. Ayrıca, bir IP yapılandırmasıyla ilişkili genel IP adreslerinin diğer ayrıntılarını analiz eder.

Kategori

İyileştirme

Sorgu

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

Sorgu: Genel IP adreslerinin DDoS koruma ilkesini denetleyin

15'ten az genel IP kaynağını korumanız gerekiyorsa, IP koruma katmanı daha uygun maliyetli bir seçenektir. Ancak, korumanız gereken 15'ten fazla genel IP kaynağınız varsa ağ koruma katmanı daha uygun maliyetli hale gelir.

Kategori

İyileştirme

Sorgu

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

Sanal Ağ Geçidi

Aşağıdaki bölümlerde Sanal Ağ Ağ Geçitleri için ARG sorguları sağlanmaktadır. Sanal Ağ Ağ Geçidi kaynaklarınız hakkında içgörüler edinmenize ve uygun ayarlarla yapılandırıldığından emin olmanıza yardımcı olur.

Sorgu: Boşta Sanal Ağ Ağ Geçidi olup olmadığını denetleyin

Bu ARG sorgusu, boşta olan ağ geçitlerini belirlemek için Azure ortamınızdaki Sanal Ağ Ağ Geçitlerini analiz eder.

Kategori

İyileştirme

Sorgu

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

Sorgu: Boşta NAT ağ geçidi olup olmadığını denetleyin

Bu ARG sorgusu, boşta kalanları belirlemek için Azure ortamınızdaki NAT ağ geçitlerini analiz eder.

Kategori

İyileştirme

Sorgu

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

Görüş bildirin

Hızlı bir incelemeyle nasıl olduğumuzu bize bildirin. Bu incelemeleri FinOps araçlarını ve kaynaklarını geliştirmek ve genişletmek için kullanırız.

Belirli bir şey arıyorsanız mevcut bir fikir için oy verin veya yeni bir fikir oluşturun. Daha fazla oy almak için başkalarıyla fikir paylaşın. En çok oyu alan fikirlere odaklanıyoruz.


İlgili kaynaklar:

İlgili çözümler: