ロードバランサ
ロードバランサ (Load Balancer, LB, ロードバランサー)とは、負荷分散装置です。冗長化としても利用される機器です。
読み方
- ロードバランサ
- ろーどばらんさ
- load balancer
- ろーどばらんさ
- LB
- えるびー
- 負荷分散装置
- ふかぶんさんそうち
概要
たとえば、ウェブサーバが1台で処理できるリクエストの量は、有限です。1台で捌き切れない量のリクエストを捌くためにには、より高速なサーバを用意するか(スケールアップ)、複数のウェブサーバを用意する(スケールアウト)、のどちらかになります。
ウェブサーバを増やすには、ドメインに複数のサーバを追加し、DNSラウンドロビンで負荷分散するというのも方法の1つです。
ロードバランサと呼ばれるネットワーク機器を利用することも1つの方法です。ロードバランサに複数のサーバをつなぐことにより、負荷を分散して処理できます。ロードバランシング(リクエストの割り当て)は、純粋に、均等にリクエストを割り振ったり、重み付けをして割り振ることなどが可能です。
スペックの異なる機器を並べたときに、性能を考慮せずに、リクエストを割り振ってしまうと、リクエストが大量に来た時に、一番性能が劣った機器の処理が追いつかなくなってしまいます。そういったときに、重み付けで、リクエストを減らし、スループットのバラ付きをでなくするようにできます。
ロードバランサを利用するときに、Virtual IP address(バーチャルIPアドレス)を利用します。ロードバランサに割り当てたIPアドレスを、ロードバランサにぶら下げたサーバにも割り当て、ロードバランサ宛のリクエストを処理するようにします。
例では、ウェブサーバと言いましたが、ロードバランサは、ウェブサーバだけに使われるものではなく、MySQLなどのSQLのサーバに対しても有効です。
死活監視
ロードバランサは、サーバの死活監視機能を持っています。通信ができないサーバは、自動的に切り離し、リクエストを送らないようにします。
ロードバランサからサーバを外す
ウェブサーバであれば、ヘルスチェック用のHTMLが取得できるかで、ヘルスチェックを行えます。ヘルスチェック用のHTMLが取得できなければ、ロードバランサは、自動的に切り離し、リクエストを送信しない、といったことができます。これは、メンテナンスのために、ロードバランサから外したいときに利用できる機能です。
ロードバランサから外すことで、リクエストがこなくなるため、メンテナンスが可能になります。ロードバランサから送られたリクエストの処理が完了するまで、サービスを止めてはなりません。
- ロードバランサから外す
- ロードバランサから外す前に届いているリクエストが完了するのとを待つ
- リクエストが来ないことを確認する
- メンテナンス開始OK
冗長化
複数のサーバをぶら下げることにより、冗長化になります。10台のうちの1台が停止しても、その1台にリクエストを送信することをやめ、残りの9台でサービスを継続できます。
ロードバランサなしで、1台の構成の場合、1台のサーバが死んだ場合、サービス不能になります。ロードバランサで複数のサーバを利用することで、数台が落ちたとしても、サービスは継続できます。 冗長化のためには、1台が停止したら、サービスが維持できなくなる構成では意味がありません。1台以上のサーバが停止したことを考慮して、構成を決定するべきです。いったい、何台が落ちたら諦めるのか、というのは、サービスによるので、サービスの重要度に応じて、可用性をしっかり考える必要があります。
関連項目
ツイート