すでに負荷分散されたWebサーバーがあります。また、停止が発生するはずがない場合でも、さまざまな理由で停止が発生します。 (セントラルスイッチの障害、ISPルーターの設定ミス、バックボーンの障害、共有インフラストラクチャへのDOS攻撃)接続がまったく異なる、地理的にまったく異なる場所に2番目のサーバーセットを配置したいと思います。 SQLサーバーをさまざまな手法で同期できるので、問題はありません。しかし、どうすればよいかわからないのは、プライマリがダウンしたり到達できなくなったりしたときに、既存のユーザーWebセッションをバックアップサーバーに透過的にリダイレクトすることです。
AFAIK、これに対処する3つの最も一般的な方法は次のとおりです。
ただし、サイトに障害が発生した場合、最初の方法では、TTLによってクライアントがDNSを再クエリしてDRサイトに解決されるか、過剰な追加のDNS要求が発生するまで、ユーザーはサーバーにアクセスできなくなります。 2番目の方法では、単一障害点の可能性が残ります(ただし、環境間でマスターの「ログイン」の役割を複製するために複数のAレコードが使用されていることがわかります)が、ユーザーがサイトにアクセスしたときにユーザーをリダイレクトしません。 '現在使用しているのはダウンです。3番目はクラウドがダウンしても冗長ではありません(すべてが時々発生するため)
ネットワークについて私が知っていることから、地理的に離れた2つの環境にある2つの異なるサーバーに同じ重複するIPアドレスを与え、IPパケットルーティングに引き継いで、要求を受け入れるサーバーにトラフィックをルーティングさせる方法はありませんか?これはIPv6でのみ実現可能ですか?それは何と呼ばれ、DRサイトのフェイルオーバーが現在そのような手法を使用しないのはなぜですか? 更新:これはエニーキャストと呼ばれます。これを実現するにはどうすればよいですか?問題を起こす価値はありますか?
明確にするために:この質問は、最大60秒間サービスの中断が許可されているHTTPサーバートラフィックにのみ固有です。ユーザーは、ブラウザを閉じたり、ログインページに戻ったり、何かを更新したりする必要はありません。モバイルユーザーは、ページリクエストごとに追加のDNSクエリを受け入れることはできません。
一般的なTL; DRは、DNSは多くの理由で解決策ではないということですが、そのいくつかはあなたが特定したものです。そのうちのいくつかは、上記のリンクされた質問への回答にあります。
地理的レジリエンスを実行する唯一の実際の方法は、BGPを使用し、/ 23を2/24に分割し、アップストリームによってアドバタイズされ、そこから個々のDNS処理を実行することです。 。
次に、それらの間の同期の苛立たしい問題が発生しますが、それは別の話です。
SQLサーバーをさまざまな手法で同期できるので、問題はありません。
まあ、それはあなたがまだ持っていた問題ではありません。
ホスト名を変更するか、リクエストをプロキシすることによってインテリジェントリダイレクトを使用した場合は、さらに別の問題が発生します。 "プロキシをどこに配置するので、 SPOF "
それ以外の場合は、地理的に離れたN個のサイトがありますが、単一障害点(プロキシ/リダイレクトエンジン)が1つあります。
理論的には、代わりにMPLSを使用して、場所が同じL2ネットワーク上にあるように見せることができると思いますが、これが実際に障害に対する回復力を向上させるのにどのように役立つかはわかりません。
DNS自体は、自動フェイルオーバー機能を提供しません。しかし、ブラウザのクライアントの再試行と組み合わせると、無料(ネットワーク投資の観点から)で低遅延(〜1秒)のソリューションを提供します。詳細については、以下のリファレンスを参照してください。
http://blog.engelke.com/2011/06/07/web-resilience-with-round-robin-dns/
複数のデータセンターとHTTPトラフィック:DNSラウンドロビンが即時フェイルオーバーを保証する唯一の方法ですか?