DNS RRフェールオーバーは、中程度のトラフィックであるがビジネスに不可欠なWebサイト(2つの地域)で長年にわたって実行しました。
それはうまく機能しますが、私が苦労して学んだ少なくとも3つの微妙な点があります。
1)クライアントが使用可能なキャッシュされたDNSで両方がアクティブであると見なされた場合、ブラウザは30秒(最後にチェックした時間)後に非動作IPから動作IPにフェイルオーバーします。これは基本的に良いことです。
ただし、ユーザーを30秒間「半分」待機させることは受け入れられないので、TTLレコードを数日または数週間ではなく数分に更新して、障害が発生した場合にダウンしたサーバーを迅速に削除できるようにします。 DNSから。他の人は、彼らの応答でこれをほのめかしています。
2)ネームサーバーの1つ(または2つの地域全体の1つ)がダウンしてラウンドロビンドメインにサービスを提供し、それらのプライマリサーバーがダウンした場合、それを削除しようとする他の問題に遭遇する可能性があることを漠然と思い出しますネームサーバーのSOA TTL /有効期限も十分に低い値に設定していない場合は、DNSからネームサーバーをダウンしました。ここでは技術的な詳細が間違っている可能性がありますが、単一障害点から実際に防御するために必要なTTL設定は複数あります。
3)Web API、RESTサービスなどを公開する場合、通常これらはブラウザーから呼び出されないため、DNSフェイルオーバーは実際の欠陥を示し始めます。これは、「お勧めしません」と言う人もいます。私がそう言う理由はここにあります。まず、これらのURLを使用するアプリは通常ブラウザーではないため、一般的なブラウザーの30秒のフェールオーバープロパティ/ロジックがありません。第二に、2番目のDNSエントリが呼び出されるか、DNSが再ポーリングされるかは、これらのAPI / RESTクライアントで使用されるプログラミング言語のネットワークライブラリの低レベルプログラミングの詳細と、それらの呼び出し方法に大きく依存しますAPI / RESTクライアントアプリ。(カバーの下で、ライブラリはget_addrを呼び出しますか?ソケットがハングまたはクローズした場合、アプリは新しいソケットを再度開きますか?何らかのタイムアウトロジックがありますか?など)
安価で、十分にテストされており、「ほぼ機能する」。そのため、ほとんどのものと同様に、走行距離は異なる場合があります。