네트워킹에 대한 FinOps 모범 사례

이 문서에서는 네트워킹 서비스에 대해 입증된 FinOps 사례를 간략하게 설명합니다. 비용 최적화, 효율성 향상 및 리소스 인사이트에 초점을 맞춥니다.


Azure Firewall

다음 섹션에서는 Azure Firewall에 대한 ARG(Azure Resource Graph) 쿼리를 제공합니다. 이러한 쿼리는 Azure 방화벽 리소스에 대한 인사이트를 얻고 적절한 설정으로 구성되었는지 확인하는 데 도움이 됩니다. Azure Advisor에서 사용 패턴을 분석하고 권장 사항을 표시하여 비용 효율성을 위해 Azure 방화벽 구성을 최적화할 수 있습니다.

쿼리: Azure 방화벽 및 방화벽 정책 분석

이 ARG 쿼리는 Azure 환경 내에서 Azure 방화벽 및 연결된 방화벽 정책을 분석합니다. 특히 프리미엄 SKU 계층을 사용하는 방화벽을 대상으로 하며 연결된 방화벽 정책의 구성이 프리미엄 기능을 활용하고 있는지 확인합니다.

범주

최적화

쿼리

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

쿼리: Azure Firewall 및 관련 서브넷 분석

이 ARG 쿼리는 Azure 환경 내에서 Azure 방화벽 및 연결된 서브넷을 분석합니다. 각 Azure Firewall 인스턴스와 연결된 서브넷에 대한 인사이트를 제공합니다. 허브 가상 네트워크 또는 Virtual WAN 보안 허브에 Azure 방화벽의 중앙 인스턴스를 사용하여 Azure 방화벽 사용을 최적화합니다. 그런 다음 동일한 지역의 동일한 허브에 연결된 여러 스포크 가상 네트워크에서 동일한 방화벽을 공유합니다.

범주

최적화

쿼리

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

애플리케이션 게이트웨이

Azure Application Gateway는 웹 애플리케이션에 대한 트래픽을 관리할 수 있도록 하는 웹 트래픽 부하 분산 장치입니다. Azure 확장 가능하고 고가용성 웹 프런트 엔드를 빌드할 수 있는 애플리케이션 수준 라우팅 및 부하 분산 서비스를 제공합니다.

관련 리소스:

유휴 애플리케이션 게이트웨이 제거

권장 사항: 불필요한 비용을 방지하기 위해 백 엔드 풀이 없는 애플리케이션 게이트웨이를 제거합니다.

유휴 애플리케이션 게이트웨이 정보

백 엔드 풀 대상이 없는 애플리케이션 게이트웨이는 트래픽을 적극적으로 라우팅하지 않으며 사용되지 않는 리소스를 나타낼 수 있습니다. 이러한 유휴 게이트웨이는 기능을 제공하지 않더라도 계속해서 비용이 발생합니다.

메모

FinOps 허브는 유휴 애플리케이션 게이트웨이를 자동으로 식별할 수 있습니다. 자세히알아보세요.

유휴 애플리케이션 게이트웨이 식별

다음 ARG 쿼리를 사용하여 빈 백 엔드 풀이 있는 애플리케이션 게이트웨이를 식별합니다.

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

클래식 애플리케이션 게이트웨이 업그레이드

권장 사항: Application Gateway v1 SKU를 v1 사용 중지 날짜 이전에 v2로 업그레이드하여 지원 및 향상된 기능에 액세스합니다.

클래식 애플리케이션 게이트웨이 정보

Application Gateway v1 SKU(표준 및 WAF)가 사용 중지됩니다. v2 SKU는 자동 크기 조정, 영역 중복성 및 향상된 성능을 제공합니다. v2로 마이그레이션하면 지속적인 지원이 보장되고 자동 크기 조정을 통해 비용이 절감되어 트래픽에 따라 인스턴스 수가 자동으로 조정됩니다.

메모

FinOps 허브는 v1 SKU를 사용하여 클래식 애플리케이션 게이트웨이를 자동으로 식별할 수 있습니다. 자세히알아보세요.

클래식 애플리케이션 게이트웨이 식별

다음 ARG 쿼리를 사용하여 v1 SKU를 사용하는 애플리케이션 게이트웨이를 식별합니다.

