SAP on AWS でよく出てくる 'Overlay IP (OIP)' とは?
概要
SAP on AWS の勉強中に、 "Overlay IP" という概念を見かけました。
Overlay IP について調べ、理解したことをまとめます。
※注意※
自分なりの解釈が多分に含まれます。
正確な情報をお探しの方は、参考文献に記載した公式ドキュメントをご参照ください。
結論
Overlay IP は機能ではなく概念。
「ユーザーに公開するIP アドレスを変えることなく、受け答えするサーバーを変えたい」という要求に対する答えの一つ。
Overlay IPは、ユーザーとサーバーの中間に位置し、プロキシ(ドメインネームの方が近いかも?)のような役割を果たす。
- ユーザーは、常に Overlay IP として設定されている IP アドレスにアクセスすることでサービスを利用できる
- Overlay IP へのアクセスは、サービスを提供するマシンへルーティングする
有事の際は、 Overlay IP のルーティング先を Secondary インスタンスにむける。
これにより、ユーザーが利用するIP アドレス(≒ Overlay IP)を変えることなく、生きているインスタンスへルーティングできる。
Overlay IP を実現するAWSサービスは以下の二つ。
- Network Load Barancer
- Transit Gateway
Network Load Barancer で Overlay IP
Network Load Barancer に割り当てられるIPアドレスが、 Overlay IP として機能する。
- ユーザーは、常に Network Load Barancer (に割り当てられたIPアドレス)へアクセスする
- Network Load Barancer のルーティング先に、 Primary サーバーを設定する
- 有事の際は、ルーティング先を Secondary サーバーへ変更する
Transit Gateway で Overlay IP
事前に、overlay IPとして使用する private IPアドレス(以降、仮想Private IPと記述)を決めておく。
Transit Gateway の ルーティングエントリーに、以下の静的経路を追加。
- 仮想Private IP => サービスが稼働するVPC
VPCおよびサブネットのルートテーブルのエントリーにも、以下の図のような静的経路を追加。
有事の際は、 VPCに紐づくルートテーブルのエントリーを以下のように書き換える。
- 変更前 : 仮想Private IP => Private Subnet A
- 変更後 : 仮想Private IP => Private Subnet B
"Overlay IP" の名前の由来を考えてみる
高可用性が目的の場合、 Primary と Secondary は、別々の AZ (≒異なるサブネット)へデプロイすることになります。
利用者視点だと、Overlay IPにアクセスするだけなので、背後にある「異なる複数のサブネット」を意識することはありません。
そのため、「一つのIPアドレス(Overlay IP)を要する、一つのネットワーク空間(実際は、異なる複数のサブネット有り」)に見えます。
こういった、「背後にある異なる複数のサブネットを覆い隠すよう振る舞うIPアドレス」という点や、後述する「ネットワークの文脈における Overlay」の意味合いから、 "Overlay IP"という名前につながったのではないか?と考察します。
【余談】ネットワークの文脈における Overlay
ネットワークの文脈でも、類似した概念として オーバーレイネットワーク が存在します。
雑に言うと、物理インフラ上に構築された、仮想的なネットワークです。
利用者は、たくさんある物理インフラの細かなネットワーク設定など意識せずに、構築した一つの仮想的なネットワークを使用するだけで済みます。
参考文献
Discussion