私が理解しているように、GoogleなどのWebサイトを開くと、ホスト名が検索され、ブラウザーは結果のIPアドレスを使用してサーバーに接続し、ページを取得します。
しかし、高可用性Webサイトは、この単一のIPアドレスに常に到達できるようにするにはどうすればよいでしょうか。それは単一障害点ではありませんか?
Webサイトの高可用性には、DNSラウンドロビンとIP負荷分散の2つの一般的なソリューションがあります。
DNSラウンドロビンとは、DNSサーバーにサイト名を照会するたびに異なるIPアドレスを取得することを意味します。これにより、複数のサーバーにリクエストを分散でき、指摘した単一障害点も回避できます。これはwww.google.com
のDNS回答です(「google.com」ドメインの権威ネームサーバーの1つに尋ねられた場合):
> www.google.com
Server: ns1.google.com
Address: 216.239.32.10
www.google.com canonical name = www.l.google.com
www.l.google.com internet address = 74.125.77.99
www.l.google.com internet address = 74.125.77.104
www.l.google.com internet address = 74.125.77.147
また同時に使用できる(そしてこの場合は非常に可能性が高い)別の一般的なソリューションは、IP負荷分散です。つまり、これらのIPアドレスは実際にはサーバーに割り当てられていませんが、代わりに負荷分散デバイス(またはリバースプロキシ、またはその他の同様のソリューション)に割り当てられ、複数のバックエンドサーバーの1つに要求を転送します。これらのサーバーの1つに障害が発生した場合、別のサーバーが使用されます。
詳細はこちら:
http://en.wikipedia.org/wiki/Round_robin_DNS
http://en.wikipedia.org/wiki/Load_balancing_(computing)
Googleはおそらく同時に3つのアプローチを使用しています。
実際、それはすべてうまく説明されています。
http://en.wikipedia.org/wiki/Google_platform
何百ものサーバーについて話していることに注意してください。ものでいっぱいの多くのデータセンター。
Googleは、サーバーがほとんど読み取り専用であるという点で非常に特別です。彼らはインデックスのコピーを取得し、新しい更新されたコピーで再イメージ化されるまでそれを提供します。応答クラスターに対して更新が行われることはありません。これはアプリケーションにとっては珍しいことですが、グーグルが賢いからではなく、要件が珍しいからです。
IPアドレスは、それを保持している前のサーバーで問題が発生した場合に、正常なサーバーに動的に再影響(フェイルオーバー)する可能性があるため、必ずしもSPOFである必要はありません。
高可用性サイトは、DNSルートサーバーなどの多くのテクノロジーを使用して、いつでもアクセスできるようにしています。
実際、攻撃や失敗を防ぐために、次のように多くのソリューションを展開できます。