resources
| where type =~ 'microsoft.network/applicationgateways'
| where properties.sku.tier in ('Standard', 'WAF')
| project
    ResourceId = tolower(id),
    ResourceName = name,
    SKUTier = tostring(properties.sku.tier),
    Region = location,
    ResourceGroupName = resourceGroup,
    SubscriptionId = subscriptionId

DDoS Protection

Azure DDoS Protection은 가장 정교한 DDoS 위협에 대한 대책을 제공합니다. 가상 네트워크에 배포된 애플리케이션 및 리소스에 대한 향상된 DDoS 완화 기능을 제공합니다.

관련 리소스:

연결되지 않은 DDoS 보호 계획 제거

권장 사항: 불필요한 비용을 방지하기 위해 가상 네트워크와 연결되지 않은 DDoS 보호 계획을 제거합니다.

연결되지 않은 DDoS 보호 계획 정보

DDoS 보호 계획에는 고정 월별 요금이 발생합니다. 가상 네트워크와 연결되지 않은 플랜은 보호를 제공하지 않지만 여전히 비용을 생성합니다. 사용하지 않는 계획을 제거하면 불필요한 지출이 제거됩니다.

메모

FinOps 허브는 연결되지 않은 DDoS 보호 계획을 자동으로 식별할 수 있습니다. 자세히알아보세요.

연결되지 않은 DDoS 보호 계획 식별

다음 ARG 쿼리를 사용하여 가상 네트워크와 연결되지 않은 DDoS 보호 계획을 식별합니다.

resources
| where type =~ 'microsoft.network/ddosprotectionplans'
| where isnull(properties.virtualNetworks) or array_length(properties.virtualNetworks) == 0
| project
    ResourceId = tolower(id),
    ResourceName = name,
    Region = location,
    ResourceGroupName = resourceGroup,
    SubscriptionId = subscriptionId

익스프레스라우트

Azure ExpressRoute 프라이빗 연결을 통해 온-프레미스 네트워크를 Microsoft 클라우드로 확장할 수 있습니다. ExpressRoute 회로는 프로비전된 SKU 및 대역폭에 따라 월별 요금이 발생합니다.

관련 리소스:

프로비전되지 않은 ExpressRoute 회로 제거

권장 사항: 불필요한 요금을 방지하기 위해 프로비전되지 않은 상태인 ExpressRoute 회로를 삭제하거나 프로비전합니다.

프로비전되지 않은 ExpressRoute 회로 정보

"NotProvisioned" 상태로 유지되는 ExpressRoute 회로는 트래픽을 적극적으로 전달하지 않지만 월별 요금이 발생합니다. 이러한 회로는 만들어졌지만 서비스 공급자와 함께 완료되지 않았을 수 있습니다. 식별 및 제거는 불필요한 비용을 제거합니다.

메모

FinOps 허브는 프로비전되지 않은 ExpressRoute 회로를 자동으로 식별할 수 있습니다. 자세히알아보세요.

프로비전되지 않은 ExpressRoute 회로 식별

다음 ARG 쿼리를 사용하여 프로비전되지 않은 상태에서 ExpressRoute 회로를 식별합니다.

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

로드 밸런서

Azure Load Balancer OSI 모델의 계층 4에서 작동하고 정상 백 엔드 풀 인스턴스에 인바운드 트래픽을 분산합니다. 백 엔드 인스턴스의 상태를 모니터링하고 비정상 인스턴스에서 트래픽을 자동으로 다시 라우팅하여 고가용성을 제공합니다.

관련 리소스:

유휴 부하 분산 장치 제거

권장 사항: 불필요한 비용을 방지하기 위해 백 엔드 풀이 없는 부하 분산 장치를 제거합니다.

유휴 부하 분산 장치 정보

백 엔드 풀 대상이 없는 부하 분산 장치는 트래픽을 적극적으로 분산하지 않으며 사용되지 않는 리소스를 나타낼 수 있습니다. 표준 SKU 부하 분산 장치는 유휴 상태일 때에도 비용이 발생하므로 사용하지 않는 인스턴스를 제거하면 불필요한 지출을 줄일 수 있습니다.

메모

FinOps 허브는 유휴 부하 분산 장치를 자동으로 식별할 수 있습니다. 자세히알아보세요.

유휴 부하 분산 장치 식별

