大量のトラフィックが発生し始めているサイトがありますが、先日、ロードバランサー(haproxy)がホストされているデータセンターでネットワークが停止しました。これは、システムを完全に冗長化するためのあらゆる努力にもかかわらず、DNSを冗長化することができなかったため、私は心配しました。これは簡単な解決策ではないと思います。
私が見つけたのは、dnsmeなどの場所からDNSフェイルオーバーにサインアップすることだけでしたが、スタートアップの新進にはコストがかかりすぎました。彼らの企業計画でさえ、月に5000万のクエリしか提供せず、私たちはそれを1週間で使い果たします。
だから私の質問は、dnsmeのようにフェイルオーバーを提供するセルフホストDNSはありますか?
DNSは冗長性のために設計されています。別々のデータセンターに2つのバインドサーバーをセットアップします。一方を他方のスレーブに設定します。両方がドメインレジストラにリストされていることを確認してください。完了。
スレーブサーバーの設定に関してランダムに選択されたガイドは次のとおりです。 http://docstore.mik.ua/orelly/networking_2ndEd/dns/ch04_08.htm
わかりました。Aレコードを別のIPアドレスに切り替えることでフェイルオーバーを探しています。ネームサーバーにBINDを使用している場合も、これは非常に簡単です。 nsupdateを呼び出してDNSレコードを追加/削除/変更するスクリプトを作成できます。使用するクラスタリングまたは監視システムが何であれ、ロードバランサーにアクセスできないかどうかを確認し、DNSレコードを変更して、引き続き機能するものを指すようにするか、ラウンドロビンDNSを使用して障害のあるノードを削除し、ノードが復旧したときに追加します。
私は似たようなことをして、世界中のいくつかのデータセンターで複数のhaproxyインスタンス(各データセンターでもフェールオーバークラスター化)を実行しています。また、これらのさまざまなデータセンターへのGeoIPベースのトラフィック分離が必要だったため、Dyn.comの「高度なトラフィック管理」ソリューションを使用しました。あなたが探しているようにフェイルオーバーします。 Dyn(および他の人もそうだと思います)は、スタンドアロン製品として監視/フェイルオーバーのソリューションを提供します。例: http://dyn.com/dns/dynect-managed-dns/active-failover/
安価でこれを行おうとしていて、haproxyが「ダウン」していると言う場合は、データセンターの停止が原因で応答しないことを意味します。リクエストごとにDNSサーバーから複数のAレコードを提供してみてください。これは基本的に、異なるサーバーへの要求をラウンドロビンし、最初のサーバーが失敗した場合にクライアントが他のサーバーを試行できるようにします。
しかし、私にとってはうまくいったので、ホスト型ソリューションを使用することをお勧めします。 DnsMadeEasyは、監視も含む地理的配布用の同様の製品も提供していると思います(Dynに感謝します)。
もちろん、自分でソリューションを構築することもできますが、これを行うための総コストと、会社が提供しているコアサービスに焦点を当てるコストを考慮する必要があります。トレードオフのすべて... :)
また、DNSクエリが週に5,000万回も押しつぶされている場合は、1回限りの訪問者がたくさんいない限り(私は実際にそうしています)、多くのように聞こえます。 TTL設定が低すぎないことを確認してください。低すぎない場合は、ホストされているサービスに必要以上に多くの料金を支払う必要があると予想される場合があります。