エッジ高可用性仮想 IP (HAVIP) は、独立して作成およびリリースできるプライベート IP リソースです。Edge Node Service (ENS) インスタンスのプライベート IP アドレスと同じネットワークアクセス機能を持ちます。HAVIP を Keepalived などの高可用性 (HA) ソフトウェアと組み合わせて使用することで、HA プライマリ/スタンバイサービスを構築し、サービスの可用性を向上させることができます。また、HAVIP は 1 つの Elastic IP Address (EIP)、複数の ENS インスタンス、または複数の ENS インスタンスの Elastic Network Interface (ENI) にアタッチすることもできます。これにより、同一エッジゾーン内の複数サーバーで構成される HA アーキテクチャで IP ドリフトが可能になり、外部サービスに使用されるプライベート IP アドレスが変更されないように保証します。
背景情報
物理データセンターでは、サーバーはアドレス解決プロトコル (ARP) を使用して自身の IP アドレスをアドバタイズし、サービスを提供できます。多くのアプリケーションシナリオや一般的なソフトウェアでは、ホストがこの機能を持つことが要求されます。例えば、Keepalived や Heartbeat などのソフトウェアは、ディザスタリカバリ中にサービス IP アドレスを一定に保つ HA ソリューションを実装するために使用されます。
しかし、ほとんどのクラウドベンダーが Software-Defined Networking (SDN) アーキテクチャを採用して以降、Virtual Private Cloud (VPC) 環境では ARP ブロードキャスト機能がサポートされていません。これは、これらの環境が VXLAN を用いたレイヤー 3 転送を使用しているためです。さらに、クラウドネットワーク環境は仮想化技術を用いて構築されています。仮想サーバーの IP アドレスは、クラウドプラットフォームの基盤となる仮想化スタックによって割り当てられ、管理されます。アプリケーションは、従来のデータセンターのようにホストの IP アドレスを変更することはできません。この問題を解決するために、ENS は HAVIP 機能を導入しました。
仕組み
1 つの HAVIP と 2 つの ENS インスタンスを使用して、HA プライマリ/スタンバイクラスターを構築します。
Keepalived の設定: HAVIP を ENS-1 と ENS-2 にアタッチします。両方のインスタンスに Keepalived ソフトウェアをインストールします。Keepalived の設定ファイルで、
virtual_ipaddressを HAVIP のアドレスに設定します。また、設定ファイルでpriorityを設定する必要もあります。値が大きいほど、インスタンスがプライマリサーバーになる優先度が高くなります。プライマリサーバーの選出: Keepalived ソフトウェアは Virtual Router Redundancy Protocol (VRRP) に基づいています。ENS-1 と ENS-2 の
priorityの値を比較することで、Keepalived は自動的に優先度の高い ENS インスタンス (例えば ENS-1) をプライマリサーバーとして選出します。もう一方のインスタンス (例えば ENS-2) はスタンバイサーバーになります。その後、システムは HAVIP とプライマリサーバー間のマッピングを自動的に更新します。HAVIP 宛てのすべてのトラフィックはプライマリサーバーに転送されます。プライマリ/スタンバイの切り替え: プライマリサーバーは定期的にハートビートメッセージをスタンバイサーバーに送信します。ハートビート間隔は、設定ファイルの
advert_intパラメーターによって決まります。指定された時間内にスタンバイサーバーがハートビートメッセージを受信しない場合、Keepalived ソフトウェアは自動的にスタンバイサーバーを新しいプライマリサーバーに昇格させます。システムがこの変更を検出すると、HAVIP と新しいプライマリサーバー間のマッピングを自動的に更新します。その後、HAVIP 宛てのすべてのトラフィックは新しいプライマリサーバーに転送されます。このプロセスにより、切り替え中にサービス IP アドレスが変更されないことが保証されます。
利用シーン
パブリック向け高可用性サービス
次の図に示すように、ENS-1 と ENS-2 インスタンスは Keepalived を使用し、同じ HAVIP にアタッチされてプライマリ/スタンバイの HA クラスターを形成します。ENS-1 は ARP を使用して HAVIP をアドバタイズします。アドバタイズが成功すると、ENS-1 はプライマリインスタンスとして機能し、HAVIP にアタッチされた EIP を介してインターネットにサービスを提供します。ENS-2 はスタンバイ ENS インスタンスとして機能します。
ENS-1 に障害が発生した場合、ENS-2 は自動的に引き継ぎプログラムを実行して ENS-1 からサービスを引き継ぎます。これにより、サービスの高い可用性が保証されます。
内部向け高可用性サービス
次の図に示すように、ENS-1 と ENS-2 インスタンスは HAVIP と Keepalived を使用して、内部向けの HA サービスを形成します。VPC 内の別のインスタンス (例えば ENS-3) は、プライベートネットワークを介してこのサービスにアクセスできます。サービスエンドポイントは HAVIP の IP アドレスです。ENS-1 に障害が発生した場合、ENS-2 は自動的に引き継ぎプログラムを実行して ENS-1 からサービスを引き継ぎます。これにより、サービスの高い可用性が保証されます。
制限とクォータ
カテゴリ | デフォルトの制限 |
HAVIP でサポートされるネットワークタイプ | VPC タイプ |
HAVIP でサポートされる IP バージョン | IPv4 |
単一の ENS インスタンスにアタッチできる HAVIP の数 | 5 |
単一の HAVIP にアタッチできる EIP の数 | 1 |
単一の HAVIP にアタッチできる ENS インスタンスまたは ENI の数 | 10 |
HAVIP でのブロードキャストとマルチキャストのサポート | ユニキャストのみサポート |
課金
パブリックプレビュー期間中、HAVIP 機能は無料で提供されます。この機能には、サービスレベルアグリーメント (SLA) は提供されません。