ロードバランサーとは
ロードバランサーの概要を見ていきましょう。
サーバの負荷を分散させる装置
ロード(load)とは負荷のことです。例えば、Webサーバに大量のアクセスがあり、Webページの表示速度が遅くなっている状態は、ロードが高いといえます。
こうした状態を防ぐうえで有効なのが、外部からのトラフィック(通信)を複数のサーバに負荷分散させることです。そのための装置がロードバランサーで、負荷分散装置とも呼ばれます。Webサーバやキャッシュサーバの運用で広く使われています。
サーバの安定運用を実現する
ロードバランサーの役割は、サーバの拡張性と可用性を確保しレスポンスを向上させ、安定性の高いサービスを提供することです。具体的には、以下のことを実現します。
- 速度維持
- 複数のサーバに負荷を分散することで、リソース不足による速度低下を防ぎます。サーバの数が多いほど効果的です。
- メンテナンス中のサービス維持
- 通常、サーバのメンテナンス時にはサービスを停止しなければなりません。しかし、ロードバランサーを使えば、メンテナンス中のサーバ以外でサービスを維持できます。
- サーバダウン時のサービス維持
- ダウンしたサーバを避け、そのほかのサーバにユーザーを割り振る機能を備えています。
- ユーザー識別
- 同じユーザーは同一のサーバに割り振ることで、整合性の高いサービスを実現します。
ロードバランサーの仕組み
まず、ロードバランサーはユーザーのリクエストを一手に引き受けます。ロードバランサーに仮想IPアドレスが設定されており、ユーザーは一旦そこにアクセスするのです。そして、ロードバランサーは各サーバの状態を考慮し、リソースに余裕のあるサーバへユーザーを割り振ります。具体的には、サーバのIPアドレス宛にアクセスが送信されます。
では、ロードバランサーとDNSラウンドロビンはどう違うのでしょうか。DNSラウンドロビンも複数のサーバに負荷を分散するため、どちらも同じように見えます。しかし、ロードバランサーはサーバの状態を確認(死活監視)できる点でDNSラウンドロビンとは異なります。DNSラウンドロビンでは、異常のあるサーバを避けて割り振りできません。
そのため、ロードバランサーのほうがサービスの可用性を維持する能力が優れているといえます。
ロードバランサーの機能
ロードバランサーの主要機能は3つあります。それぞれ詳しく解説します。
パーシステンス
パーシステンスとは、同じユーザーからのアクセスを一定のサーバに割り振ることです。これにより、整合性の高い処理が実現します。
例えば、通販サイトにおける購入・決済の流れは、途切れさせるわけにはいきません。購入から決算まで、同じサーバで処理する必要があります。複数のサーバで負荷分散することで処理に支障が出ないよう、ロードバランサーはパーシステンスを備えています。
パーシステンスにはいくつかの方式があり、一般的に用いられるのは以下の2種類です。
- ■ユーザーの送信元IPアドレスを基に割り振る
- ■cookie情報により割り振る
ロードバランサーの冗長化
ロードバランサーはサービスを冗長化するためのシステムです。しかし、ロードバランサーに異常が生じればサービスを維持できません。そのため、ロードバランサー自体にも冗長化の仕組みが必要です。一般的には、2台のロードバランサーを用意することで冗長化構成が組まれています。
アプリケーションチェック
ロードバランサーは配下のサーバの死活監視を行い、異常のあるものを避けてアクセスを割り振ります。その際、ロードバランサーはサーバやネットワーク状況だけでなく、アプリケーションレベルでの監視もしています。そのため、不測のアプリケーションエラーなどにも対応可能です。
ただし、すべてのロードバランサーがこの機能を備えているわけではありません。中には、ネットワークレベルでのチェックしか行わないものもあります。製品選定時にはこの点にも注意したほうがよいでしょう。
ロードバランサーを使ってサーバの運用体制を改善しよう
ロードバランサーとは、複数のサーバに負荷を分散させる装置のことです。外部からのトラフィックを配下のサーバに割り振ります。過負荷によるサーバダウンを避け、インターネットサービスやWebサイトなどの安定的なサービス提供を実現します。
ロードバランサーの主要な機能は以下の3つです。
- ■パーシステンス
- ■ロードバランサー自体の冗長化
- ■アプリケーションチェック
なお最近では、インターネットを介して利用するクラウド型ロードバランサーも登場しています。導入しやすく利便性の高さが特徴です。ロードバウンサーの仕組みや機能を押さえたうえで、適切なサーバの運用体制を構築しましょう。