다음 ARG 쿼리를 사용하여 빈 백 엔드 풀이 있는 표준 SKU 부하 분산 장치를 식별합니다.

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

기본 부하 분산 장치 업그레이드

권장 사항: 성능, 보안 및 지속적인 지원을 위해 사용 중지된 기본 SKU를 사용하여 부하 분산 장치를 표준으로 업그레이드합니다.

기본 부하 분산 장치 정보

Azure Load Balancer 기본 SKU는 2025년 9월 30일에 사용 중지되었습니다. 기본 부하 분산 장치는 SLA를 제공하지 않으며 가용성 영역 지원이 부족하며 진단 기능이 제한됩니다. 표준 SKU로 업그레이드하면 안정성, 성능 및 보안 기능이 향상됩니다.

메모

FinOps 허브는 기본 부하 분산 장치를 자동으로 식별할 수 있습니다. 자세히알아보세요.

기본 부하 분산 장치 식별

다음 ARG 쿼리를 사용하여 기본 SKU를 사용하여 부하 분산 장치를 식별합니다.

resources
| where type =~ 'microsoft.network/loadbalancers'
| where sku.name =~ 'Basic'
| project
    ResourceId = tolower(id),
    ResourceName = name,
    SKUName = tostring(sku.name),
    Region = location,
    ResourceGroupName = resourceGroup,
    SubscriptionId = subscriptionId

NAT 게이트웨이

Azure NAT 게이트웨이 가상 네트워크에 대한 아웃바운드 인터넷 연결을 제공합니다. NAT 게이트웨이는 관리되는 고가용성 SNAT 서비스를 제공하여 아웃바운드 전용 인터넷 연결을 간소화합니다.

관련 리소스:

연결이 끊어진 NAT 게이트웨이 제거

권장 사항: 불필요한 요금을 방지하기 위해 서브넷과 연결되지 않은 NAT 게이트웨이를 제거합니다.

고아 NAT 게이트웨이 정보

NAT 게이트웨이에는 시간당 요금 및 데이터 처리 비용이 발생합니다. 서브넷과 연결되지 않은 게이트웨이는 아웃바운드 연결을 제공하지 않으며 낭비된 지출을 나타냅니다. 이러한 분리된 게이트웨이는 서브넷 또는 가상 네트워크를 다시 구성한 후에도 유지될 수 있습니다.

메모

FinOps 허브는 분리된 NAT 게이트웨이를 자동으로 식별할 수 있습니다. 자세히알아보세요.

연결되지 않은 NAT 게이트웨이 찾기

다음 ARG 쿼리를 사용하여 서브넷과 연결되지 않은 NAT 게이트웨이를 식별합니다.

resources
| where type == "microsoft.network/natgateways"
| where isnull(properties.subnets) or array_length(properties.subnets) == 0
| project
    id,
    GWName = name,
    SKUName = tostring(sku.name),
    SKUTier = tostring(sku.tier),
    Location = location,
    resourceGroup = tostring(strcat('/subscriptions/', subscriptionId, '/resourceGroups/', resourceGroup)),
    subnets = properties.subnets,
    subscriptionId

네트워크 인터페이스

Azure NIC(네트워크 인터페이스)를 사용하면 Azure VM이 인터넷, Azure 및 온-프레미스 리소스와 통신할 수 있습니다. NIC에는 직접적인 비용이 발생하지는 않지만, 고아 NIC는 정리 작업이 누락되었음을 나타낼 수 있으며 리소스 관리를 복잡하게 할 수 있습니다.

연결되지 않은 네트워크 인터페이스 제거

권장 사항: 가상 머신 또는 프라이빗 엔드포인트에 연결되지 않은 네트워크 인터페이스를 제거하여 환경을 깨끗하게 유지하고 관리 오버헤드를 줄입니다.

연결되지 않은 네트워크 인터페이스 정보

VM이 삭제되면 연결된 네트워크 인터페이스가 자동으로 정리되지 않을 수 있습니다. 이러한 고아 NIC는 시간이 지남에 따라 누적되어 환경을 어지럽히고, 공용 IP와 같은 연결된 리소스가 그대로 남아 있을 수 있습니다. NIC에 직접 요금이 부과되지는 않지만 정리하면 리소스 관리가 간소화되고 분리된 다른 리소스가 표시될 수 있습니다.

