現在、ユーザーは仮想ネットワーク内に 1,000 個のプライベート エンドポイントのみをデプロイするように 制限 されています。 ユーザーは、 ハブ アンド スポーク モデルまたは メッシュ ネットワークを実装することで、この制限を回避するのが一般的です。 これにより、ピアリングされた仮想ネットワーク全体に追加のプライベート エンドポイントをデプロイして、仮想ネットワークごとの制限を一時的に超える可能性があります。 ただし、この方法でスケーリングすると、ユーザーは警告なしに強制される制限の危険にさらされます。 ユーザーがピアリングされた仮想ネットワーク全体で 4,000 個のプライベート エンドポイントを超えると、接続の正常性が低下する可能性があります。
これらの現在の制限を超えたいユーザーには、 High Scale プライベート エンドポイントにアップグレードすることをお勧めします。 この機能により、単一の仮想ネットワークでは標準の制限が 5,000 個のプライベート エンドポイントに、ピアリングされたネットワーク全体で 20,000 個のプライベート エンドポイントに制限されます。 この記事では、この機能をオプトインする方法について詳しく説明し、有効化前に追加の考慮事項を提供します。
前提条件
- サブスクリプションを持つアクティブな Azure アカウント。 無料でアカウントを作成できます。
- ハブ アンド スポークまたはメッシュ ネットワーク トポロジの理解。
- プライベート エンドポイントが構成された仮想ネットワークについては、「 プライベート エンドポイントの作成」を参照してください。
- すべてのプライベート エンドポイント サブネットに対して [有効] または [RouteTableEnabled] に設定されているプライベート エンドポイント ネットワーク ポリシーについては、「プライベート エンドポイントのネットワーク ポリシーを管理する」を参照してください。
アップグレードが必要かどうかを確認する
1 つの仮想ネットワークに 1,000 を超えるプライベート エンドポイントが必要な場合、または最大プライベート エンドポイント制限エラーが発生した場合は、 High Scale プライベート エンドポイントへのアップグレードを検討してください。
ハブ アンド スポークまたはメッシュ トポロジを使用しているお客様の場合は、クライアント仮想マシンを含む中央仮想ネットワークに接続されているプライベート エンドポイントの数を決定します。 提供された ARG クエリを使用して、このプロセスを容易にします。
Resources
| where subscriptionId == "\<yourSubscriptionIDHere>"
| where type =~ 'Microsoft.Network/virtualnetworks'
| project id, remoteVNetIds = properties.virtualNetworkPeerings
| mv-expand remoteVNetIds
| project id, remoteVNetId = tostring(remoteVNetIds.properties.remoteVirtualNetwork.id)
| where isnotempty(remoteVNetId)
| join kind=leftouter (
Resources
| where type =~ 'Microsoft.Network/privateEndpoints'
| project id, subnetId = tostring(properties.subnet.id)
| extend VNetId = split(subnetId ,'/subnets/')[0]
| project id, VNetId = tostring(VNetId)
| summarize Count = count() by VNetId)
on $left.remoteVNetId == $right.VNetId
| extend Count = iff(isempty(Count), 0, Count)
| summarize TotalRemotePE = sum(Count) by ['id']
| join kind=leftouter (
Resources
| where type =~ 'Microsoft.Network/privateEndpoints'
| project id, subnetId = tostring(properties.subnet.id)
| extend VNetId = split(subnetId ,'/subnets/')[0]
| project id, VNetId = tostring(VNetId)
| summarize Count = count() by VNetId)
on $left.id == $right.VNetId
| extend TotalPE = iff(isempty(Count), 0, Count) + TotalRemotePE
| project VNetId = id, TotalPE
| order by TotalPE desc
| order by ['VNetId'] asc
高スケールのプライベート エンドポイントを有効にする
この機能を有効にするには、 プライベート エンドポイント仮想ネットワーク ポリシーを構成します。 この機能に含めるすべての仮想ネットワークと、ピアリング シナリオのすべての接続されたコンピューティング仮想ネットワークに対して、このプロパティを有効にすることをお勧めします。
警告
この機能をアップグレードまたはダウングレードすると、プラットフォームの更新がトリガーされ、1 回限り接続がリセットされます。 メンテナンス期間中にこのアクションを実行することをお勧めします。
$vnetName = "myVirtualNetwork"
$resourceGroupName = "myResourceGroup"
$vnet = Get-AzVirtualNetwork -ResourceGroupName $resourceGroupName -Name $vnetName
$vnet.PrivateEndpointVNetPolicies = "Basic"
$vnet | Set-AzVirtualNetwork
構成を検証する
構成を検証するには、必要なすべてのプロパティが正しく設定されていることを確認します。 次の項目を確認してください。
ポータルの上部にある検索ボックスに、「仮想ネットワーク」と入力します。 [仮想ネットワーク] を選択します。
[myVNet] を選択します。
myVNET の設定で、[サブネット] を選択します。
サブネットを選択します。
[ サブネットの編集 ] ウィンドウの [ プライベート エンドポイントのネットワーク ポリシー] で、[ ルート テーブル] が選択されていることを確認します。
仮想ネットワークの概要ページで、右上隅にある JSON ビュー を選択します。
[ リソース JSON ] ウィンドウで、最新の API バージョンを選択します。
仮想ネットワーク プロパティ privateEndpointVNetPolicies が Basic に設定されていることを確認します。
それぞれの仮想ネットワークに 1,000 を超えるプライベート エンドポイントをデプロイできることを確認します。
その他の考慮事項
この機能をアップグレードまたはダウングレードすると、プラットフォームの更新がトリガーされ、実行時間の長いプライベート エンドポイント接続がすべて 1 回限りリセットされます。 メンテナンス期間中は、高スケールのプライベート エンドポイントを構成することをお勧めします。
この機能からダウングレードするには、仮想ネットワーク内のプライベート エンドポイントの合計数を、機能が有効になる前の制限に減らします。
監視バイト数の入力/出力は、すべての大規模なプライベート エンドポイントで使用できなくなります。
オンプレミスのプライベート エンドポイント トラフィックは、ゲートウェイ仮想ネットワークの集計として課金されるようになりました。 以前は、課金コスト センターのプライベート エンドポイント リソースに表示されていました。 この変更は、請求額の合計には影響しません。
制限事項
| 制限 | 説明 |
|---|---|
| HSPE 対応のピアリングされた VNet からの Baremetal サブネットへのアクセスはサポートされていません | Azure baremetal サブネット宛ての接続が機能しない |
| 現在、すべてのパブリック リージョンで利用できる機能 | 現時点では、Mooncake リージョンと Azure Gov リージョンはサポートされていません |
次のステップ
この記事では、高スケールのプライベート エンドポイントを有効にする方法と、それに伴う考慮事項について説明しました。 Azure Private Link の詳細については、次の記事を参照してください。