ECMPって、そもそもナニ?

はじめに
突然ですが、あなたが毎朝通勤しているとしましょう。自宅から会社まで行くルートが1本しかないとしたら、どうなるでしょうか? 事故があっても、工事があっても、その1本の道に全員が集中します。当然、大渋滞です。
でも現実には「裏道」や「高速道路」など、複数のルートがありますよね。賢いドライバーなら、混み具合を見ながら道を選びます。おかげで全体の渋滞が緩和されます。ネットワークの世界でも、全く同じ問題があります。 そしてそれを解決するための技術が、今日紹介する「ECMP」です。
ECMPとは?
ECMPとは、Equal-Cost Multi-Path routingの略したもので、日本語にすると「等コスト複数経路ルーティング」。 ……なんだかお堅い言葉が並んでいますが、ひとつずつ分解すると簡単です。
| 単語 | 意味 |
| Equal-Cost | 同じコスト(距離・優先度)の |
| Multi-Path | 複数の経路を |
| Routing | データの転送に使う |
まとめると、「同じくらい良い道が複数あるなら、全部使っちゃおう!」という発想の技術です。
そもそも「コスト」とは?
ネットワークの世界では、ルーター(データを転送する機器)が「どの道を通ればいいか」を判断するとき、各経路に「コスト」という点数をつけています。コストは数字が小さいほど「良い経路」と見なされます。たとえば——
- 速い回線の道 → コスト 10
- 少し遅い回線の道 → コスト 20
この場合、ルーターはコスト10の道を選びます。コスト20の道は使われません。ここで、もし2本の道が両方ともコスト10だったら? 「どっちを使えばいいの?」と迷う必要はありません。
ECMPでは、「両方使えばいい!」 と割り切ります。これがECMPの基本的な考え方です。
ECMPは何をしている?
ちょっと図を使って見てみましょう。
送信元のPCから目的地サーバーへ向けて、2本の経路があります。 どちらもコストが同じ「10」です。
ECMPがない時:どちらか片方だけを使う
ECMPがある時:両方を使って、データを振り分ける
これにより、1本の道に集中していた負荷が2本に分散されるので、それぞれの経路が楽になります。

「振り分け」の方法は?
「両方の経路に振り分ける」といっても、いくつかの方法があります。
方法1:ラウンドロビン(順番に割り振る)

単純に交互に送る方法です。わかりやすいですが、現実にはあまり使われません。なぜなら、パケットが順番通りに届かない問題が起きやすいからです。
方法2:ハッシュベース(これが主流)
現在の多くのネットワーク機器では、「ハッシュ計算」 という方法を使っています。
具体的には——
- 送信元のIPアドレス
- 宛先のIPアドレス
- 使用しているポート番号(アプリの種類)
……これらの情報を組み合わせて計算し、「この通信はA、あの通信はB」と自動的に振り分ける仕組みです。
合わせて読みたい
ポイント:同じ「会話」は同じ道を通る
たとえばあなたがYouTubeを見ているとき、その動画のデータは常に同じ経路を通ります。 途中でルートが変わったりしないので、通信が安定します。
ECMPのメリット
- メリット1:スループット(速度)が上がる
複数の経路を同時に使うので、理論上は経路の数だけ帯域が増えます。 2本使えば最大2倍、4本使えば最大4倍の転送量が期待できます。 - メリット2:冗長性が高まる(壊れにくくなる)
1本の経路が故障しても、残りの経路でデータが流れ続けます。 「1本道」だったら、壊れた瞬間に通信がストップしてしまいますよね。 - メリット3:コストを抑えられる
高価な超高速回線を1本引くのではなく、普通の回線を複数本使うことで、同等以上の性能を安く実現できます。
ECMPの注意点(弱点)とは?
もちろん、ECMPにも弱点はあります。
- 注意点1:完璧に「均等」にはならないことがある
ハッシュ計算による振り分けは、通信の内容(アドレスやポート)に依存するため、偶然一方の経路に負荷が偏ることもあります。これを「ハッシュの偏り」と呼びます。 - 注意点2:経路の数が増えると管理が複雑になる
2本くらいなら簡単ですが、大規模なデータセンターでは何十本もの経路を管理することになります。適切な設計が必要です。 - 注意点3:対応していない機器もある
古いルーターやシンプルな機器の中には、ECMPに対応していないものもあります。導入前に確認が必要です。
どんな場所で使われているの?
ECMPは、特に大量のデータが行き交う場所で活躍しています。
| 場所 | 活用例 |
| データセンター | サーバー間の大量通信を複数経路に分散 |
| インターネットサービス | GoogleやAmazonなどの巨大サービスの内部ネットワーク |
| 企業ネットワーク | 拠点間をつなぐWAN回線の冗長化・負荷分散 |
| クラウド基盤 | 仮想サーバー間の通信を効率化 |
あなたが普段使っているWebサービスやアプリの裏側でも、ECMPはひっそりと活躍しているかもしれません。
合わせて読みたい
まとめ
最後に、ECMPのポイントを振り返りましょう。
ECMPとは 「コストが同じ複数の経路を同時に使い、データを分散して転送する技術」
| キーワード | 内容 |
| Equal-Cost | 同じコスト(優先度)の経路が対象 |
| 負荷分散 | データを複数の経路に振り分ける |
| ハッシュ計算 | 同じ通信は同じ経路を通るよう賢く振り分け |
| メリット | 高速化・冗長性・コスト削減 |
| 使用場面 | データセンター・クラウド・企業ネットワークなど |

