Windowsで帯域制限をかける方法

# はじめに

大きなデータを送受信する場合、長時間にわたってネットワーク（帯域）を占有してしまうため、同じネットワークを利用する他の利用者に迷惑をかけてしまいます。
この記事ではWindows環境において帯域制限をかけて送受信する方法の内、手軽な方法についてまとめてみました。

# 実現したいこと

* 社内LANからAWS（S3）に複数のファイルをアップしたい。
* ファイルサイズは合計で30GB以上になるので、他のネットワーク利用者に迷惑をかけないように帯域制限をかけたい。

# 1. Windowsの標準機能で帯域制限をかける方法

Windows標準機能の`QoSポリシー`というものを利用すると、比較的手軽に帯域制限をかけることができます。
ただし、帯域制限をかけられる通信は「アウトバウンド（送信）のみ」となる点に注意が必要です。

## 1-1. ローカルグループポリシーエディターのインストール

* Windows10 Proを利用されている場合は、既にインストール済みなのでこの手順はスキップして下さい。
* Windows10 Homeを利用されている場合は、[こちらのページ](https://laboradian.com/enable-gpedit-on-win10home/)などを参照してローカルグループポリシーエディターをインストールします。

## 1-2. ローカルグループポリシーエディターの起動

* 画面左下のタスクバー上の検索欄に「gpedit.msc」と入力して、ローカルグループポリシーエディターを起動します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312166/e6d5568b-4184-672d-279b-031e7af614e0.png)

## 1-3. 新規ポリシーの作成

* ［コンピューターの構成］>［Windowsの設定］>［ポリシーベースのQoS］と進みます。
* ［ポリシーベースのQoS］を右クリックして表示されたメニューから［新規ポリシーの作成］を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312166/882b2f61-012a-a9db-a406-c0556a3f1f13.png)

* `ポリシーベースのQoS`画面で、［出力方向のスロットル率を指定する］にチェックを入れます。
* チェックを入れるとすぐ下の帯域の制限値が入力可能になるので、所望の値を設定して［次へ］をクリックします。
* この時、制限値は「**Kbps**」や「**Mbps**」ではなく、「**KBps**」や「**MBps**」である点に注意してください。
 * 単位が「bit per second」ではなく、「byte per second」ということです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312166/4725e906-de89-06ab-29da-c7aa1ae94395.png)

* 次の画面でポリシーの適用対象を指定しますが、今回は特に指定しませんでした。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312166/3c21b170-adb5-fd91-260f-ca882427b61b.png)

* 発信元と宛先のIPについても、特に指定しませんでした。
 * 今回は宛先がクラウド上のS3なので指定しませんでした。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312166/045e4851-2118-8214-827f-b7555968c901.png)

* プロトコルとポート番号についても、デフォルトの設定のままで［完了］します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312166/e6781d66-f8b0-0d3b-4d30-acf2fcdde229.png)


# 2. Chromeの機能で帯域制限をかける方法

ブラウザを使ってデータを送受信する場合、Chromeを使えばさらに簡単に帯域制限をかけられます。
QoSを使う方法とは違い、アウトバウンド（送信）だけでなくインバウンド（受信）にも帯域制限をかけられる点が特徴です。

## 2-1. 帯域制限の設定画面を開く

* Chromeの画面右上の［...］をクリックして、［その他ツール］>［デベロッパーツール］と進んでデベロッパーツールを開きます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312166/57db7376-c060-b415-7f75-a021a9199525.png)

* ［デベロッパーツール］画面の右上の［...］をクリックして、［Settings］を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312166/b343a02e-cfb9-c263-027b-584a35b28da1.png)

* 開いた［Settings］パネルで［Throttling］タブを選択して、［Add custom profile...］をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312166/bf96437f-9bd4-8cf4-7dd5-fc0dcdea037f.png)

## 2-2. 帯域制限の設定

* 設定名（Profile Name）を記入した後、所望の設定値を記入して［Add］をクリックします。
 * DownloadとUploadの帯域制限の単位は「**kbps**」である点に注意してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312166/54405e30-5d76-d79e-e911-8e1cbd92bb70.png)

* 設定値を確認した上で、［Settings］パネル右上の［×］をクリックして［デベロッパーツール］画面に戻ります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312166/3be3fe86-da29-2a2c-7455-16fbda179daa.png)

* ［デベロッパーツール］画面で［Network］タブを開き、［Online］となっている箇所をクリックすると帯域制限の設定を選択できます。
* ここで［Custom］の中から先程に作成した設定名（※ここではThrottling Test）を選択すると、帯域制限の設定が反映されます。
 * 逆にこの設定を元の［Online］に戻すと、帯域制限の設定が解除されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312166/3e72259d-31e3-e399-a6a6-c6024e374e53.png)



# 3. まとめ

* QoSを使う方法は使い勝手が良くない。
  * アウトバウンドしか制限できないので、「大きなデータのダウンロード時」などに使えないのが不便です。
* QoSだと帯域制限が効かないケースもある？
  * 「エクスプローラを使って、ローカルホストとNASの間でファイルをコピーする」というケースでは帯域制限をかけられましたが...
  * 「Chrome上でデータをアップロードする」というケースでは、QoSのポリシーが全く効いていないようでした。