VPN や ExpressRoute の帯域を特定のサーバーが食いつぶす時など、Azure VM であえてネットワークの帯域を制限したいという場合は、OS の QoS の機能を使いましょう。(逆に言えば、VPN Gateway や VNET 等の Azure 側で帯域制限をかける機能はありません)
- サービス (QoS) ポリシーの品質
https://docs.microsoft.com/ja-jp/windows-server/networking/technologies/qos/qos-policy-top
以下のように、[gpedit.msc] – [コンピューターの構成] – [Windows の設定] – [ポリシー ベースの QoS] – [新規ポリシーの作成] から設定できます。
なお、受信方向の帯域制限は極めて限定的にしか出来ませんので、基本的には上記の QoS を大量の通信を発生させている送信元で設定する必要があります。どうしてもインバウンドの通信を制限したいという場合は、TCP のウインドウ サイズを絞ることができるので、それを使いましょう。(TCP の輻輳制御とか、ウインドウの概念は当然ご存知かと思いますが、知らない人は 3 分間 NetWorking を見て勉強しましょう)
- QoS の設定を高度な: 受信 TCP トラフィック
https://docs.microsoft.com/ja-jp/windows-server/networking/technologies/qos/qos-policy-manage#advanced-qos-settings-inbound-tcp-traffic
※ 当然ですが、TCP のウインドウ サイズを制御するだけなので、以下のような制限が伴います。
- TCP 以外のプロトコルは制御できません (無差別に送られてくる UDP パケットを抑えることはできません)
- 帯域幅を明示的に制限できるわけではありません (受信用のバッファ サイズを 16 MB -> 1 MB -> 256 KB -> 64 KB と 4 段階で設定できるだけなので、xx Mbps といった制限はできません)
- 帯域制御をおこなうトラフィックを細かく設定はできません (すべての受信トラフィックに対して一律で帯域幅が制限されます
以下のように、 [gpedit.msc] – [コンピューターの構成] – [Windows の設定] – [ポリシー ベースの QoS] – [QoS の詳細設定] から設定できます。
ということで、受信側で制限するのは無理があるので、送信側でアウトバウンドの通信を制限しましょう。OS の設定なので、Azureに限らずオンプレでも AWS とかの他社クラウドでも使えると思います。
P.S. ネットワークの最適化に関しては、Tech Summit 2018 のセッションがおすすめです。
- [TS18] PR24 | Windows × ネットワーク! 更新プログラムの展開に使えるネットワークの最適化機能をマスターしよう
https://www.youtube.com/watch?v=GFHIhEXM6c8