ロードバランサー(負荷分散装置)とは?
Webサーバーを冗長化してアクセスを振り分けることができる装置です。Webサーバとは別のサーバに負荷分散装置を立てておいて利用者からのアクセスは一旦そこに来るようにします。負荷分散装置が適切なサーバにアクセスを振り分けてくれます。
昔はハードウェアで実装されていることが多かったのですが、今はAWSのELBに代表されるようにソフトウェアでアクセスの負荷分散をすることが多くなっています。
ロードバランサー(負荷分散装置)の冗長化
負荷分散装置自体も冗長化をしたりします。アクティブ/スタンバイ方式で1つのIPアドレスを共有する方式(「仮想IPアドレス」と呼びます。)が多いでしょう。
その他のメリット
ロードバランサーでSSLアクセラレーターを使う
本来サーバーごとに必要なSSL証明書を1本化できたり、暗号化通信の負荷を軽減できます。
ダウンしたサーバーへ通信を送らない。
DNSラウンドロビン等でも負荷分散はできますが、ダウンしたサーバへもアクセスを転送する可能性があります。そうした心配がありません。
サーバーのメンテナンスが容易になる。
メンテナンス中でダウンしているサーバへアクセスを転送しないようにすればユーザーへメンテナンス告知する必要もなくなります。
セキュリティレベルの向上
一旦、ロードバランサーが受けることでセキュリティ的に良いです。例えば、DDos攻撃から守る役割もあります。
ロードバランサーの処理の流れ
ロードバランサーは下記のように負荷分散ですが、仲介役として動いています。
- クライアントからのアクセスをロードバランサーがキャッチする。
- ロードバランサーが各Webサーバにアクセスを振り分ける。
- Webサーバはロードバランサーに結果を応答する。
- ロードバランサーはクライアントに結果を応答する。
ロードバランサーの注意点
各Webサーバに割り振るパケットを割り振る際に、送信元IPアドレスをアクセス元のPCからロードバランサのIPアドレスに書き換えてしまいます。なので、障害調査等でWebサーバー側からどのPCからのアクセスかを判断することができなくなります。LBのログを見てどのPCからのアクセスがどの時間に来たのかを確認する必要があります。
ロードバランサーのアルゴリズム
様々な処理順番割り当てのアルゴリズムがあります。
ラウンドロビン
順番にリクエストを割り当てていく方式です。
加重ラウンドロビン
サーバーの処理能力に応じて順番にリクエストを割り当てていく方式です。
この記事へのコメントはありません。