메모

FinOps 허브는 연결되지 않은 네트워크 인터페이스를 자동으로 식별할 수 있습니다. 자세히알아보세요.

연결되지 않은 네트워크 인터페이스 식별

다음 ARG 쿼리를 사용하여 VM 또는 프라이빗 엔드포인트에 연결되지 않은 네트워크 인터페이스를 식별합니다.

resources
| where type =~ 'microsoft.network/networkinterfaces'
| where isnull(properties.virtualMachine) and isnull(properties.privateEndpoint)
| project
    ResourceId = tolower(id),
    ResourceName = name,
    PrivateIP = tostring(properties.ipConfigurations[0].properties.privateIPAddress),
    Region = location,
    ResourceGroupName = resourceGroup,
    SubscriptionId = subscriptionId

네트워크 보안 그룹

NSG(네트워크 보안 그룹)는 가상 네트워크의 Azure 리소스에 대한 네트워크 트래픽을 필터링합니다. NSG에는 인바운드 및 아웃바운드 네트워크 트래픽을 허용하거나 거부하는 보안 규칙이 포함되어 있습니다.

빈 네트워크 보안 그룹 제거

권장 사항: 환경을 간소화하고 관리 오버헤드를 줄이기 위해 네트워크 인터페이스 또는 서브넷과 연결되지 않은 네트워크 보안 그룹을 제거합니다.

빈 네트워크 보안 그룹에 대하여

네트워크 인터페이스 또는 서브넷과 연결되지 않은 NSG는 트래픽을 적극적으로 필터링하지 않습니다. 이러한 사용하지 않는 리소스는 인프라를 변경하는 동안 누적되어 복잡해질 수 있으며 보안 감사가 복잡해질 수 있습니다. 이를 제거하면 네트워크 관리가 간소화되고 깨끗한 환경을 유지하는 데 도움이 됩니다.

메모

FinOps 허브는 빈 네트워크 보안 그룹을 자동으로 식별할 수 있습니다. 자세히알아보세요.

빈 네트워크 보안 그룹 식별

다음 ARG 쿼리를 사용하여 네트워크 인터페이스 또는 서브넷과 연결되지 않은 NSG를 식별합니다.

resources
| where type =~ 'microsoft.network/networksecuritygroups'
| where isnull(properties.networkInterfaces) and isnull(properties.subnets)
| project
    ResourceId = tolower(id),
    ResourceName = name,
    Region = location,
    ResourceGroupName = resourceGroup,
    SubscriptionId = subscriptionId

프라이빗 DNS

다음 섹션에서는 프라이빗 DNS 대한 ARG 쿼리를 제공합니다. 프라이빗 DNS 리소스에 대한 인사이트를 얻고 적절한 설정으로 구성되었는지 확인하는 데 도움이 됩니다.

쿼리: 프라이빗 DNS

이 ARG 쿼리는 Azure 환경 내의 프라이빗 DNS 영역을 분석하여 Virtual Network 링크가 없는 영역을 식별합니다.

범주

최적화

쿼리

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

공용 IP 주소

Azure 공용 IP 주소를 사용하면 Azure 리소스가 인터넷 및 기타 공용 Azure 서비스와 통신할 수 있습니다. 공용 IP 주소는 가상 머신, 부하 분산 장치 및 애플리케이션 게이트웨이와 같은 리소스에 할당됩니다. 고정 공용 IP 주소는 리소스와 연결되어 있는지 여부에 관계없이 비용이 발생합니다.

관련 리소스:

기본 공용 IP 업그레이드

권장 사항: 더 나은 보안 및 지속적인 지원을 위해 사용 중지된 기본 SKU를 사용하여 공용 IP 주소를 표준으로 업그레이드합니다.

기본 공용 IP 정보

Azure 공용 IP 주소에 대한 기본 SKU는 2025년 9월 30일에 사용 중지되었습니다. 기본 공용 IP는 영역 중복성이 부족하고 라우팅 기본 설정을 지원하지 않으며 기본적으로 인바운드 트래픽에 열려 있습니다. 표준 SKU로 업그레이드하면 영역 중복성, 기본값으로 보호되는 동작(인바운드 트래픽에 닫힘) 및 라우팅 기본 설정 지원이 제공됩니다.

