web-dev-qa-db-ja.com

GoDaddyの同じドメイン上の複数のIPを使用したDNS負荷分散

Amazon CloudFrontよりも安価なソリューションを探して、GoDaddyが管理するNameSeverの同じサブドメインの異なるサーバーに異なるIPを持つ2つの「A」レコードを配置して、ある種の負荷分散と静的ファイルのフェイルオーバーメカニズムを実現しました。ウェブサイト。

見てみな: nslookup static.hsbnoticias.com

いくつかの観察

  • DNSラウンドロビン負荷分散に関する記事をいくつか見ましたが、これがDNSサービスで実行できるかどうか、または特別なソフトウェアやサービスが必要かどうかを理解できませんでした。
  • そのようなサービスのサービスプロバイダーは見つかりませんでした
  • Facebook CDNでnslookupをテストすると、毎回異なる順序で複数のIPが返されます。これは、DNS負荷分散を行うための適切な方法だと思います。
  • 私のネームサーバーは毎回同じ順序でIPを返します

[〜#〜]質問[〜#〜]

  1. 負荷は2つのサーバー間で分散されますか?
  2. ページリソース上の複数のIPを持つドメインを解決するときに、ブラウザが従う傾向がある標準的な動作はありますか? (タイムアウト、フォールバックなど...)
  3. ネームサーバーによって返されるレコードのランダム化(または固定)された順序は、負荷分散にどのように影響しますか?
  4. ブラウザは、使用しているIPが遅くなった場合、またはタイムアウトをトリガーした場合にのみ、異なるIPを試行しますか?
  5. IPフェイルオーバーはユーザーに対して透過的ですか、それともユーザーはページをリロードする必要がありますか?
2
jacmkno
  1. ほとんどの場合、はい。この貧弱なやり方では、Aレコードの返される順序は、クライアントが使用しているDNSサーバーの裁量に任されているため、ラウンドロビンがオフになっているか、サポートされていない場合(ローカルネームサーバーの場合など)、クライアントはそれを使用します。キャッシュされている限り、固定の順序が返されます。ただし、少なくとも冗長性は提供されます(一方のIPがダウンしているが最初に試行された場合、ブラウザーは通常、接続タイムアウト後にもう一方のIPを使用します)。

  2. 一貫していない、いいえ。これらはすべて2番目(またはそれ以上)のIPアドレスにフォールバックしますが、フォールバックにかかる時間を決定するために、ブラウザーの「ベンダー」とバージョン、およびICMP到達不能メッセージが返されるかどうかによって異なります。 TCPタイムアウト(ICMP到達不能メッセージを受信しない場合)は通常、サーバーが応答していないときに分単位で測定されます。例:Chrome接続タイムアウトが長い、多くの場合、フェイルオーバーするまでに3分以上かかります。IEの方が高速です。ただし、ユーザーにはダウンしているか、非常に遅いように見えます。警告エンプター...可動部分がたくさんあります。 DNS解決パスがあり、特定のブラウザで返される複数のIPアドレスが最終的に使用される順序をほとんど制御できません。これが、高速フェイルオーバーの負荷分散をサポートする製品の業界全体が存在する理由ですが、通常、DNSを使用します。それを達成するための最小限の方法(たとえば、DNSでwww.google.comを検索します... 1つのIPアドレスしか取得できないことがわかります)。

  3. サーバー全体の負荷「バランシング」は、2つの期間の間で大幅に異なる可能性があります。

  4. 接続タイムアウト時または明示的に到達不能の場合のみ。

  5. 透過的になりますが、接続先のインスタンスIPがハングしていると、サイトが非常に遅く見える可能性があります。意図的に停止した場合(メンテナンスなど)、ネットワークから外れていてARP要求に応答しない場合、フォールバックは高速になります(ルーターはICMPホストに到達できないと報告します)。

2
milli