スキップしてメイン コンテンツに移動

AWSが選択したRNG(Random Regular Graph)がSDNより革新的な理由

AWS RNG Network Topology

最近、アマゾンウェブサービス(AWS)がデータセンターのネットワークを完全に再設計した新しいアーキテクチャ、**RNG(Random Regular Graph)**を公開し、ネットワークエンジニアやクラウド業界の注目を集めています。AWSの発表によると、RNGを導入することで、ネットワーク機器の数を最大69%削減しながらも、データ転送速度を33%向上させ、消費電力を約40%削減するという驚くべき成果を達成しました。

このニュースを聞いた多くのエンジニアは、「トラフィックを柔軟に分散し、経路を動的に制御するという点で、SDN(Software-Defined Networking)と何が違うのか?」という疑問を抱いています。

結論から言うと、**SDNがネットワークを効率的に制御する『運用・制御の頭脳』であるならば、RNGは道路網そのものを革新する『物理的・論理的ファブリックトポロジー設計』**です。なぜAWSが選択したRNGが一般的なSDN導入よりも深いインフラの革新であり、大きな意味を持つのかを比較分析してみましょう。


1. 核心的な違い(1行要約)

  • SDN (Software-Defined Networking): 制御構造および運用モデル (Control PlaneとData Planeの分離)
  • RNG (Random Regular Graph): 物理・論理ネットワーク構造そのものと、それに最適化されたルーティング方式 (Flat / Quasi-randomファブリック設計)

💡 交通網による比喩

  • SDNは、リアルタイムの車の流れに応じて信号を切り替え、迂回路を案内する**『都市交通管制システム』**です。
  • RNGは、渋滞が発生しないように道路網そのものを完全に設計し直し(階層構造からグリッド/ランダム接続網へ)、それに最適化されたナビゲーションアルゴリズムを提供する**『基盤道路網の設計』**です。

2. なぜRNGとSDNが似ているように感じられるのか?

RNGの基本的な動作原理を見ると、SDNと類似した特徴がいくつか存在します。

  1. 経路の動的制御: 固定された単一の経路ではなく、ネットワークの状況に応じて複数の経路にトラフィックを分散します。
  2. ソフトウェアによる抽象化: 物理ネットワークレイヤーの上で、トラフィックをインテリジェントに迂回・処理します。
  3. 集中管理型の最適化設計: データセンター全体のトポロジーを分析し、パフォーマンスを予測・制御します。

SDNもハードウェア機器の制御部(Control Plane)をソフトウェアで分離して柔軟に制御する技術であるため、「トラフィックをスマートに制御する」という観点からは似ているように見えます。

しかし、これら二つが扱うレイヤーと焦点はまったく異なります。


3. RNG vs SDN の詳細比較

区分 RNG (Random Regular Graph) SDN (Software-Defined Networking)
本質 データセンターネットワークトポロジー設計 ネットワーク制御アーキテクチャ
主な目的 機器数の削減、経路の多様性確保、ボトルネックの緩和、消費電力の削減 自動化、ポリシー制御、ネットワークの抽象化、動的な構成
物理配線 極めて重要 (ShuffleBoxなどの特殊機器が必要) 相対的に低い (既存の物理網の上でもソフトウェアで実装可能)
主要技術 Spraypoint (ルーティング), ShuffleBox (光配線) SDN Controller, OpenFlow, VXLAN/EVPN など
適用範囲 超巨大AI学習およびグローバルクラウドデータセンターファブリック エンタープライズLAN、WAN、キャンパス網、クラウド仮想網など

4. 従来のFat-Tree構造の限界とRNGの登場背景

従来のデータセンターは、Fat-Tree (または Clos) 構造に基づいて設計されています。Top-of-Rack (ToR) スイッチから始まり、Aggregation スイッチ、そして Core スイッチへと上がり、再び下がっていく典型的な「階層型ツリー構造」です。

  • Fat-Treeのデメリット: 上位階層(Core)にトラフィックが集中し、ボトルネックが発生しやすくなります。帯域幅を拡張するためには、高価な上位機器と大量のケーブルを追加し続ける必要があり、コストと消費電力が飛躍的に増加します。
  • RNGのアプローチ: 階層構造を完全に廃止し、ルーター同士を**フラットなランダムグラフ(Quasi-random graph)**の形で複雑に相互接続します。この場合、特定の機器にトラフィックが集中せず、無数の迂回路(独立経路)が確保されるため、理論上ボトルネックが完全に解消されます。

