🛣️

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

2024/01/20に公開

概要

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