🛣️

SAP on AWS でよく出てくる 'Overlay IP (OIP)' とは?

に公開

概要

SAP on AWS の勉強中に、 "Overlay IP" という概念を見かけました。

Overlay IP について調べ、理解したことをまとめます。

※注意※

自分なりの解釈が多分に含まれます。

正確な情報をお探しの方は、参考文献に記載した公式ドキュメントをご参照ください。

結論

Overlay IP は機能ではなく概念。

「ユーザーに公開するIP アドレスを変えることなく、受け答えするサーバーを変えたい」という要求に対する答えの一つ。

Overlay IPは、ユーザーとサーバーの中間に位置し、プロキシ(ドメインネームの方が近いかも?)のような役割を果たす。

  • ユーザーは、常に Overlay IP として設定されている IP アドレスにアクセスすることでサービスを利用できる
  • Overlay IP へのアクセスは、サービスを提供するマシンへルーティングする

architecture

有事の際は、 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

architecture

VPCおよびサブネットのルートテーブルのエントリーにも、以下の図のような静的経路を追加。

architecture

有事の際は、 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

ネットワークの文脈でも、類似した概念として オーバーレイネットワーク が存在します。

雑に言うと、物理インフラ上に構築された、仮想的なネットワークです。

利用者は、たくさんある物理インフラの細かなネットワーク設定など意識せずに、構築した一つの仮想的なネットワークを使用するだけで済みます。

参考文献

https://docs.aws.amazon.com/ja_jp/sap/latest/sap-hana/sap-ha-overlay-ip.html

Discussion