ロードバランサーの設定の選び方と注意点【2026年最新版】

ロードバランサーの設定は、システムのパフォーマンスと可用性を左右する重要な要素です。適切な設定を行わないと、サーバー負荷の偏りや障害発生時の対応遅延につながります。本記事では、ロードバランサーの設定選びで重視すべきポイントと具体的な実装方法について、2026年現在の技術動向を踏まえて解説します。サーバー管理者やクラウドエンジニアの方は、ぜひ参考にしてください。

目次

ロードバランサーの基本と設定の重要性
ロードバランサー設定の選び方5つの基準
負荷分散アルゴリズムの選定
ヘルスチェックの設定方法
SSL/TLS終端の最適化
セッション維持の戦略
スケーリングとの連携設定
主要クラウドサービスの設定比較
設定時のよくあるミスと回避方法
セキュリティ設定のベストプラクティス
監視とログの設定
ロードバランサー設定に関するFAQ
まとめ:最適な設定を実現するために

ロードバランサーの基本と設定の重要性

ロードバランサーは、複数のサーバーに対してクライアントからのリクエストを分散させるネットワーク機器またはソフトウェアです。適切な設定を行うことで、以下のメリットを得られます。

システムの可用性向上: 障害発生時でもサービスを継続
パフォーマンス最適化: リクエスト処理の並列化によるレスポンス向上
柔軟なスケーリング: トラフィック増加に応じたリソース拡張
セキュリティ強化: DDoS攻撃や不正アクセスの緩和

クラウドサービスを利用する企業の多くがロードバランサーを導入しており、複数のクラウドサービス間で負荷分散を行うケースも増えています。

ロードバランサーの設定は、単に「リクエストを分散させる」だけでなく、ビジネス要件や技術要件に応じた最適化が求められます。例えば、ECサイトではセッション維持が重要ですが、APIサーバーではステートレスな処理が求められます。このように、用途に応じた設定が不可欠です。

ロードバランサー設定の選び方5つの基準

ロードバランサーの設定を決定する際は、以下の5つの基準を重視してください。

1. 負荷分散アルゴリズムの選定

負荷分散アルゴリズムは、リクエストをどのように分散させるかを決定する重要な要素です。代表的なアルゴリズムとその特徴を以下の表にまとめます。

アルゴリズム名動作原理メリットデメリット適した用途
ラウンドロビンリクエストを順番に各サーバーに振り分けるシンプルで実装が容易サーバー性能に差があると負荷が偏る均一な処理能力のサーバー群
重み付きラウンドロビンサーバーごとに重み付けを行い、重みに応じて振り分けるサーバー性能の違いを考慮できる重みの設定が難しい性能が異なるサーバー群
最小接続数現在の接続数が最も少ないサーバーに振り分けるリアルタイムの負荷状況に応じた分散が可能接続数が多いサーバーでも処理能力が高い場合に不適処理時間が長いリクエスト
IPハッシュクライアントのIPアドレスをハッシュ化して振り分ける同一クライアントからのリクエストを同一サーバーに振り分け可能特定のサーバーに負荷が集中する可能性ありセッション維持が必要なアプリケーション
最小レスポンスタイムレスポンス時間が最も短いサーバーに振り分ける実際の処理能力に基づく分散が可能レスポンス時間の計測にオーバーヘッドが発生レスポンス時間が重要なアプリケーション

選定のポイント:
均一な処理能力のサーバー群: ラウンドロビンか重み付きラウンドロビン
処理時間が長いリクエスト: 最小接続数
セッション維持が必要: IPハッシュ
レスポンス時間が重要: 最小レスポンスタイム

2. ヘルスチェックの設定方法

ヘルスチェックは、ロードバランサーがサーバーの健康状態を監視し、障害発生時に自動的にサーバーを切り離す機能です。適切なヘルスチェック設定は、システムの可用性を大きく向上させます。

ヘルスチェックの種類と設定方法:

1. HTTP/HTTPSヘルスチェック
– 対象: Webサーバー
– 設定項目:
– 監視URL(例: `/health`)
– 期待されるHTTPステータスコード(例: `200 OK`)
– タイムアウト時間(例: `5秒`)
– 間隔(例: `30秒`)

