📝

IP フローティングとは

2021/04/19に公開

概要

CDP:Floating IP Pattern - AWS-CloudDesignPattern

A static IP address used in Amazon Web Services (AWS) is known as an "Elastic IP Address (EIP)." You can use this to reassign IP addresses. You can detach an EIP from an existing EC2 instance and attach it to another ECP instance, to swap the virtual server that provides the services.

パブリック IP の付け替えのことを IP フローティングと言うようです。

ユースケース

  • 障害発生時に別の EC2 インスタンスに切り替える
  • EC2 インスタンスタイプの変更時など、サーバーの停止が必要な時にも別の EC2 インスタンスに一時的に切り替える

フェイルオーバールーティングとの違い

Route 53 のフェイルオーバールーティングを使えば、障害検知とサーバーの自動切り替えはできますね。

フェイルオーバー (アクティブ/アクティブとアクティブ/パッシブ) の設定 - Amazon Route 53

IP フローティングとフェイルオーバールーティングでは以下の点が異なるそうです。
CDP:Floating IP Pattern - AWS-CloudDesignPattern

For web servers, you can use the Domain Name System (DNS) to swap the server. However, in this case as well, typically the swapping time cannot be shortened to less than the Time to Live (TTL) value, so this is not suited to instant swapping.

切り替え時間においては IP フローティングの方が速いみたいです。
他にもこんなメリットがあるそうです。

  • EIP を付け替えるだけなので DNS の TTL に影響されずシステム切り替えが行える
  • アップグレードの際には仮に切り替え先のサーバでエラーが発生した場合でも、即座に元のサーバに EIP をつけかえてフォールバックすることができる
  • EIP は異なる AZ をまたがっても適用できるため万が一 AZ レベルで障害があっても異なる AZ のサーバに EIP 付け替えることが可能
  • EIP 付け替えは API で行えるため監視ソフトと組みあわせて自動化を行うこともできる。

個人的には ELB を使わなくても済む分コストが抑えられるかなと思いました。もちろん ELB は AWS 側で管理してくれているので楽なんですが、コスト面では IP フローティングが代替案になりそうだと思いました。

注意点

CDP:Floating IP Pattern - AWS-CloudDesignPattern

  • Switching an EIP normally takes several seconds.
  • In a Virtual Private Cloud (VPC), you can create additional virtual network cards called an Elastic Network Interfaces, or ENIs. These will have a fixed IP addresses (note: the address is “fixed” (unchanging) from the infrastructure perspective, however from the operating system perspective it is a dynamic address). You can assign and then later move an ENI and its accompanying private address(es) and (if applicable) EIP(s) to another EC2 instance, enabling you to apply this pattern even within a private network. Note, however, that since their primary IP addresses are fixed, ENIs are by definition limited a single subnet inside of VPC.
  • When you make a Secure Shell (SSH) connection to a new instance behind an EIP, a potential security issue warning will be issued, and login may become impossible.

EIP の切り替えでも寸断は発生しそうなので採用する場合は十分な検証のうえで寸断を前提とした設計も必要になりそうです。

まとめ

今回は IP フローティングについて調べてみました。
以下がポイントでした。

  • IP フローティングはパブリック IP の付け替えのこと
  • 障害時などに EIP を別の EC2 インスタンスに付け替えられる
  • DNS の TTL に影響されないため、フェイルオーバールーティングよりも切り替えが速い
  • AZ 間でも付け替え可能
  • 寸断は発生する可能性がある
  • API で自動付け替えも可能

EIP を使用して可用性を向上させたり、ダウンタイムを極力抑えてメンテナンスするときに使えそうな方法だと思いました。
どなたかの参考になれば幸いです。

参考資料

Discussion