keepalived を使ってインフラ負荷分散を行う方法を紹介しています。今回はバーチャルサーバの冗長構成も兼ねたネットワーク構成を説明します。
DSR や NAT を使ったネットワーク構成については こちら で既に説明しました。今度はこれらの構成にバーチャルサーバとして稼働している keepalived も VRRP を使って冗長構成を実現している例を挙げてみます。
keepalived の DSR 構成+VRRP 冗長構成のネットワーク例
バーチャルサーバが冗長構成となる場合のイメージ自体は こちら が参考になりますが、DSR 構成の場合次のようなネットワーク構成になります。
バーチャルサーバは代表 IP(仮想 IP という)を持ちそれをバーチャルサーバ間で持ち回りしているようなイメージになります。この時、実際のバーチャルサーバに振られた系間で疎通確認する IP は一般ユーザがアクセスできる必要はありません。
DSR 構成の場合、増えるネットワークは 1つ位なのでさほど複雑にはならないでしょう。
keepalived の NAT 構成+VRRP 冗長構成のネットワーク例
次に NAT+VRRP 冗長構成の場合ですが、この場合は若干複雑になります。
NAT + VRRP 構成の場合、まず keepalived VRRP 間で死活監視を行う為のネットワークが必要になります。このネットワークもユーザとアクセスできる必要はありません。
また、閉じたネットワークとなり、リアルサーバはパケットをバーチャルサーバに返す必要があるのですが、「今 2つあるバーチャルサーバのうち、どちらが実際に稼働しているサーバか?」を判断することができません。
その為、バーチャルサーバ側でもユーザへ公開する仮想 IP とは別にもう一つ仮想 IP を用意する必要があります。
実際には環境に合わせてパケット戻り用の仮想 IP が作れず、ユーザ公開側の IP をパケット戻り用に使うかもしれません(接続できればの話し)。いずれの場合にせよ、このやり方がスタンダードな気がします。