Category: 入門編
2020.07.23
目次
はじめに
インターネットサービスを運営する上で、アクセスが集中してシステムがダウンしたり、サーバーが故障して緊急停止したりするなどのアクシデントは起こりがちです。そのようなときに運用を止める時間を短く抑え、早期復旧する方法の整備は企業にとっての重要な課題といえます。
その対策の1つとしてロードバランサーを導入する手段があります。
ロードバランサーは複数のサーバーを冗長化し、負荷を分散させることができるので、導入を検討しているという方もいらっしゃるでしょう。
そこで今回は、ロードバランサーの仕組みやDNSラウンドロビンとの違いについて解説します。
ロードバランサーとは
アルゴリズムによってWebサイトへのアクセスを振り分ける機械をロードバランサーといいます。英語の「load(負荷)」+「Balancer(釣り合いをとるためのもの)」が由来で、負荷分散装置とも呼ばれています。
ロードバランサーを使うとアクセスの安定性が向上するだけでなく、不具合の発生した機器を自動的に検知してほかのサーバーへ振り分けるので、システムのダウンを防ぐ効果も期待できます。
ロードバランサーの仕組み
通常、Webサイトにアクセスが生じた場合、1台のサーバーがリクエストの100%を処理します。しかし、ロードバランサーを使うとアクセスを複数のサーバーに分割して処理することができます。
例えば100アクセス分のリクエストが発生したとき、通常では100アクセスすべての処理を行なうところ、ロードバランサーでは2台のWebサーバーに交互にアクセスを割り振ることで、1台あたりのWebサーバーの負荷は50アクセスに低下させます。こうして負荷を分散させ、レスポンスを向上させます。
ロードバランサーは、インターネットから受け取ったアクセスをすべて集約してからどのサーバーに割り振るかを決定します。送信先は各サーバーに割り当てられたIPアドレスで、ロードバランサー自身には仮想IPアドレスが設定されています。
負荷分散を行なう方法には「L4」と「L7」の2種類があります。IPアドレスやポート番号を利用する方法がL4、URLなどを参照する方法がL7です。
DNSラウンドロビンとの違い
機械を使わずに負荷分散を行なう方法がDNSラウンドロビンです。端末から送信されたアクセスのリクエストに対して、1個のドメインに割り当てた複数のIPアドレスが順番に応答します。この性質を使っていくつものサーバーに接続を分散させるので、トラフィックの集中を回避できます。
DNSラウンドロビンはDNSサーバーの構成設定を変更することで実現できるため、機器を用意しなければならないロードバランサーに比べて導入のハードルは低いといえます。ただし、DNSが機械的に異なるIPアドレスを返すだけなので、総じて非効率な負荷分散になりがちです。
また、DNSラウンドロビンはリクエストのたびに毎回異なる接続先を指定する性質から、同じサーバーに連続して接続できないため、同一のセッション継続が困難になってしまうという欠点もあります。また、サーバーの故障を検知できないので、機能を失ったサーバーに対する振り分けを自動的に停止できない点もデメリットといえるでしょう。
ロードバランサーの役割
ここではロードバランサーの役割について3つ、ご紹介します。
システムダウンを防ぐ
ロードバランサーは負荷分散をして過剰なアクセス集中を防ぎ、システムダウンを抑制します。また、故障が疑われるサーバーの切り分けを自動的に行うため、ユーザーはアクセス不能になったサーバーを利用することがなくなります。
故障したサーバーのメンテナンスを行ないながら、問題のないほかのサーバーを使ってサービスを継続して提供できるなど、システムの可用性を高めることができます。
速度低下を最小限に抑える
ロードバランサーはサーバーの負荷を均等に分け合うので、CPUやメモリなどリソースの効率的な活用が可能になります。1台あたりの負荷を下げるので処理が高速になり、ページの表示速度の低下を防いでくれます。
ページの表示に時間がかかると、ユーザーはストレスを感じます。それが原因で直帰率が上がることもあるので、速度低下の防止はそのままユーザーの満足度につながるといえるでしょう。
拡張性を高める
サービスの規模が拡大するにつれて、システムの処理能力が不足してきたと感じることは少なくありません。負荷の少ない適切なシステム運用を続けるためにも、拡張性の高さは重要です。ロードバランサーを設置するとリソースの追加が容易になり、いつでも運用規模を拡大できます。
ロードバランサーのメリット
ロードバランサーの活用は、ユーザーと企業の双方にとっても有効です。
振り分けの方法を選べる
ロードバランサーは、アルゴリズムによってさまざまな振り分けのタイプがあります。
なかでもよく使用されているのは、アクセスのリクエストをすべてのサーバーに等しく分散する「ラウンドロビン」と、その時点で一番接続数が少ないサーバーに送信する「リーストコネクション」の2種類です。
例えば、6アクセス分のリクエストがあったときの3台のサーバーの接続数がそれぞれ3、1、2だったとします。このとき、ラウンドロビンはすべてのサーバーに対して均等に2アクセスずつを割り振りますが、リーストコネクションの場合は接続数が一番少ない1のサーバーに6アクセスすべてを割り振ります。
ほかにも、サーバーにかかっている負荷の比率、CPUやメモリの使用率、一定時間内のコネクション数の平均値などの条件で割り振ることもできます。
同一のセッションを維持できる
ECサイトなどのHTTP通信では、商品を選んでから決済を完了するまで、同一のセッションを維持しなければなりません。途中で別のサーバーに切り替わると、意図していないのに異なるサーバーにそれぞれ商品リストを持つことになってしまいます。
しかし、ロードバランサーを使うと1人の利用者は同じサーバーに割り振るため、途中でセッションが途切れることはありません。
ロードバランサーのデメリット
ロードバランサーはさまざまなメリットがありますが、他方ではデメリットも抱えています。両面を見きわめた上で、導入を検討しましょう。
導入費用が高額になる
ロードバランサーは機器を設置する必要があるため、導入費用が高額になりやすくなります。なかには数百万円する機器もあり、潤沢な投資費用を用意できなければ導入は難しいでしょう。
しかし、クラウドを利用すれば比較的安価にロードバランサーを導入することができます。
クラウドタイプは月額の利用料金を支払って事業者の所有するロードバランサーを使用できるので、自社で機器を購入する必要がありません。
DNSラウンドロビンに比べて運用が複雑になる
DNSラウンドロビンに比べると、ロードバランサーは構成が複雑です。そのため、運用や保守には専門的な技術や知識を持った人材が必要になります。適切な人材がいない場合は新たな採用や教育を行なわなければならなくなり、想定していた以上のコストがかかることもあります。
おわりに
ここまで、ロードバランサーの仕組みやDNSラウンドロビンとの違いについて解説してきました。ロードバランサーをうまく活用すると、ユーザーにおいてはストレスの少ないWebページの閲覧が可能になると同時に、サービスを提供する企業にとっても保守しやすい仕組みを構築できます。
DNSラウンドロビンに比べるとロードバランサーは高額ですが、その分多様なロードバラシングが実現できます。クラウドを利用するなどの方法でコストを抑えられるので、ロードバランサーの導入を検討してみてはいかがでしょうか。
Contactお問い合わせ
お見積もり・ご相談など、お気軽にお問い合わせください。