しかし、ランダムグラフ構造には現実世界で二つの大きな障壁がありました。

  1. 配線地옥 (Cabling Chaos): 数千台のスイッチをランダムに直接接続すると、光ファイバーの配線が完全に絡まり、構築やメンテナンスが不可能になります。
  2. 計算の複雑さ: 複雑なメッシュネットワークの中で、パケットの最短経路をリアルタイムで高速に計算することが困難になります。

AWSは、これら二つの課題を独自の技術で解決しました。

💡 AWS RNGの2大核心技術

  • ShuffleBox (シャッフルボックス): 電力を一切消費しない受動的な光学デバイスです。内部で数千本の光ファイバーを、事前定義されたアルゴリズムに従って物理的にクロス(シャッフル)させます。エンジニアはシャッフルボックスの外部ポートにケーブルを差し込むだけで、複雑なランダムトポロジーが自動的に完成するため、配線の複雑さをFat-Treeと同等レベルに簡素化しました。
  • Spraypoint (スプレイポイント): ランダムネットワーク向けにカスタム設計された独自の分散型ルーティングプロトコルです。ソースルーターが流入したトラフィックを周囲の複数の経路へ広く拡散(Spray)させた後、中継ルーターが目的地まで効率的に案内(Point)する2段階のアプローチを取ります。これにより、市販のルーターチップの計算限界内で最適な分散経路を提供します。

5. なぜAWSのRNG選択がSDNより革新的なのか?

多くの企業は、ネットワークの非効率性を解消するために、既存のFat-Tree構造の上にSDNコントローラーを載せてトラフィックを動的に迂回させる方法を選択します。

しかし、この方法では道路(物理トポロジー)の根本的な限界を克服できません。2車線の道路網はそのままに、信号機だけをスマートに変えるようなものであり、トラフィックが急増するAI時代のデータセンターの要求に対応するには限界があります。

一方で、AWSのRNGは道路そのものを新しく敷設するアプローチです。

  1. ハードウェアの劇的な削減: ランダム接続によってネットワーク内の経路の多様性を最大化することで、機器(スイッチ/ルーター)の数を69%も削減できました。これは、SDN制御ソフトウェアだけでは絶対に達成できない、物理的なインフラコストとエネルギー効率のイノベーションです。
  2. AIワークロード(超広帯域)の最適化: 巨大言語モデル(LLM)の学習時に発生するAll-Reduceなどの分散演算トラフィックは、データセンター全体の帯域幅を極限まで消費します。RNGのフラットな構造とSpraypointプロトコルは、このような大規模な並列トラフィック分散において最高のパフォーマンスを発揮します。

結論

RNGはSDNの代替品や競合技術ではありません。むしろ、超巨大データセンターの物理ファブリックレイヤー自体を革新し、その上で動作するSDNや自動化ソフトウェアがより完璧にパフォーマンスを発揮できるように土台を提供するインフラ革命です。

インフラを垂直統合し、専用チップからサーバー、ネットワークファブリック(RNG)、ルーティングソフトウェアまでを独自に構築できるAWSだからこそ、挑戦し成功できたパラダイムシフトと言えます。今後、生成AIの加速に対応するビッグテック企業のデータセンターアーキテクチャにおいて、RNGがどのような標準となっていくか注目されます。

コメント

このブログの人気の投稿

面倒くさいORACLEの文字化け状況

