
皆さんこんにちは、西下です。
当ブログ記事では、LifeKeeperが対応しているAmazon EC2上でのHAクラスター構成をご紹介します。
2025年に追加された構成もあるので、ぜひご覧ください。
『LifeKeeper』の基本的な構成
Amazon EC2環境では下記の構成が基本となります。
- LifeKeeper:ノード(仮想マシン)監視とリソース監視
- DataKeeper:ローカルディスク(EBS)をブロックレベルのリアルタイム同期
『LifeKeeper』によるAmazon EC2の冗長化構成の例
LifeKeeperは標準機能でAmazon EC2上で要件となるHAクラスター構成をほぼ網羅しています。
その中で代表的な構成をご紹介します。
仮想IPとルートテーブルの書き換えによる制御
クライアント(クラスターノードと通信するマシン)は仮想IPに向けて通信することでActiveノードに到達できます。AWS環境でAZを跨ぐとサブネットも跨いでしまうので、オンプレミスのように仮想IPだけではクライアントは正しくActiveノードへ到達できません。
そこで、VPCのCIDR外の仮想IPをルートテーブルに登録し、転送先のActive/StandbyノードのENIをクラスターの切り替え時にLifeKeeperからAWS CLIを介して書き換えることで、クライアントは常にActiveノードに到達できます。
Transit Gatewayを使うことで、AWSの外部(オンプレミス)からDirect Connectなどの閉域網を経由しても、仮想IPに向けた通信が可能となります。
■関連するマニュアル ※バージョンは2025年2月時点の最新バージョン
◇Linux版
◇Windows版
実IPとRoute53のAレコードの書き換えによる制御
Transit Gatewayが使えないなどの要因で上記の方式が使えない場合、Route53の名前解決による通信制御が可能です。クライアントはRoute53により名前解決された実IPに向けて通信することで、Activeノードへ到達できます。
Route53のAレコードをクラスターの切り替え時にLifeKeeperからAWS CLIを介して書き換えることで、クライアントは常にActiveノードに到達できます。
■関連するマニュアル ※バージョンは2025年2月時点の最新バージョン
◇Linux版
◇Windows版
NLBのヘルスチェックによる制御
NLB(Network Load Balancer)のヘルスチェックに応答するノードに通信する方式にも対応しています。セキュリティ要件によりAWS CLIによる構成変更が実施できない場合にはこの方式をご検討下さい。
■関連するマニュアル ※バージョンは2025年2月時点の最新バージョン
◇Linux版
◇Windows版
リージョンを跨いだ構成
近年の災害対策ニーズの高まりから、リージョンを跨いだ構成にも対応しています。
仮想IPとルートテーブルの書き換えによる制御
LifeKeeper for Linux v9.9.0から提供された新機能です。(今後LifeKeeper for Windowsでも対応予定)
当機能が想定している構成です。
HAクラスターはリージョンAとリージョンBを跨いで構成されています。クライアントはリージョンA、B、Cのいずれかにあることを想定しています。
各クライアントからPrimaryノードへの通信は、下図のイメージとなります。各VPCのルートテーブルと各Transit Gatewayのルートテーブルは、送信先が仮想IPのエントリーの転送先をLifeKeeperから制御します。これにより、各クライアントから仮想IPに向けて通信することでPrimaryノードへ到達します。
クラスターの切り替わり時には、LifeKeeperのクラスターリソース情報にセットされた仮想IPアドレスをキーに必要情報を芋づる式に取得し、ルートテーブルに仮想IPのエントリーが存在すれば、転送先を適宜変更して通信制御が行われます。
クラスターが切り替わると、各クライアントからBackupノードへの通信は、下図のイメージとなります。各クライアントから仮想IPに向けて通信することでBackupノードへ到達します。
■関連するマニュアル
◇Linux版のみ
- こちらからGeneric ARKの制御スクリプトとドキュメントをダウンロード頂けます。 ※2025年2月から公開開始
→[Linux] AWSのクロスリージョン環境において仮想IPで通信できる構成をサポート
実IPとRoute53のAレコードの書き換えによる制御
VPCピア接続を条件にRoute53のAレコードの書き換えによる制御に対応しています。
■関連するマニュアル ※バージョンは2025年2月時点の最新バージョン
◇Linux版
◇Windows版
LifeKeeperは標準機能でAmazon EC2の様々な構成に対応しています。
また、この記事で紹介されていない構成については、お気軽に下記までお問い合わせ下さい。
クラスターノード間のデータ共有方法については、今回はDataKeeperのみをご紹介しました。
関連情報として下記の記事もご参照下さい。
ご参考までに、オンプレミス環境で運用できるAWS Outpost ラックにLifeKeeperは対応しています。
よろしければユースケースページと関連ブログもご覧ください。