パブリッククラウド利用が普及しつつある中、それぞれのクラウド、またはオンプレミス独自のメリットを享受するための手法としてマルチクラウドやハイブリットクラウドという方式がシステム運用方式の1つとして選択肢にあがることがあります。
今回はマルチ/ハイブリットクラウド時代の大きな課題の1つであるネットワーク遅延(レイテンシ)について考えてみようと思います。
はじめに・・・・
本記事はハイブリットクラウドのアーキテクチャを検討する際に、光ファイバー遅延を元に各クラウド間/DC間のNW遅延をざっくり試算するための考え方や技術内容について記述するものです。
PoCに入る前の机上評価の段階でINPUTとして観点の1つに加えていただければ幸いです。
ただし、ここで計算するレイテンシは近似値として試算するものになりますので実測値はPoCなどの実機検証で確認することをお勧めします。
また、内容の中で間違いや誤認などございましたらご指摘いただけると幸いです。
何が課題?
まず、ネットワークレイテンシが課題なのでしょうか。
結論、アプリケーションの性能に大きく関係します。
ネットワークレイテンシが大きい場合、アプリケーションの性能が遅くなります。
ネットワークレイテンシって何?何が問題なの?
それで、ネットワークレイテンシとはなんでしょうか。
ChatGPT先生に聞いてみます。
先生は小難しいこと言ってますが。
要するにネットワークレイテンシとは通信を介してデータのやり取りを行った際のデータの移動時間です。
例えばアプリケーションからデータベースに対してSQL問い合わせを行った際のリクエスト~レスポンスまでの時間です。
レイテンシと並べて良く言われるものの1つにネットワーク帯域という用語が挙げられます。
帯域は通信できる幅を指します。道路で言うと道幅です。
レイテンシは速度なので道路で言うところの車のスピードとして認識頂ければと思います。
同一データセンター内の高速ネットワークで構成されている場合はサーバ間の距離が近いため(長くてもたぶん1km未満)ほとんど問題になりません。
※とはいえアプリケーション開発者からすると、性能が悪い!!と怒られms単位のチューニングを求められる中で致命的な問題なのですが。。これは別の話('A`)
。。。では、異なるデータセンター間でデータのやり取りを行ったらどうでしょうか。
距離が遠くなるにつれてデータが移動する距離もどんどん長くなります。
よってデータのリクエスト/レスポンスにかかる時間もどんどん大きくなっていきます。
これが大量ループによる大量SQL問い合わせ処理だった場合、
1つの問い合わせでかかるレイテンシは微量なものでも塵も積もれば山となりアプリケーションの性能に多大な影響をもたらします。
極端な例ですが、わかりやすく。
バッチ処理でネットワークレイテンシが5msで合計で100MBのデータ通信を行った場合を考えると単純計算で以下のような結果になります。
マルチクラウドの場合、
東京エリアのDC間通信なら?(約120km)
東京⇔大阪間なら?(約500km)
北海道⇔沖縄なら?(約3,200km)
日本⇔ブラジルのサンパウロなら?(約18,400km)
というように繋ぎたい地域によっては距離が遠くなります。
ネットワークがつながればよいという問題ではなのです。
これがネットワークレイテンシの問題です。
単純ループのバッチ処理を例にしましたが、バルクコミット処理などレイテンシ問題を回避する技術は色々あります。
光ファイバー遅延って何?
ネットワークレイテンシを計算してみる前に、光ファイバー遅延について理解します。
データセンター間を繋ぐ物理ネットワークは光ファイバーの技術を使って構築されています。
これが現在最速です。
光は光ファイバーの中を効率よく移動できているわけではありません。
光ファイバーの中をまっすぐ進むわけではなく、反射しながら進むため光ファイバー内の光の進める論理的な速度は通常の2/3程度と考えられています。
1秒で通常地球7周半といわれる光の速度 約30万Km/秒 の 2/3 の 約20万Km/秒 程度の速度になると言われています。
これが光ファイバー遅延です。
なので、光ファイバーを使って光が1キロ進むときにかかる時間がわかります。
1 秒 / 200,000キロ = 0.000005秒
つまり、5us(マイクロ秒)です。
光ファイバーを使って光を移動させると、光は1キロ進むために5usかかります。
これがネットワークレイテンシを考えるときのベースとなります。
参考)
以下のサイトがシンプルでわかりやすいので参照してみてください。
ネットワークレイテンシを計算してみる
単純に上記の係数を掛け算してみます。
色々なサイトで計算されているレイテンシと近似値になるはずです。
実測値が測ればよかったのですがリソース用意できず。。。
リソース確保できたら実測値計測してみたいと思います。
光ファイバーは直線距離より遠回りしたりして長く引かれていることが多いので
今回は実際の距離より光ファイバーが1.5倍長い想定で考えていきます。
東京エリア(120km)のネットワークレイテンシ
さっそくマルチクラウドの例としてOCIとAzureのInterconnectで構築されている東京エリアの回線速度と比べてみます。
0.000005秒 x 180km x 往復 = 0.0018秒
理論値は1.8ms!!
そして、実測値は1490.76us なので 約1.5ms ! とのこと。
あれ?うーん?早くね??
光ファイバーがもっと短いのかな?というか専用線だからもっと早いのか?
とはいえ近似値といえば近似値。。
ちなみに、OCI⇔Azure Interconnectはこの記事で詳しく計測結果が記載されています。
東京⇔大阪間(500km)のネットワークレイテンシ
続いてパブリッククラウドあるあるの東阪リージョンの計算です。
0.000005秒 x 750km x 往復 = 0.0075秒
7.5ms !!
これはOCIで公開されているリージョン間のレイテンシを参考値として使います。
NRTとKIXのレイテンシは。。
ちょっと見づらいですが8.5ms!
ということで、7.5msと8.5msで割と近い値が計算できていると思います!!
東京⇔ブラジル サンパウロ(18,400km)のレイテンシ
続きまして地球の裏側で計算してみます。
こちらもはOCIで公開されているリージョン間のレイテンシを参考値として使います。
0.000005秒 x 27,600km x 往復 = 0.276
276ms !!
こちらもちょっと見づらいですが、313.68msです。
うーん、
中々良い数字ではないでしょうか。
参考)
また、OCIのネットワークレイテンシは以下のドキュメントに
確認手順が記載されております。順次更新です。
注意
実際のレイテンシは中継器などを経由するため(ホップする)
理論値よりもレイテンシが大きくなります。
上述している通り単純計算であることをご了承くださいm(_ _)m
最後に
いかがでしたでしょうか。
私自身ODSAなどのサービスを通してマルチクラウド案件に携わることがある中、
ネットワークレイテンシは頭の痛い問題でした。
どうすれば早くなるか?も大事ですが
なぜこの速度になるのか?。。という点を理解することが大切だとNWつよつよ先輩から学びました。
私はこの話を聞いてとても腹落ちしました。(感動)
OCIではFastConnectやODSAなどマルチクラウドに利用できるサービスがあったり、
ネットワークはベンダーではMegaportさんやエクイニクスさんがマネージドサービスとしてマルチクラウドの相互通信サービスを展開していたりします。
マルチクラウドが当たり前になる未来もそう遠くないと考えております。
参考文献
光ファイバー遅延