想像してみてください。午前2時、電話が鳴ります。『Webサーバー1ダウン』というアラート。心臓がドキドキしながらベッドから飛び起き、なぜアプリケーションに突然アクセスできなくなったのかを必死で突き止めようとします。まさに単一障害点が牙を剥き、手痛い打撃を受けたのです。ユーザーはエラーを目にし、あなたは火消しに追われます。心当たりはありませんか?
ロードバランサーは、ダウンタイムに対する最初の防衛線であり、バックエンドサーバーが予期せず障害を起こした場合でも、アプリケーションがオンラインであり続けることを保証します。トラフィックを分散する以上の役割を果たすのです。本日は、HAProxyとNginxという2つの堅牢なツールを使用して、WebアプリケーションのHigh Availability (HA) を設定する方法を順を追って説明します。
クイックスタート (5分): 基本的なHAProxyロードバランサーの実行
インシデントが発生した際、迅速な修正が最優先されます。ここでは、2つのバックエンドWebサーバー間でトラフィックを分散する基本的なHAProxyセットアップを迅速に実行する方法を紹介します。この例では、192.168.1.101:80 と 192.168.1.102:80 で2つのWebサーバー (NginxやApacheなど) がすでに稼働しており、HAProxyサーバーは 192.168.1.100 に配置されていると仮定します。
ステップ1: HAProxyのインストール
ロードバランサーサーバー (192.168.1.100) 上で:
sudo apt update
sudo apt install haproxy -y
RHEL/CentOSシステムの場合、sudo yum install haproxy -y または sudo dnf install haproxy -y を使用します。
ステップ2: HAProxyの設定
HAProxyの設定ファイルを開きます: sudo nano /etc/haproxy/haproxy.cfg
既存の内容を削除またはコメントアウトし、この最小限の設定を追加します:
frontend web_frontend
bind *:80
mode http
default_backend web_servers
backend web_servers
mode http
balance roundrobin
server web1 192.168.1.101:80 check
server web2 192.168.1.102:80 check
簡単な内訳です:
frontend web_frontend: このセクションは、受信リクエストのエントリポイントを定義します。bind *:80: HAProxyは、利用可能なすべてのネットワークインターフェースのポート80で接続をリッスンします。mode http: HAProxyはレイヤー7(HTTPレイヤー)で動作し、高度なHTTP固有のルーティングを可能にします。default_backend web_servers: このフロントエンドが受信するすべてのトラフィックは、web_serversバックエンドプールに転送されます。backend web_servers: これは、クライアントリクエストを処理する実際のWebサーバーのグループを定義します。balance roundrobin: トラフィックは順次分散され、バックエンドプール内の各サーバーにリクエストが1つずつ送信されます。server web1 ... check: この行は、特定のバックエンドサーバーを定義し、その可用性を監視するための継続的なヘルスチェックを有効にします。
ステップ3: HAProxyの有効化と起動
sudo systemctl enable haproxy
sudo systemctl start haproxy
sudo systemctl status haproxy
ステップ4: セットアップのテスト