메모

FinOps 허브는 기본 공용 IP를 자동으로 식별할 수 있습니다. 자세히알아보세요.

기본 공용 IP 식별

다음 ARG 쿼리를 사용하여 기본 SKU를 사용하여 공용 IP 주소를 식별합니다.

resources
| where type =~ 'microsoft.network/publicipaddresses'
| where sku.name =~ 'Basic'
| project
    ResourceId = tolower(id),
    ResourceName = name,
    SKUName = tostring(sku.name),
    AllocationMethod = tostring(properties.publicIPAllocationMethod),
    Region = location,
    ResourceGroupName = resourceGroup,
    SubscriptionId = subscriptionId

유휴 공용 IP 주소 제거

권장 사항: 불필요한 네트워킹 비용을 방지하기 위해 연결되지 않은 고정 공용 IP 주소를 제거합니다.

유휴 공용 IP 주소 정보

고정 공용 IP 주소는 리소스와 연결되어 있는지 여부에 관계없이 비용이 발생합니다. 연결되지 않은 공용 IP는 리소스가 삭제되지만 연결된 공용 IP가 남아 있으므로 시간이 지남에 따라 누적될 수 있습니다. 이러한 고아 리소스를 식별하고 제거하면 불필요한 비용을 줄일 수 있습니다.

메모

FinOps 허브는 연결되지 않은 공용 IP 주소를 자동으로 식별할 수 있습니다. 자세히알아보세요.

유휴 공용 IP 주소 식별

다음 ARG 쿼리를 사용하여 연결되지 않은 네트워크 인터페이스와 연결된 주소를 포함하여 연결되지 않은 고정 공용 IP 주소를 식별합니다.

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
)

쿼리: 공용 IP 주소 라우팅 방법 식별

이 ARG 쿼리는 공용 IP 주소를 분석하고 라우팅 방법, 할당 방법 및 SKU를 식별합니다. 또한 IP 구성과 연결된 공용 IP 주소의 다른 세부 정보도 분석합니다.

범주

최적화

쿼리

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

쿼리: 공용 IP 주소의 DDoS 보호 정책 확인

15개 미만의 공용 IP 리소스를 보호해야 하는 경우 IP 보호 계층이 비용 효율적인 옵션입니다. 그러나 보호할 공용 IP 리소스가 15개 이상 있는 경우 네트워크 보호 계층이 더 비용 효율적입니다.

범주

최적화

쿼리

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

가상 네트워크 게이트웨이

Azure Virtual Network 게이트웨이는 Azure 가상 네트워크와 온-프레미스 인프라 간에 크로스-프레미스 연결을 제공합니다. 게이트웨이는 SKU에 따라 시간당 요금이 부과됩니다.

관련 리소스:

유휴 VNet 게이트웨이 제거

권장 사항: 불필요한 요금을 방지하기 위해 활성 연결이 없는 가상 네트워크 게이트웨이를 제거합니다.

유휴 VNet 게이트웨이 정보

가상 네트워크 게이트웨이는 적극적으로 사용되는지 여부에 관계없이 SKU 계층에 따라 시간당 비용이 발생합니다. 연결이 없는 게이트웨이는 프레미스 간 연결을 제공하지 않으며 낭비된 지출을 나타냅니다. 이러한 유휴 게이트웨이는 마이그레이션 후 또는 연결 요구 사항이 변경된 후에도 유지될 수 있습니다.

메모

FinOps 허브는 유휴 VNet 게이트웨이를 자동으로 식별할 수 있습니다. 자세히알아보세요.

유휴 VNet 게이트웨이 식별

다음 ARG 쿼리를 사용하여 활성 연결 없이 가상 네트워크 게이트웨이를 식별합니다.

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

피드백 제공

빠른 검토를 통해 어떻게 하고 있는지 알려주세요. 이러한 검토를 사용하여 FinOps 도구 및 리소스를 개선하고 확장합니다.

특정 항목을 찾고 있는 경우 기존 항목에 투표하거나 새 아이디어를 만듭니다. 다른 사용자와 아이디어를 공유하여 더 많은 표를 얻습니다. 우리는 가장 많은 표를 가진 아이디어에 초점을 맞추고 있습니다.


관련 리소스:

관련 솔루션: