はじめに
お客様オンプレミス環境やSaaSとしてWebサービスを提供する際に、どの程度のネットワーク帯域が必要なのかを聞かれる事があると思います。
以下のような観点で、それぞれのネットワーク帯域幅を見積もる方法をまとめてみたいと思います。
- Webサービスを○○名いる拠点から利用する場合に必要なネットワーク帯域幅
- オンプレミス環境からクラウドに移行する場合など、データ移行(移送)に必要なネットワーク帯域幅
- システム間データ連携に必要なネットワーク帯域幅
見積もりに必要な情報
Webサービス利用における、ネットワーク帯域幅の見積もりに必要な情報は、以下になります。
- お客様拠点のユーザー数
- 同時アクセス率
- 1リクエストあたりの平均転送量
上記情報から平均転送量を算出し、帯域幅毎に、平均転送量のデータを送信するのにかかる時間を算出し、必要となるネットワーク帯域幅を見積もります。
スクリプトで同時アクセス率(秒間最大同時リクエスト数÷お客様拠点のユーザー数)、1リクエストあたりの平均転送量を調べる方法は、以下の記事も参考にしてください。
平均転送量の計算
平均転送量は、以下の式で計算する事ができます。
[平均転送量] = [ある拠点の利用ユーザー数]×[同時アクセス率]×[1リクエストあたりの平均転送量]
Webサービス利用の場合
同時アクセス率は、社内の本番環境や、お客様の本番環境のWebサーバーのアクセスログを解析して、秒間同時最大リクエスト数を出した後、利用ユーザー数で割って算出できます。
- ある拠点の利用ユーザー数:2000名
- 同時アクセス率:1%
- 1リクエストあたりの平均転送量:20KB
上記の場合の平均転送量は、2000×0.01×20(KB)÷1000=0.4(MB)=3.2Mbit
になります。
データ移行の場合
平均転送量は、移行するデータのサイズとなります(直列にデータを移行する場合)。
移行するデータサイズが100GBの場合、平均転送量は、100000(MB)=800000Mbit
になります。
システム間データ連携の場合
平均転送量は、最もデータ転送量が大きい時間帯の転送量の合計になります。
2つのジョブで、合わせて20MBのデータが連携されている場合、平均転送量は、20(MB)=160Mbit
になります。
ネットワーク帯域の見積もり
平均転送量が求められたら、帯域幅により、平均転送量のデータを転送するのに、どの位の時間がかかるかを算出します。
また、算出にあたり、ネットワークの実効速度が帯域幅の50%であるとします。
帯域幅毎の転送時間は、以下の式で求められます。
[帯域幅毎の転送時間(秒)] = [平均転送量]÷[帯域幅]÷[実効速度(0.5)]
先程算出した、Webサービス利用の場合、データ移行の場合、システム間データ連携の場合の平均転送量について、帯域幅毎の転送時間を算出すると、以下のようになります。
【平均転送量】
Webサービス利用:3.2Mbit、データ移行:800000Mbit、システム間データ連携:160Mbit
帯域幅(Mbps) | Webサービス利用(秒) | データ移行(秒) | データ移行(時分秒) | システム間データ連携(秒) |
---|---|---|---|---|
10 | 0.640 | 160,000 | 44:26:40 | 32.00 |
20 | 0.320 | 80,000 | 22:13:20 | 16.00 |
30 | 0.213 | 53,333 | 14:48:53 | 10.67 |
50 | 0.128 | 32,000 | 8:53:20 | 6.40 |
100 | 0.064 | 16,000 | 4:26:40 | 3.20 |
200 | 0.032 | 8,000 | 2:13:20 | 1.60 |
500 | 0.013 | 3,200 | 0:53:20 | 0.64 |
1000 | 0.006 | 1,600 | 0:26:40 | 0.32 |
この例では、Webサービス利用においては、帯域幅を100Mbpsとすると、転送時間が0.064秒となり、十分な帯域幅であると判断ができます。
私見ではありますが、Webサービス利用では、平均転送量のデータを転送する時間が、0.1秒未満になるのがよいと考えます。
転送時間が0.5秒を超えると、利用者の体感的に遅く感じる可能性が上がるのではないかと思われます。
データ移行においては、データ移行中はシステムを停止しておかなければならない事が多いため、システム停止可能な時間に収まるかどうかで判断します。
この例では、最低100Mbps程度の帯域幅が必要であると考えられます。
システム間データ連携においては、ジョブの実効頻度や、1つのジョブがどの位の時間で終わる必要があるのか、またネットワークをデータを転送する以外の処理(データフォーマットの変換処理など)にかかる時間もあるため、その点を加味して、必要な帯域幅を検討します。
実際には、あるネットワークを1つのシステムのみで利用する事はなく、複数のシステムやインターネットサイトへのアクセスなどで共用されるため、適時安全率を掛けるなどして見積もるようにしてください。
ネットワーク帯域幅見積もりのテンプレ化
ネットワーク帯域の見積もりにおいては、変数が決まっているので、スプレッドシートに計算式を埋め込んでおき、利用ユーザー数や同時アクセス率、1リクエストあたりの平均転送量などをインプット情報とする事で、すぐに見積もりをできるようになると思います。
新規のお客様など、どの位の同時アクセス率になるか、1リクエストあたりの平均転送量がどの位になるのかが不明な場合は、既存のお客様本番環境で、一番大きい値となった環境の値を利用するなどして、参考見積する事も可能かと思います。
おわりに
お客様オンプレミス環境やSaaSとしてWebサービスを提供する際に、どの程度のネットワーク帯域が必要かを見積もる方法について、まとめてみました。