web-dev-qa-db-ja.com

Webアプリ:高可用性/シングルポイント障害を防ぐ方法

高可用性( "HA")がWebアプリケーションでどのように機能するかを誰かに説明してもらえますか?HAは単一障害点がないことを意味していると思います。

ただし、ロードバランサーを使用していても、それが単一障害点ではありませんか。

48
nickb

私はこの件についてこの記事を見つけました: http://www.tenereillo.com/GSLBPageOfShame.htm

基本的に、長時間持続するスティッキーセッションが必要ない場合は、Webサイトの複数のAレコード(IPアドレス)を返すようにDNSサーバーを構成できます。

Webブラウザーは、機能するアドレスが見つかるまですべてのアドレスを試すのに十分なほどスマートです。

16
user677686

簡単に言うと、高可用性は、ハードウェアやソフトウェアに障害が発生した場合でも、ダウンタイムなしでシステムを24時間年中無休で実行することと定義できます。他の方法では、フォールトトレランスアプリケーション。これにより、意図したユーザーがアプリケーションを中断なく使用できるようになります。

enter image description here

詳細は High Availability Deployment Architecture をご覧ください

9
Techie

これは、ハートビートを備えた2つのHAプロキシサーバーをセットアップする次の方法で機能します。そのため、1つが失敗すると(クエリへの応答を停止します)、クラスターから削除されます。 HAプロキシからのリクエストはラウンドロビン方式でWebサーバーに転送できます。1つのWebサーバーに障害が発生した場合、HAプロキシサーバーは、それが存続するまでそのサーバーへの接続を試みません。 Webサーバーは、すべての動的情報をデータベースに格納します。データベースは、2つのMySQLインスタンス間で複製されます。ご覧のとおり、ここではIPのクラスタリングと同様に、HAプロキシとクラスタMySQL(または単にMySQLレプリケーション)が重要です。

example high availabibility cluster

1
Andrew

HAアーキテクチャはフィールド全体であり、複数の本が書かれているため、短い段落で答えることは困難です。

理想的な状況を要約すると、複数のロードバランサーのレイヤーに相互接続された複数のサーバーを使用することになります。ノードとLBはいくつかの異なるデータセンターに配置され、異なるネットワークバックボーンに接続されます。理想的には、データセンターは世界中に配置されます。

つまり、ロードバランサーを含むすべてのコンポーネントに冗長性があります。

出発点については、Wikipediaの High Availability Cluster を参照してください。

0
Desmond Zhou