質問: 最近、(というより少し前から)ロードバランサーという言葉を聞くようになりました。 負荷分散ということで一度ロードバランサーにアクセスさせ、その後の処理を振り分けるといったイメージです。 バックエンドのサーバーはいくつかあると思うのですが、ロードバランサーは1つですよね? そもそもアクセスのゲートウェイ部分であるロードバランサーにアクセスが集中してダウンするということは無いのでしょうか?
回答: こんにちは。 Webサイトには、想定以上のアクセスが集中した場合にも安定した通信とサービスの提供が求められます。 この課題に対処するために開発されたのがロードバランサです。具体的には複数の Webサーバにアクセスを分散させ、通信を維持し、サービスを提供します。 ただし、たんに Webサーバへの負荷を分散させるだけであれば、(DNSサーバの設定を工夫して、ひとつのホスト名への名前解決に複数の IPアドレスを使って応答することで Webサーバへのアクセスを分散させる)DNSラウンドロビンという方法もあります。 そう考えると、わざわざ高価なロードバランサを導入する必要はなさそうです。それにもかかわらず、ロードバランサが普及しているのは、サービスダウンを回避する仕組みがあるからです。 ロードバランサは、配下にある Webサーバが正常に稼働しているかどうかつねに監視していて、なんらかの異常が検知されたサーバには処理を割り振らず、べつの正常なサーバに割り振るという重要な役割も担っています。 つまり、こうした冗長化により、アクセスの集中にも(一部の)サーバダウンにもロードバランサは対応できるようになっているのです。 ここで、ご質問の件です。 高度な機能を搭載し、さまざまな機器を冗長化することができるロードバランサももちろん無敵なわけではありません。膨大な量のアクセスによりロードバランサ自体がダウンし、Webサイト全体が停止状態に陥ることはあり得るのです。 そのため、かなりのアクセスが想定される Webサイトの場合には、(設計当初から)ロードバランサを複数台用意し、いずれかが障害を起こしてもサービスが継続できるよう冗長化が施されているケースが増えています。 以上、ご参考いただければ幸いです。