2. TCPヘルスチェック
– 対象: データベースサーバーやメールサーバー
– 設定項目:
– ポート番号(例: `3306` for MySQL)
– タイムアウト時間(例: `2秒`)
– 間隔(例: `15秒`)

3. カスタムヘルスチェック
– 対象: アプリケーション固有の状態監視
– 設定項目:
– カスタムスクリプトの実行
– データベース接続テスト
– 外部APIの応答確認

設定のベストプラクティス:
間隔: 一般的には15〜60秒が推奨されます。高頻度の監視はサーバーに負荷をかけるため注意が必要です。
タイムアウト: サーバーの応答時間よりも短く設定します。例えば、サーバーの平均応答時間が1秒の場合、タイムアウトは2秒に設定します。
再試行回数: 通常は2〜3回の再試行を行います。1回の失敗で即切り離しを行うと、一時的な負荷上昇でサーバーが切り離される可能性があります。

注意事項:
– ヘルスチェックのエンドポイントは、軽量な処理で応答できるように設計します。例えば、データベース接続テストを行う場合は、実際のクエリではなく、接続のみを確認する軽量なエンドポイントを用意します。
– クラウドサービスのロードバランサー(例: AWS ALB、GCP LB)では、ヘルスチェックの設定がGUIで簡単に行えますが、カスタムヘルスチェックを行う場合は、アプリケーション側で対応する必要があります。

3. SSL/TLS終端の最適化

SSL/TLS終端は、ロードバランサーで暗号化通信を終了し、内部ネットワークでは平文で通信を行う設定です。この設定により、サーバーの負荷を軽減し、パフォーマンスを向上させることができます。

SSL/TLS終端のメリット:
– サーバーの暗号化処理負荷を軽減
– SSL証明書の一元管理が可能
– 内部ネットワークのパフォーマンス向上

設定のポイント:

1. 証明書の管理
– ロードバランサーにSSL証明書をアップロードします。
– 証明書はPEM形式またはPKCS#12形式でアップロードします。
– 複数のドメインを扱う場合は、SNI(Server Name Indication)を有効にします。

2. 暗号スイートの選定
– 現在では、TLS 1.2以上が推奨されています。
– 強力な暗号スイートを選択します。例えば、以下のような設定が一般的です。
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256

3. 暗号化通信の設定
– ロードバランサーとクライアント間の通信はHTTPS(HTTP over TLS)で行います。
– 内部ネットワークの通信はHTTPで行うことで、サーバーの負荷を軽減します。

注意事項:
– SSL/TLSの設定は定期的に見直し、脆弱な暗号スイートやプロトコルが使用されていないか確認します。
– クラウドサービスのロードバランサーでは、SSL証明書の自動更新機能を利用することで、証明書の有効期限切れを防ぐことができます。

4. セッション維持の戦略

セッション維持は、同一のクライアントからのリクエストを同一のバックエンドサーバーに振り分ける機能です。Webアプリケーションでは、セッションデータをサーバー側で管理する場合に必要となります。

セッション維持の方法:

1. Cookieベース
– ロードバランサーがセッションIDを含むCookieを発行し、同一サーバーに振り分けます。
– 設定例(AWS ALBの場合):
Stickiness.enabled = true
Stickiness.lb_cookie.duration_seconds = 86400

2. IPハッシュベース
– クライアントのIPアドレスをハッシュ化して、同一サーバーに振り分けます。
– 設定例(Nginxの場合):
nginx
upstream backend {
ip_hash;
server 192.168.1.1;
server 192.168.1.2;
}

3. アプリケーション側での管理
– アプリケーション側でセッションIDを発行し、ロードバランサーはそのIDに基づいて振り分けます。
– 例: RedisやMemcachedを使用したセッションストア

選定のポイント:
ステートレスなアプリケーション: セッション維持は不要です。負荷分散アルゴリズムはラウンドロビンや最小接続数を使用します。
ステートフルなアプリケーション: セッション維持が必要です。CookieベースかIPハッシュベースを選択します。

