ネットワークに関する FinOps のベスト プラクティス
この記事では、ネットワーク サービスの実績のある FinOps プラクティスについて説明します。 コストの最適化、効率の向上、リソースの分析情報に重点を置きます。
Azure Firewall
次のセクションでは、Azure Firewall の Azure Resource Graph (ARG) クエリについて説明します。 これらのクエリは、Azure ファイアウォール リソースに関する分析情報を得て、適切な設定で構成されていることを確認するのに役立ちます。 使用パターンを分析し、Azure Advisor からの推奨事項を確認することで、コスト効率のために Azure ファイアウォール構成を最適化できます。
クエリ: Azure ファイアウォールとファイアウォール ポリシーの分析
この ARG クエリは、Azure 環境内の Azure ファイアウォールとそれに関連付けられているファイアウォール ポリシーを分析します。 具体的には、Premium SKU レベルのファイアウォールを対象とし、関連付けられているファイアウォール ポリシーの構成で Premium 機能が使用されていることを確認します。
カテゴリ
最適化
クエリ
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 ファイアウォール インスタンスに関連付けられているサブネットに関する分析情報が提供されます。 ハブ仮想ネットワークまたは 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
Application Gateway
次のセクションでは、Azure アプリlication Gateway の ARG クエリについて説明します。 これは、Azure アプリlication Gateway リソースに関する分析情報を得て、適切な設定で構成されていることを確認するのに役立ちます。
クエリ: アイドル状態のアプリケーション ゲートウェイ
この ARG クエリは、Azure 環境内のアプリケーション ゲートウェイとそれに関連付けられているバックエンド プールを分析します。 空のバックエンド プールを持つアプリケーション ゲートウェイに関する分析情報が提供され、アイドル状態で不要になる可能性があることを示します。
カテゴリ
最適化
クエリ
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
次のセクションでは、ExpressRoute の ARG クエリについて説明します。 これは、ExpressRoute 回線に関する分析情報を得て、適切な設定で構成されていることを確認するのに役立ちます。
クエリ: アイドル状態の ExpressRoute 回線
この ARG クエリは、Azure 環境内の 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
Load Balancer
次のセクションでは、Azure Load Balancer の ARG クエリを示します。 これは、Azure ロード バランサー リソースに関する分析情報を得て、適切な設定で構成されていることを確認するのに役立ちます。
クエリ: アイドル状態のロード バランサー
この ARG クエリは、Azure 環境内の Azure ロード バランサーとそれに関連付けられているバックエンド プールを分析します。 空のバックエンド プールを持つロード バランサーに関する分析情報が提供され、アイドル状態で不要になる可能性があることを示します。
カテゴリ
最適化
クエリ
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
次のセクションでは、プライベート DNSの ARG クエリを示します。 これは、プライベート DNS リソースに関する分析情報を得て、適切な設定で構成されていることを確認するのに役立ちます。
クエリ: プライベート DNS
この ARG クエリは、Azure 環境内のプライベート DNSゾーンを分析して、仮想ネットワーク リンクを持たないゾーンを識別します。
カテゴリ
最適化
クエリ
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 アドレス
次のセクションでは、パブリック IP アドレスの ARG クエリについて説明します。 パブリック IP アドレス リソースに関する分析情報を得て、適切な設定で構成されていることを確認するのに役立ちます。
クエリ: アイドル状態のパブリック IP アドレス
この ARG クエリは、Azure パブリック IP アドレスを分析します。 どのパブリック 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")
仮想ネットワーク ゲートウェイ
以降のセクションでは、仮想ネットワーク ゲートウェイの ARG クエリについて説明します。 これらは、Virtual Network Gateway リソースに関する分析情報を得て、適切な設定で構成されていることを確認するのに役立ちます。
クエリ: アイドル状態の仮想ネットワーク ゲートウェイを確認する
この ARG クエリは、Azure 環境内の仮想ネットワーク ゲートウェイを分析して、アイドル状態のゲートウェイを識別します。
カテゴリ
最適化
クエリ
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
クエリ: アイドル状態の NAT ゲートウェイを確認する
この ARG クエリは、Azure 環境内の NAT ゲートウェイを分析して、アイドル状態のゲートウェイを識別します。
カテゴリ
最適化
クエリ
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
その他をお探しですか?
何か見逃したの? 何か追加された内容を確認しますか? ここで取り上げたい質問、問題、または解決策についてお聞きください。 ここに含める詳細を含む新しい問題を作成 します。
関連するコンテンツ
関連情報を次に示します。
関連するソリューション: