VIP(仮想IP)とは?冗長化の基本を学ぶ

サーバーがひとつ落ちるだけでサービス全体が止まってしまったら大問題。そこで登場するのが VIP(Virtual IPアドレス、仮想IP) です。
VIPの基本について解説します。

目次

1. VIP(仮想IP)とは?

1.1 定義と役割

  • 仮想IPアドレス(VIP):物理的なネットワークインタフェースに紐づかないIPアドレス
  • 役割:複数のサーバー間で同じIPを共有し、どこかのノードが止まってもVIPを別ノードに移動させてサービス継続

1.2 物理IPとの違い

種類結びつき切り替えの柔軟性
物理IPネットワークカード固定ほぼ不可
仮想IP (VIP)複数サーバー共有自動 or 手動移動

1.3 VIPが活躍するシーン

  • Webサーバーの ロードバランシング
  • データベースの マスター・スレーブ切り替え
  • ファイルサーバーの アクティブ-スタンバイ構成

2. 冗長化・フェイルオーバーの基本用語

用語意味
冗長化 (Redundancy)同じ役割のコンポーネントを複数用意し、障害耐性を高めること。
フェイルオーバー (Failover)障害発生時に稼働中のコンポーネントから待機中のコンポーネントへ処理を引き継ぐ仕組み。
フェイルバック (Failback)障害回復後、元のコンポーネントに処理を戻すこと。
アクティブ-スタンバイ一方が稼働、他方が待機。待機機が自動でアクティブになる構成。
アクティブ-アクティブ複数台が同時に稼働。負荷分散を行いながら耐障害性も確保。

3. VIPを使ったフェイルオーバーの仕組み

3.1 典型的なHA(高可用性)構成

Linux環境でよく使われるのが Keepalived(キープアライブ) や Heartbeat

  • マスターノード にVIPをアサイン
  • スタンバイノード は定期的にマスターの死活監視(ヘルスチェック)
  • マスターに障害が検知されると、スタンバイがVIPを引き継ぎ

3.2 ARP通知によるVIP移動

  1. スタンバイがVIPを自ノードに設定
  2. arping コマンドで Gratuitous ARP を送信
  3. L2スイッチやルーターのARPテーブルが更新
  4. クライアントの通信先が自動的に切り替わる
# サンプル:VIPを移動させるarping
arping -U -I eth0 192.168.0.100  # Gratuitous ARP Unsolicited

3.3 ヘルスチェックの方法

  • ICMP ping:疎通確認
  • TCPポートチェック:HTTP/HTTPSの死活監視
  • カスタムスクリプト:アプリケーションレイヤーまで含めた詳細チェック

4. 実装例:KeepalivedでVIPを構築してみよう

4.1 基本の設定ファイル (/etc/keepalived/keepalived.conf)

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1

    authentication {
        auth_type PASS
        auth_pass secret
    }

    virtual_ipaddress {
        192.168.0.100
    }

    track_script {
        chk_http
    }
}

vrrp_script chk_http {
    script "curl -sf http://127.0.0.1/health || exit 1"
    interval 2
}
  • state:MASTER or BACKUP
  • priority:数値が大きいほどプライマリ候補
  • track_script:外部スクリプトで詳細監視

4.2 動作イメージ

  1. MASTER がVIPを持つ
  2. chk_http が失敗 → MASTERダウン
  3. BACKUP がMASTERを引き継ぎ → VIP移動
  4. サービスは止まらず継続!

5. クラウドネイティブ環境でのVIP相当

5.1 AWS の Elastic IP (EIP)

  • Elastic IP:固定IPをEC2にアタッチ/デタッチ可
  • 自動フェイルオーバーはサポート外 → Lambda等で実装が必要

5.2 AWS ELB / NLB

  • VIP相当の エンドポイント を提供
  • 内部的に負荷分散/ヘルスチェック → フェイルオーバーも自動

5.3 Azure Load Balancer / Public IP

  • 同様に冗長化機能付きのVIPを提供
  • SLA保証もあり、クラウド環境では基本的に自前でVIP管理不要

6. デメリット・注意点

  • 同一サブネット必須:VRRPはL2ブロードキャストが前提
  • 切り戻しタイミング:MASTER復帰時にフェイルバックが発生し、想定外のルーティング変化に注意
  • 監視のチューニング:過剰なスクリプト監視は誤検知を招く

7. まとめ

VIP(仮想IP)を使った冗長化は、シンプルかつ強力な高可用性構成です。

  • Keepalived 等を使えば短時間で導入可能
  • クラウド環境ではマネージドサービスを活用しよう
  • 障害発生時もサービスダウンを回避!

エンジニアでない方も、まずはローカルVMで手を動かして試してみるだけでも大きな学びになります。ぜひチャレンジしてみてくださいね。
また、高可用性の構成などは、クラウド環境が主流になりつつある昨今で常にトレンドの情報を気にすることで、BCPの点で周りの企業よりも信頼のあるインフラを構築することができます!

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次