1つのエイリアスで複数のIPアドレスを指す

1つのエイリアスで複数のIPアドレスを指す

私が抱えている問題は次のとおりです。分散アプリケーション (地理的に分散した 3 つのノード) があり、リクエストに応じて大きなデータ セットを返します。ネットワーク トラフィックを削減するには、クライアント リクエストを分散アプリケーションの最も近いインスタンスに転送する必要があります。いくつかのオプションを検討しましたが、それぞれについて疑問があります。ご意見をお聞かせください。

オプション 1: DNS を使用して複数の IP アドレスに解決します。例: - 英国のマシンから server.copmany.com に電話をかける場合 - DNS はこれを問題のシステムの英国の IP アドレスに解決します。 - 米国のマシンから server.copmany.com に電話をかける場合 - DNS はこれを問題のシステムの米国の IP アドレスに解決します。

質問: このような目的で DNS を構成することは可能ですか?

オプション 2: IP アドレスを最も近いサーバーに解決できるロード バランサーを使用します。

質問: これは可能だと思いますが、応答がロード バランサ経由で返されるのではなく、呼び出し元のシステムに直接返されるということはできません。

オプション 3: この種の問題に対する他の解決策を思いつきましたか?

ありがとう、マイク

答え1

私はオプション1を選択します。

どの DNS サーバーを使用しているかはわかりませんが、これは GeoIP をサポートする BIND で実行でき、さまざまな国のさまざまなユーザーに対して複数のビューを表示できます。「BIND GeoIP」を Google で検索すると、設定方法に関するチュートリアルが多数見つかります。

あるいは、このサービスを提供するサードパーティのサービス (キーワード: 「マネージド DNS、地理位置情報」) もあります。

答え2

HTTP だけであれば、geo-DNS を実行する代わりに、適切なサイトに 301 を提供できます。これはおそらくより簡単です。

おそらくうまく機能しないものの一つはエニーキャストです。これは見た目は良いかもしれませんが、クライアントがノード間を切り替えるケースを(かなりの支援なしでは)処理できません。

答え3

DNS経由

  1. Bind がビューをサポートしていることは、以前使用したことがあるため、確実に知っています。他のサーバーも同様です。ビューを使用すると、要求元の IP アドレスに基づいて、任意のゾーン情報を提供できます。http://www.zytrax.com/books/dns/ch7/view.html

  2. ラウンドロビンDNSを使用して3つのIPSのうちの1つを解決します。ただし、リクエストの送信元は関係ありません。

グーグルで見つけたの(http://www.dnsmadeeasy.com/services/global-traffic-director/) - 面白いと思うかもしれない

関連情報