DNS ロード バランシングは、受信トラフィックを複数のサーバーに分散し、堅牢なパフォーマンスと高可用性を実現します。
DNS ロード バランシングは、ドメイン ネーム システム (DNS) を使用してサイト トラフィックを複数のサーバーに分散し、ネットワーク スループットの向上、パフォーマンスの最適化、ダウンタイムの最小化、全体的なコンピューティング効率の向上を実現します。
DNS 負荷分散は、複数のサーバーまたはリソースに着信ネットワーク トラフィックを分散し、複数のサーバー インスタンス間で負荷を分散することで、サービスまたはアプリケーションの可用性、スケーラビリティ、およびパフォーマンスを向上させます。 複数のサーバー間で負荷分散を実現するシンプルで効率的な方法を提供します。
DNS は、Web サイトのドメイン名 (f5.com や amazon.com など) を、サーバーがインターネットに接続された Web サイトやデバイスを識別するために使用する数値の IP アドレスに変換するため、インターネットの電話帳と呼ばれることがよくあります。 このプロセスは DNS 解決と呼ばれます。 DNS 解決中に、ユーザーのブラウザは DNS サーバーに接続して、宛先 Web サイトの正しい数値 IP アドレスを要求します。
DNS リゾルバは、ドメインの DNS サーバーにドメインの A レコード、つまりドメイン名を 1 つ以上の IP アドレスにマッピングするアドレス レコードを照会して、要求されたドメイン名に関連付けられた IP アドレスを検索します。 DNS リゾルバは、ドメイン名をエイリアスとして別のドメイン名にマッピングしたり、親ドメインとサブドメイン間でマッピングしたりする CNAME (正規名) レコードに遭遇することもあります。
今日のほとんどのドメインでは、サーバー障害から保護するため、または大量のトラフィックを処理するために、複数の DNS サーバーを採用しています。 それぞれ異なる IP アドレスを持つこれらの異なるサーバー インスタンスは、ドメインに対する受信要求を処理できるため、DNS クエリは DNS クエリへの応答として複数の IP アドレスのリストを返します。 DNS ロード バランサは、DNS クエリに応答して共有する IP アドレスを選択するためのさまざまな方法またはルールを使用して、接続トラフィックが複数の利用可能なサーバーに分散されるようにします。
CNAME レコードは、単一のドメイン名を別のドメインと同じ IP アドレスに解決できるため、DNS 負荷分散にも役立ちます。 CNAME は、ロードバランサーのドメイン名、またはロードバランシングを使用するプライマリドメイン名を指すように設定できます。
DNS 負荷分散は、着信ネットワーク トラフィックを複数のサーバー インスタンスに分散し、負荷を分散して、アプリケーションまたはサービスの可用性とパフォーマンスを向上させます。 1 台のサーバーが利用できなくなったり過負荷になったりした場合でも、DNS リゾルバーは残りのサーバーの IP アドレスを引き続き提供し、冗長性とフェイルオーバー機能を保証します。
DNS ロード バランシングと従来のロード バランシングは同様の目的を果たしますが、ネットワーク スタックの異なるレイヤーで動作し、いくつかの重要な違いがあります。
DNS ロード バランシングは、アプリケーション層 7 の DNS レベルで動作し、TCP/IP モデルのトランスポート層でユーザー データグラム プロトコル (UDP) を使用してデータを転送します。ただし、DNS では、速度とパケットの軽量化のため、TCP よりも UDP が優先されます。
DNS ロード バランシングの実装は、他のロード バランシング ソリューションと比較して比較的簡単であり、予算が限られている中小企業にとって特に有益です。 複雑な構成や専用のロードバランサーのハードウェアやソフトウェアを必要としないため、IT リソースが限られている組織でも利用できます。 DNS ロード バランシングは、ユーザーを異なる地理的領域にあるサーバーに誘導するように構成することもできます。 これは、トラフィックを最も近いアプリケーション インスタンスに誘導したり、GDPR 準拠のためにトラフィックをルーティングしたりできるため、世界的に展開している組織にとって特に便利です。
一方、従来の負荷分散は、トランスポート層 4 またはアプリケーション層 7 で動作します。 レイヤー 4 ロード バランサは、ネットワークおよびトランスポート層プロトコル (IP、TCP、UDP) にあるデータに基づいて動作します。 レイヤー 7 ロード バランサは、HTTP などのアプリケーション層プロトコルで見つかったデータに基づいて要求を分散します。 これらのロード バランサは通常、ハードウェアまたはソフトウェアを使用して、クライアント要求をサーバー グループまたはサーバー インスタンス全体に分散する専用デバイスです。
これらのロード バランサは、より高度な機能と、トラフィック分散に対するよりきめ細かな制御を提供します。 クライアント要求の分散は通常、専用のロード バランサ デバイスまたはサービスによって制御され、パフォーマンスやその他の要因に基づいて動的な決定を下すことができます。 これらの負荷分散デバイスまたはサービスは、より高度なアルゴリズムを実行することもでき、サーバーの状態を監視し、不健全なサーバーから健全なサーバーにトラフィックを自動的に削除またはリダイレクトするヘルスチェックも組み込まれています。 これにより、可用性とフォールト トレランスが向上します。
DNS ラウンドロビンは、DNS に依存して、さまざまなサーバーに関連付けられた IP アドレスのリストを循環することでクライアント要求を分散する、負荷分散の基本的な形式です。 各クライアント要求は、リスト内の次の IP アドレスに自動的に送信されます。 DNS ラウンドロビンは、異なる IP アドレスに関連付けられた複数の A レコードを構成するだけで済むため、設定と管理が比較的簡単です。 変更はこれらの A レコードを更新することによって行われます。
残念ながら、DNS 負荷分散のこの単純な実装には、信頼性と効率を制限する固有の問題があります。 最も重要なのは、DNS はサーバーまたはネットワークの停止やエラーをチェックしないため、サーバーがダウンしていたりアクセスできない場合でも、ドメインに対して常に同じ IP アドレスのセットを返すことです。 サーバーが利用できなくなった場合、DNS レコードが手動で更新されるまで、DNS ラウンドロビン負荷分散によってトラフィックが引き続きそのサーバーにルーティングされる可能性があります。
解決されたアドレスは通常、パフォーマンスを向上させ、ネットワーク上の DNS トラフィックの量を減らすために、中間 DNS サーバー (リゾルバーと呼ばれる) とクライアントの両方によってキャッシュされるため、別の問題が発生します。 解決された各アドレスには、有効期間(存続時間、またはTTLと呼ばれる)が割り当てられますが、有効期間が長いと、クライアントがサーバー グループの変更をタイムリーに認識できない可能性があります。また、有効期間が短いと、精度は向上しますが、キャッシュが本来軽減することになっている処理と DNS トラフィックが増加します。
一方、高度な負荷分散技術はより機能が豊富で、トラフィックを効率的に分散し、高可用性、スケーラビリティ、最適化されたパフォーマンスを確保するための洗練されたアルゴリズム、ヘルス チェック、トラフィック管理機能を備えていることがよくあります。 これらの分散メカニズムには、より効率的で動的なトラフィック分散と管理を実現する加重ラウンドロビン、最小接続、応答時間ベースのルーティングが含まれており、複雑で需要の高い環境に適しています。
負荷分散は、現代のネットワーク環境におけるトラフィック フローの管理と最適化において重要な役割を果たします。負荷分散により、高負荷時やサーバー障害が発生した場合でも、システムの可用性と応答性を維持しながら、シームレスで応答性の高いユーザー エクスペリエンスを実現できます。
DNS ロード バランシングにより、複数のサーバーまたはデータ センターにネットワーク トラフィックを分散できるようになります。これは、e コマース Web サイト、ソーシャル メディア プラットフォーム、オンライン ストリーミング サービスなどのコンテンツ配信や大量のトラフィックの処理に特に重要です。 これにより、1 つのサーバーがトラフィックで圧倒されたりボトルネックになったりする一方で、他のサーバーが十分に活用されないことがなくなります。 これにより、リソースの使用が最適化され、サーバーの過負荷を防ぐことができます。
DNS ロード バランシングは高可用性の実現にも役立ちます。 着信トラフィックを複数のサーバーまたはサーバー インスタンスに分散することで、単一障害点のリスクが軽減されます。 ハードウェア障害、メンテナンス、またはその他の問題により 1 台のサーバーが利用できなくなった場合、ロード バランサーはトラフィックを正常なサーバーにリダイレクトし、サービスのダウンタイムを最小限に抑えることができます。
サービスやアプリケーションの需要が増大すると、負荷分散により、プールにサーバーを水平に追加することでリソースを簡単に拡張できるようになります。 このスケーラビリティは、増加するトラフィックを処理し、パフォーマンスを低下させることなくシステムが増加するユーザーベースに対応できるようにするために重要です。 ロード バランサーは、サーバーの負荷、フォールト トレランス、クライアントへの近接性などの要素を考慮して、ユーザーが低遅延と高速な応答時間を体験できるようにします。
負荷分散戦略の選択は、アプリケーションまたは組織の特定の要件と制約によって決まり、データベース アーキテクチャ、アプリケーションの性質、サーバー容量、ワークロード特性などの要因によっても異なります。
加重ラウンドロビンは、プール内のさまざまなサーバー ノードに異なる重みまたは優先順位を割り当て、受信クライアント要求の分散に影響を与える負荷分散戦略です。 この戦略は、ハードウェア仕様やパフォーマンス機能が異なるサーバーを扱う場合に特に役立ちます。 重みを割り当てることで、より強力なサーバーがトラフィックのより大きな部分を処理します。
このアプローチでは、さまざまなサーバーの場所に対するクライアントの地理的な近接性を考慮し、重みを使用してクライアント要求の分散に影響を与えます。 ロード バランサは、クライアント要求の地理的な場所と、利用可能なサーバーの場所またはデータ センターを認識します。 この情報は、リクエストを処理するための最も近いまたは最適なサーバーの場所を特定するために使用されます。 地理的負荷分散は、世界規模のユーザー ベースと複数のデータ センターまたはサーバーの場所を持つ組織にとって特に役立ちます。 さまざまな地域にわたって一貫したユーザー エクスペリエンスを確保できます。
動的負荷分散では、サーバーまたはネットワークの現在の状態に基づいて、ネットワーク トラフィックの分散をリアルタイムで調整します。 動的ロード バランサは、プール内のサーバーの健全性とパフォーマンスを監視し、サーバーの可用性、応答時間、CPU 使用率、メモリ使用量、その他のメトリックをチェックします。 収集された情報に基づいて、ロード バランサは、受信リクエストを、そのリクエストを処理するのに最適なサーバーに動的にルーティングします。 動的負荷分散は、トラフィック パターンが予測不可能な場合、トラフィック負荷が頻繁に変動する場合、または高度なパフォーマンス最適化が必要な場合に使用されます。 これは、データ センター、クラウド コンピューティング環境、コンテンツ配信ネットワーク (CDN)、およびワークロードが急速に変化するアプリケーションでよく使用されます。
DNS ロードバランサーは、Web サイトやアプリケーションのトラフィックを管理するための重要なツールであるため、正しく構成して管理することが重要です。 次のベスト プラクティスは、ロード バランサーが適切に構成され、ユーザーとアプリケーションのトラフィックの需要に対応できることを保証するのに役立ちます。
まず、予想されるトラフィック パターン、ユーザーの地理的分布、レイテンシに対する感度、高可用性の必要性などの要素を含む、アプリケーションまたはサービスの特定のニーズを検討します。 ロード バランサは、特定のトラフィック パターンに合わせて構成されている場合に最も効果的です。そのため、Web サイトまたはアプリケーションに流入するトラフィックを時間をかけて調査し、それに応じて構成を最適化してください。
スケーラビリティは、インフラストラクチャの将来性を確保するための重要な考慮事項です。 組織とユーザー ベースが拡大するにつれて、DNS 負荷分散のニーズも変化する可能性があります。 ロード バランサ ソリューションがトラフィックの需要に応じてスケールアップまたはスケールダウンできることを確認してください。この弾力性は、需要に基づいてリソースを動的にプロビジョニングできるクラウド環境では貴重です。
ロード バランサーから最高のパフォーマンスを引き出すには、ヘルス チェックを実装し、サーバーの状態を継続的に監視することが重要です。 潜在的な問題を迅速に特定して対処できるように、サーバーのすべてのリソース(メモリ使用率、CPU 使用率など)を定期的に監視します。 高可用性を維持するために、異常なサーバーからのトラフィックを削除またはリダイレクトします。
DNS 負荷分散構成を定期的に確認し、変化するトラフィック パターン、サーバー パフォーマンス、アプリケーション要件に基づいて最適化を行います。
要件を満たす DNS 負荷分散ソリューションを選択します。 地理的負荷分散、加重ルーティング、ヘルスチェック、Web アプリケーションと API のセキュリティ保護、管理の容易さなどの機能を検討してください。 カスタムおよび DIY ロード バランサ ソリューションは、特に非常に特殊な要件を持つ組織にとって、より高度な制御とカスタマイズを提供できる一方で、継続的なメンテナンス、セキュリティ、およびスケーラビリティに対する責任も伴うため、これを過小評価してはいけません。 サードパーティの DNS 負荷分散サービスは、多くの場合、複数の地理的な場所にあるサーバーの分散ネットワークを運用します。 このグローバルな展開により、ユーザーを最も近いサーバーに効率的に誘導し、待ち時間を減らしてユーザー エクスペリエンスを向上させることができます。 サードパーティのサービスでは通常、さまざまな負荷分散アルゴリズムも提供されており、特定のニーズやサーバーの機能に基づいてトラフィックの分散方法を微調整できます。 サービスベースの負荷分散ソリューションは、幅広いトラフィック負荷を処理できるように設計されており、必要に応じてスケールアップまたはスケールダウンできます。
DNS ロード バランシングは、複雑な構成や専用のロード バランサー ハードウェアやソフトウェアを必要としないため、IT リソースが限られている中小企業や組織にとって効果的なトラフィック分散ソリューションです。
F5 は、さまざまなロード バランサ製品とソリューションを提供しています。 これらには、実装と管理の複雑さを簡素化し、API 経由で完全に構成可能で、DDoS および WAF 保護と災害復旧機能が組み込まれたクラウドベースの DNS ロード バランサ サービスが含まれます。 このサービスは、グローバルなロケーション ベースのルーティングを提供し、環境間でアプリケーション トラフィックを効率的に誘導して、高いパフォーマンスと最高のユーザー エクスペリエンスを実現します。 システムはシステムヘルスチェックを監視して、障害が発生したり機能が低下したりしたリソースインスタンスを検出し、クライアントを再ルーティングしてアプリケーションとサービスの可用性を維持します。 F5 分散クラウド DNS ロード バランサは、アプリケーションの増加、トラフィック パターンの変化、リクエスト量の急増などの需要に対応するためのグローバルな自動スケーリングを提供しますが、価格設定はユーティリティ ベースです。 必要なサービスと使用したサービスに対してのみ料金をお支払いいただきます。
さらに、 F5 NGINX PlusとF5 NGINX は、 Dropbox、Netflix、Zynga などのトラフィック量の多い Web サイトで使用されているクラス最高の負荷分散ソリューションです。 世界中で3 億 5,000 万を超える Web サイトが、コンテンツを迅速かつ確実に安全に配信するために NGINX Plus と NGINX Open Source を活用しています。
NGINX Plus は、基本的な DNS ロード バランシングよりもはるかに効果的で正確な、さまざまな高度なロード バランシング アルゴリズムを提供し、それらすべてを使用してサーバーの状態をチェックし、アクセスできないサーバーにリクエストが転送されるのを回避します。 また、前述の問題を解決する DNS ロード バランシング形式もサポートしています。NGINX Plus 管理者ガイドの「DNS を使用した HTTP ロード バランシングの設定」を参照してください。 NGINX Plus はソフトウェアベースであるため、一般的なハードウェア上で実行され、競合するほとんどのハードウェアベースのソリューションよりも大幅に安価です。