注意事項:
– セッション維持を行う場合、特定のサーバーに負荷が集中する可能性があります。そのため、サーバーのスケーリングやヘルスチェックの設定を見直す必要があります。
– Cookieベースのセッション維持では、Cookieの有効期限を適切に設定します。長すぎる有効期限はセキュリティリスクとなります。

5. スケーリングとの連携設定

ロードバランサーは、スケーリング(スケールアウト/スケールアップ)と連携して動作します。適切な連携設定により、トラフィックの増加に柔軟に対応できます。

スケーリングとの連携方法:

1. オートスケーリングとの連携
– クラウドサービスのオートスケーリング機能と連動させ、トラフィックの増加に応じてサーバーを自動的に追加/削除します。
– 例(AWSの場合):
– CloudWatchアラームでCPU使用率が80%を超えた場合にスケールアウト
– CPU使用率が30%以下が10分間継続した場合にスケールイン

2. ロードバランサーの設定
– オートスケーリングで追加されたサーバーを自動的にロードバランサーのターゲットグループに追加します。
– 設定例(AWS ALBの場合):
Target Group:
– Protocol: HTTP
– Port: 80
– Health Check Path: /health
– Auto Scaling Group: my-asg

3. Blue-Greenデプロイメント
– 新しいバージョンのアプリケーションを別のサーバーグループにデプロイし、ロードバランサーでトラフィックを切り替えます。
– 設定例(AWS ALBの場合):
Listener Rule:
– Priority: 1
– Condition: Path is /v2/*
– Action: Forward to target group v2

設定のベストプラクティス:
ヘルスチェックの設定: 新しく追加されたサーバーが正常に動作していることを確認するため、ヘルスチェックを迅速に実行します。
セッション維持の考慮: Blue-Greenデプロイメントを行う場合、セッション維持が必要なアプリケーションでは、新しいバージョンのサーバーでもセッションデータを引き継ぐ仕組みが必要です。
キャッシュの考慮: CDNやアプリケーションレベルのキャッシュを活用し、スケーリング時の負荷を軽減します。

主要クラウドサービスの設定比較

主要なクラウドサービスにおけるロードバランサーの設定方法を比較します。各サービスの特徴を理解し、ニーズに合ったサービスを選択してください。

サービス名タイプ主な機能設定の特徴料金体系
AWS Elastic Load Balancer (ELB)Application Load Balancer (ALB)
Network Load Balancer (NLB)
Gateway Load Balancer (GWLB)
  • HTTP/HTTPS負荷分散
  • WebSocketサポート
  • オートスケーリング連携
  • WAF統合
  • GUIとCLIで設定可能
  • ターゲットグループ単位でヘルスチェック設定
  • SSL/TLS終端はALBでのみサポート
  • ALB/NLB: 時間あたり$0.0225 + 使用したLCUあたり$0.008
  • GWLB: 時間あたり$0.0225 + 処理したデータ量あたり$0.008
Google Cloud Load BalancingGlobal HTTP(S) Load Balancing
TCP Load Balancing
UDP Load Balancing
  • グローバル負荷分散
  • CDN統合
  • オートスケーリング連携
  • Cloud ArmorによるDDoS保護
  • グローバルな負荷分散が可能
  • HTTP(S)負荷分散ではSSL/TLS終端が可能
  • 設定はGUIとgcloud CLIで行う
  • HTTP(S)負荷分散: $0.025/GB + $18/月(固定費)
  • TCP/UDP負荷分散: $0.025/GB + $18/月(固定費)
Microsoft Azure Load BalancerBasic Load Balancer
Standard Load Balancer
Application Gateway
  • TCP/UDP負荷分散
  • SSL/TLS終端(Application Gateway)
  • オートスケーリング連携
  • DDoS Protection統合
  • Basicは無料、Standardは有料
  • Application GatewayはHTTP/HTTPS負荷分散に特化
  • 設定はAzure PortalとAzure CLIで行う
  • Standard Load Balancer: $0.0225/時間 + $0.008/LCU
  • Application Gateway: $0.0225/時間 + $0.008/LCU + 処理データ量あたり$0.005
F5 BIG-IPハードウェア/ソフトウェアロードバランサー
  • 高度な負荷分散機能
  • SSL/TLS終端
  • アプリケーションファイアウォール
  • マルチクラウド対応
  • 豊富な機能をGUIで設定可能
  • iRuleを使用したカスタムロジックの実装が可能
  • ハードウェアとソフトウェアの両方で提供
  • ライセンスに応じた料金体系(例: VE(仮想 Edition)は年間$5,000〜)

選定のポイント:
グローバルな負荷分散が必要: Google Cloud Load Balancing
高度なセキュリティ機能が必要: F5 BIG-IP
コストパフォーマンスを重視: AWS ELBまたはAzure Load Balancer
HTTP/HTTPS負荷分散が主: AWS ALB、Google Cloud HTTP(S) Load Balancing、Azure Application Gateway

注意事項:
– 各クラウドサービスのロードバランサーは、ベンダー固有の機能を持っています。例えば、AWS ALBはWebSocketをサポートしていますが、Google CloudのTCP Load BalancingはWebSocketをサポートしていません。
– SSL/TLS終端を行う場合、ロードバランサーの種類によって対応状況が異なります。必ず公式ドキュメントを参照してください。

設定時のよくあるミスと回避方法

ロードバランサーの設定ミスは、システムのパフォーマンス低下やセキュリティリスクにつながる可能性があります。以下に、よくあるミスとその回避方法をまとめます。

1. 不適切なヘルスチェック間隔とエンドポイント

ミス:
– ヘルスチェックの間隔が短すぎて、サーバーに負荷をかける
– ヘルスチェックのエンドポイントが重い処理を行っており、応答が遅い

回避方法:
– ヘルスチェックの間隔は15〜60秒に設定します。
– ヘルスチェックのエンドポイントは、軽量な処理で応答できるように設計します。例えば、データベース接続テストを行う場合は、実際のクエリではなく、接続のみを確認する軽量なエンドポイントを用意します。

2. SSL/TLSの設定不備

ミス:
– 古い暗号スイートやプロトコル(TLS 1.0、SSLv3)を使用している
– SSL証明書の有効期限が切れている

回避方法:
– SSL/TLSの設定は定期的に見直し、脆弱な暗号スイートやプロトコルが使用されていないか確認します。
– SSL証明書の自動更新機能を利用することで、証明書の有効期限切れを防ぐことができます。

3. セッション維持の不適切な設定

ミス:
– セッション維持を行う必要がないアプリケーションでCookieベースのセッション維持を設定している
– セッション維持を行う場合に、特定のサーバーに負荷が集中する

回避方法:
– アプリケーションがステートレスかステートフルかを確認し、必要に応じてセッション維持を設定します。
– セッション維持を行う場合は、負荷分散アルゴリズムやサーバーのスケーリングを適切に設定します。

4. 不適切な負荷分散アルゴリズムの選択

ミス:
– サーバーの性能に差があるにもかかわらず、ラウンドロビンを使用している
– 処理時間が長いリクエストに対して、最小接続数を使用していない

回避方法:
– サーバーの性能に差がある場合は、重み付きラウンドロビンを使用します。
– 処理時間が長いリクエストに対しては、最小接続数を使用します。

5. 不適切なスケーリング設定

ミス:
– オートスケーリングのトリガーが適切に設定されていない
– 新しく追加されたサーバーが正常に動作しているか確認されていない

回避方法:
– オートスケーリングのトリガーは、CPU使用率やメモリ使用率など、システムの状態に応じて設定します。
– 新しく追加されたサーバーが正常に動作していることを確認するため、ヘルスチェックを迅速に実行します。

セキュリティ設定のベストプラクティス

ロードバランサーは、システムの入り口としてセキュリティ対策が重要です。以下に、セキュリティ設定のベストプラクティスをまとめます。

1. SSL/TLSの強化

プロトコルの制限: TLS 1.2以上のみを許可します。TLS 1.0やSSLv3は脆弱性があるため使用しないでください。
暗号スイートの制限: 強力な暗号スイートのみを許可します。例えば、以下のような設定が推奨されます。
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256

SSL証明書の管理: SSL証明書は定期的に更新し、有効期限が切れないようにします。クラウドサービスのロードバランサーでは、自動更新機能を利用できます。

2. DDoS対策

レート制限: 不正なリクエストを制限するため、レート制限を設定します。例えば、1秒あたりのリクエスト数を制限します。
WAFの導入: Web Application Firewall(WAF)を導入し、SQLインジェクションやXSSなどの攻撃を検知・防御します。
– AWS: AWS WAF
– Google Cloud: Cloud Armor
– Azure: Azure Web Application Firewall
グローバルサーバーロードバランシング: 複数のリージョンにロードバランサーを配置し、DDoS攻撃を分散させます。

3. アクセス制御

IP制限: 特定のIPアドレスからのアクセスのみを許可します。例えば、社内ネットワークからのアクセスのみを許可する場合に使用します。
認証の導入: ロードバランサーで基本認証やクライアント証明書認証を導入します。ただし、これは内部システムや管理画面に限定して使用します。
セキュリティグループの設定: クラウドサービスのセキュリティグループを使用して、ロードバランサーからバックエンドサーバーへのアクセスを制限します。

4. ログと監視

アクセスログの収集: ロードバランサーのアクセスログを収集し、不正なアクセスや攻撃を検知します。
監視ダッシュボードの設定: CPU使用率、メモリ使用率、リクエスト数などの監視項目を設定し、異常を検知します。
アラートの設定: 異常なトラフィックや攻撃を検知した場合に、アラートを発報します。

5. セキュリティパッチの適用

ロードバランサーのソフトウェア: ロードバランサーのソフトウェア(例: F5 BIG-IP、Nginx)は定期的にアップデートし、セキュリティパッチを適用します。
バックエンドサーバー: バックエンドサーバーのOSやミドルウェアも定期的にアップデートします。

注意事項:
– セキュリティ設定は、システムの要件やリスク許容度に応じて適切に設定します。過剰なセキュリティ設定はパフォーマンスの低下につながる可能性があります。
– セキュリティ設定は定期的に見直し、新たな脅威に対応できるようにします。

監視とログの設定

ロードバランサーのパフォーマンスとセキュリティを維持するためには、適切な監視とログの設定が不可欠です。以下に、監視とログの設定方法について解説します。

1. 監視項目の設定

ロードバランサーの監視項目は、以下のカテゴリに分類されます。

カテゴリ監視項目目的
パフォーマンスリクエスト数トラフィックの傾向を把握し、スケーリングの判断材料とする
レスポンスタイムシステムの応答性能を評価する
エラー率障害や不具合の発生を検知する
接続数同時接続数の上限を把握し、リソース不足を防ぐ
可用性ヘルスチェックの成功/失敗サーバーの健康状態を監視する
サーバーの稼働状況ロードバランサーに登録されているサーバーの稼働状況を監視する
障害発生時の切り替え時間障害発生時のフェイルオーバー時間を評価する
セキュリティ不正なリクエスト数DDoS攻撃や不正アクセスの検知に役立てる
SSL/TLSの失敗数SSL/TLSの設定不備や証明書の問題を検知する
アクセス元IPアドレス不審なIPアドレスからのアクセスを検知する

2. 監視ツールの選定

主要な監視ツールとその特徴を以下にまとめます。

ツール名タイプ主な機能特徴
Prometheusオープンソース
  • 時系列データの収集と保存
  • アラート機能
  • Grafanaとの連携
  • 柔軟な設定が可能
  • 豊富なエクスポーター(Exporter)が利用可能
  • クラウドネイティブな環境に適している

ロードバランサー設定に関するFAQ

ロードバランサーの設定に関するよくある疑問や実務的なポイントについて、具体的な質問と回答をまとめました。導入や運用時の参考としてご活用ください。

Q1. ロードバランサーの種類(レイヤー4とレイヤー7)はどのように使い分ければよいですか?

ロードバランサーは主にレイヤー4(L4)とレイヤー7(L7)に分類されます。L4はTCP/UDPレベルでトラフィックを分散させるため、処理速度が速く、暗号化(SSL/TLS)をバックエンドサーバーで行う場合に適しています。一方、L7はHTTP/HTTPSなどのアプリケーション層でリクエストを分散させ、URLパスやヘッダーに基づくルーティングが可能です。例えば、静的コンテンツと動的コンテンツで異なるサーバーグループに振り分ける場合はL7が有効です。用途に応じて使い分け、必要に応じて両者を組み合わせることも検討しましょう。

Q2. ロードバランサーのヘルスチェックで注意すべきポイントは何ですか?

ヘルスチェックは、バックエンドサーバーの稼働状況を監視し、障害時には自動的にトラフィックを切り離すために重要です。設定時には、チェック間隔(間隔が短すぎると負荷が高くなる)、タイムアウト(サーバー応答が遅い場合の判定時間)、正常/異常の閾値(連続で失敗した回数)を適切に設定します。また、ヘルスチェック用のエンドポイントは、サーバーの負荷を考慮して軽量な処理にすることが望ましいです。例えば、専用の「/health」エンドポイントを用意し、データベース接続などの重い処理を避ける工夫が必要です。

Q3. ロードバランサーのSSL/TLS終端を設定する際の注意点は?

SSL/TLS終端をロードバランサーで行う場合、暗号化処理の負荷がバックエンドサーバーからロードバランサーに移ります。このため、ロードバランサーの処理能力や暗号スイートの選定が重要になります。一般的に、最新の暗号スイート(例:TLS 1.2/1.3)を使用し、古いプロトコル(SSLv3、TLS 1.0)は無効化します。また、証明書の管理方法(更新サイクルや複数ドメインの扱い)も考慮が必要です。バックエンドサーバーとロードバランサー間は内部ネットワークで安全に接続し、暗号化されていない通信が外部に漏れないようにします。

Q4. ロードバランサーの設定変更後に発生する可能性のあるトラブルとその対処法は?

ロードバランサーの設定変更後には、トラフィックの分散不均衡やサーバーへの過負荷、ヘルスチェックの誤判定などが発生する可能性があります。例えば、新しいルーティングルールの適用後に特定のサーバーにのみトラフィックが集中し、レスポンスが遅くなるケースがあります。このような場合は、設定のロールバックや段階的な適用、監視ツールを用いたトラフィックの可視化を行います。また、設定変更前には必ずバックアップを取得し、変更履歴を管理することで、問題発生時の迅速な復旧が可能になります。

まとめ:最適な設定を実現するために

ロードバランサーの設定を選ぶ際には、まずシステムの要件やトラフィックの特性を正確に把握することが重要です。例えば、HTTP/HTTPSのトラフィックが多い場合は、レイヤー7(アプリケーション層)のロードバランシングが適しており、TCP/UDPベースのトラフィックにはレイヤー4(トランスポート層)が向いています。また、負荷分散方式としては、ラウンドロビンや最少接続数、重み付けなど、目的に応じた方法を選択する必要があります。これらの選択肢を適切に組み合わせることで、システム全体のパフォーマンスや可用性を高めることができます。

一方で、ロードバランサーの設定には注意点も多く存在します。例えば、ヘルスチェックの設定を適切に行わないと、障害が発生したサーバーにトラフィックが振り分けられ続けるリスクがあります。また、SSL/TLSの終端処理や暗号化方式の選択によっては、セキュリティやパフォーマンスに影響を与えることもあります。さらに、冗長構成やフェイルオーバーの仕組みを整備しておくことで、障害時の迅速な対応が可能になります。これらのポイントを押さえながら、定期的な見直しやテストを実施することで、より堅牢なシステムを構築することができるでしょう。

【編集・制作ポリシー】
本記事はInfra Academy編集部が各ベンダー公式ドキュメント・エンジニア監修をもとに作成しています。インフラ・クラウド構築は環境により異なります。本番環境への適用前に必ずテストを実施してください。情報の正確性には万全を期していますが、最新情報は各公式ドキュメントをご確認ください。 編集ポリシーはこちら
ABOUT ME
たから
フリーランスIT講師/エンジニア。 ◆経験:IT講師/インフラエンジニア/PM/マネジメント/採用/運用・保守・構築・設計 ◆取得資格:CCNA/CCNP/LPIC-1/AZ-900//サーティファイC言語/情報処理技術者 ◆サイドビジネス:アパレル事業/複数のWEBメディアを運営