NGINX(エンジンエックス)|日本公式サイト

NGINXはF5ファミリーの一員となりました。新体制の詳細はこちらを御覧ください。

DNSロードバランシングとは、ドメインネームシステム(DNS)でドメインを設定し、そのドメインに対するクライアントのリクエストをサーバマシンのグループに分散させることです。ドメインとは、Webサイト、メールシステム、プリントサーバなど、インターネット上でアクセス可能なサービスを指します。

ロードバランサーに関する一般的な情報については、「ハードウェアロードバランサーと比べ、80%のコスト節約」をご覧ください。

DNSはインターネットの「電話帳」の役割を果たしており、電話帳の個人名や会社名に相当する「www.abc.com」などのドメイン名と、電話番号に相当する「172.16.205.3」などのインターネットプロトコル(IP)アドレスを対応付けています。インターネット上でデータを送受信するすべての機器は、固有のIPアドレスを持っており、インターネットのルーティングソフトウェアとハードウェアは、このIPアドレスを使って機器を識別し、位置を特定します。DNSは、ユーザがウェブサイトにアクセスする際に、IPアドレスの数字の羅列よりも覚えやすい名前でアクセスできるようにするものです。

クライアントがドメイン名の解決を要求すると、DNSは1台のサーバのIPアドレスを返します。現在、多くのドメインでは、サーバの故障に備えたり、大量のトラフィックに対応するためなどの理由で、複数のサーバマシンを使用しています。この場合、DNSは名前解決のリクエストに応じて、すべてのサーバのIPアドレスのリストを返します。

DNSロードバランシングの仕組み

DNSのロードバランシングは、ほとんどのクライアントがドメインに対して受信した最初のIPアドレスを使用するという事実に依存しています。ほとんどのLinuxディストリビューションでは、DNSはデフォルトで、新しいクライアントに応答するたびに、IPアドレスのリストを異なる順序で送信します(ラウンドロビン方式)。その結果、異なるクライアントが異なるサーバにリクエストを送ることになり、サーバグループ全体に効果的に負荷を分散することができます。

残念ながら、この単純なDNSロードバランシングの実装には、その信頼性と効率性を制限する固有の問題があります。最も重要な点は、DNSはサーバやネットワークの停止やエラーをチェックしないため、サーバが停止していたりアクセスできない場合でも、ドメインに対して常に同じIPアドレスのセットを返すということです。

また、パフォーマンスを向上させ、ネットワーク上のDNSトラフィック量を削減するために、解決済みのアドレスは通常、中間DNSサーバ(リゾルバと呼ばれる)とクライアントの両方でキャッシュされるため、別の問題が発生します。解決済みのアドレスには有効期間(TTL)が設定されていますが、有効期間が長いと、クライアントがサーバ群の変更をタイムリーに知ることができず、有効期間が短いと、精度は向上しますが、そもそもキャッシュによって軽減されるはずの処理やDNSトラフィックが増加してしまいます。

NGINX Plusはどのように役立ちますか?

NGINX PlusとNGINXは、クラス最高のロードバランシングソリューションであり、Dropbox、Netflix、Zyngaなどの高トラフィックのWebサイトで使用されています。世界中で4.5億以上のWebサイトがNGINX PlusとNGINX Open Sourceを利用しており、迅速かつ確実で安全なコンテンツのデリバリーを実現しています。

NGINX Plusは、基本的なDNSロードバランシングよりもはるかに効果的で正確な、さまざまな洗練されたロードバランシングアルゴリズムを提供しており、すべてのアルゴリズムでサーバの状態をチェックし、アクセスできないサーバにリクエストを転送しないようにしています。また、前述の問題を解決するDNSロードバランシングもサポートしています。NGINX Plus管理ガイドの「Configuring HTTP Load Balancing Using DNS」を参照してください。NGINX Plusはソフトウェアベースなので、一般的な汎用ハードウェアで動作し、競合するハードウェアベースのものよりも大幅に低価格なソリューションです。

アプリケーションのロードバランシングにNGINX Plusを活用するメリットについて詳しく知りたい方は、当社EBOOK「ロードバランシングをソフトウェアに切り替える5つの理由」をダウンロードの上、詳細をご覧ください。