ORACLEはそもそもUTF-8をサポートしてほかの言語はサポートはしているって書いてますが親切ではないようです。 現在サーバー側は昔からUS7ASCIIに設定して日本語を入れてしまい、データは7ビットASCIIモードで読み取りながら日本語のコートがOS側とクライアント側で変換しない必要があります。 クライアント側で文字化けの解決にはNLS_LANGの設定が効くクライアントが必要ですが、一部の有料クライアントにはサポートするようです。 接続構造は参考に https://www.oracle.com/technetwork/jp/content/charcterset-250314-ja.pdf の19スライドのように クライアントからNLS_LANGをUS7ASCIIに設定しても その設定した言語にもらったUTF-8のデータをクライアントが変換すると NLS_LANGを設定しても意味がないようです。 ORACLE SQL Developerがこの様です。 ODBCと直接接続は必ずUTF-8に変換してしまうのでUS7ASCIIになっているDBからはクライアントをいくら変換しても文字化けのままです。 必ずOCI接続を通じてクライアント側から読み取らないとUS7ASCIIは勝手に変換されますね。 この全ての条件が満たした無料クライアントはA5mk2の2.9.1バージョンだけですね。 A5MK2 ver.2.9.1 : https://a5m2.mmatsubara.com/download/a5m2_2.9.1_x64.zip 2.9.1 バージョンでサーバーを設定する場合Uicode変換を強制に無視するオプションがあります。 多分このバージョンの時点ではUTF-8をメインにして設計したDBが少なかったから文字化け対応のためできたオプションでしょう。 しかし、A5mk2の新しいバージョンにもまた結果の変換をしないオプションがなくなって文字化けしてしまいます。開発者はもうUTF-8ではないDBはないと思ってるでしょう。まだまだ残ってますよ~。 クライアント側からの変換などに参考になればと思います! まだ直接お仕事になさってますか? もう遅いです!ソフトウェアロボットにお仕事を任せてどの位自分の作業分量が減ってるかをご確認ください! https://talklowy-jp.b...

コピペができないときチェックすべきこと! :: よく迷うUiPathのコツ

UiPath( https://uipath.com )はMicrosoft社のWWFを改良した製品なのでVisual Studioより初心者向けに使いやすくなっている。 しかし、初心者がそのまま使うにはかなりのハドルがある。 理由は基本開発者向けの開発ツールを無理やり便利に作ってみたとしても開発の概念と考え方がないと結構躓くことが多い。 そのなかで私もよく迷ったりしていることの一つを整理しとく。 基本Activityはすぐコピぺができるので多数のUiPath Studioを開いて開発してたりする。 ここでコピペをしても反応ないときがよくある。 この場合はこれをチェックすること! 1.Sequenceがなく一つのActivityしかないところにはペーストできないのが多い。 例えば、ifの処理ボックスにはSequenceが最初はない。 そのボックスに一つのActivityはペーストできるのに2個目からはなぜか反応ない。 それで分からないまま新しいActivityを追加してたりしたが、 あそこにSequenceを入れたら解決ができるのだ! 2.正常にペーストできるはずのところに反応ない。 この場合はPackageが合わなくペーストが効かないケースが多い。 DESIGN>Manage Packagesをクリックしてコピー元のパッケージにインストールされているのにコピー先にインストールされてないパッケージを探す! パッケージを一々見るのが難しい!と思ったら メモ帳からファイルがあるフォルダにあるproject.jsonファイルを開いてみる! あそこにJSONの形式でインストールされたパッケージが見えるので比較しやすくなる! ちなみにコピペをすると変数の宣言が大変だと思うが、 そこでもコツがあるのだ! 変数の宣言はなるべく細かくしてSequence単位で管理できるようにする。 全てに影響がある変数はしょうがないから一番広く宣言するけど。 初心者向けの説明だと、 Variablesというところをクリックして変数を開いたらScopeという範囲が見える! 大体Sequenceボックスの名前を変えてないのでSequenceがすらりと表示されてるはずが、Sequenceボックスの名前を付けてたら見やすくなる。 あ...

UiPath - Excelのシート名が存在した場合の処理

UiPath.Excel Activityは活用方法によってかなり強力ですが、隠れて探せない項目が多すぎて困ったりします。 公式ドキュメントもいまいちだし…。 Excelを自動化するには協力なUiPathの機能の中でSheetの判断処理を残します。 今まではシートがあったら何とかしようとしたら見つける方法が分からなく、ErrorのExceptionで判断したりしましたが、 workbook.GetSheets.Contains("<sheet name>") があったのをいまさら見つけました; 早速試してみましたが、 messageboxにworkbookとか書いてみても出てこない…。 これはExcel Application Scopeを利用しなければなりませんでした! まずExcel Application ScopeにExcelファイルを登録! Excel Application Scope Activityの属性にOutputにwbを入力して変数に入れます。 変数に入れてからMessageBoxに wb.GetSheet.Contains("Sheet1") を入力してみると成功! 「wb.」をおした時点でいっぱい出てきましたね。 ググってみても詳しく出て着なかったのでここにまず記録 giip - Free UiPath and Rpa Integrated Orchestration Service https://giipasp.azurewebsites.net