Choosing a deployment architecture
==================================

フェールオーバーマネージャーは、
Postgres接続プーラーと接続ライブラリを使用して、EDB Postgres Advanced
Serverのさまざまな高可用性オプションを提供します。これらのオプションは、高可用性アーキテクチャに影響を与えます。

データベースの高可用性を保証には、フェールオーバーマネージャーのコア機能をPostgres接続ライブラリクライアント接続フェールオーバーおよび接続プーラーと組み合わせることができます。

フェールオーバーマネージャーの機能を使用して、EDBは、高可用性環境を実行するための4つの基本アーキテクチャを設計しました。

1. :ref:`Using Failover Manager with virtual IP addresses <Using Failover Manager with virtual IP addresses>` 
   フェールオーバーマネージャーには、すぐにVIPアドレスを管理する重要な機能があります。
   VIPアドレスを使用すると、アプリケーションは、プライマリデータベースサーバーにルーティングされる単一のIPアドレスに接続できます。このアーキテクチャは、環境でVIPアドレスが利用可能な場合に実行する最も基本的なソリューションです。

2. :ref:`Failover Manager with client connect failover <Failover Manager with client connect failover>` 
   libpqやjdbcのようなPostgreSQLクライアントライブラリでは、クライアント接続フェイルオーバーが可能です。クライアント接続フェールオーバーでは、接続文字列に複数のサーバーhost=srv1,srv2が含まれ、クライアントライブラリは使用可能なホストをループして、使用可能な読み取り/書き込み操作が可能な接続を見つけます。この機能により、クライアントは、スイッチオーバー中にマスターを追跡できます。このソリューションは、仮想IPアドレスに依存しません。このようなクライアント構成を設定できるすべての環境で使用できます。

3. :ref:`Failover Manager with EDB PgBouncer <Failover Manager with EDB PgBouncer>` 
   PgBouncerは、接続プーリングやトラフィックを停止するオプションなどの機能を追加します。
   クライアントとPostgresデータベースサーバー間のプロキシとして使用することもできます。
   フェールオーバーマネージャーの統合オプションを活用して、フェールオーバー中にPgBouncerの再構成を実行することにより、PgBouncerを使用してトラフィックを正しいプライマリデータベースサーバーにルーティングできます。

4. :ref:`Failover Manager with EDB Pgpool-II <Failover Manager with EDB Pgpool-II>`  EDB
   Pgpool-IIは、クライアントとPostgresデータベースサーバー間のプロキシとして使用される別のツールです。
   EDB
   Pgpool-IIは、ウォッチドッグを使用してクラスターモードで実行、VIPの管理、読み取り専用のスケーラビリティなどの機能を追加します。フェールオーバーマネージャーには、EDB
   Pgpool-IIと統合して、データベースフェールオーバー操作中にトラフィックを別のプライマリにリダイレクトするネイティブ機能があります。

これらの機能は、各アーキテクチャでサポートされています。

**クライアント接続フェイルオーバー**

.. csv-table::
  :header: Features,Failover Manager with VIP,Failover Manager with client connect failover,Failover Manager with EDB PgBouncer,Failover Manager with EDB Pgpool-II
  :widths: 15,5,5,5,5
  :align: left
  :class: longtable

  Connection pooling,"","",Yes,Yes
  Runs on cloud (no VIP),"",Yes,Yes,Yes
  Halt traffic option,"","",Yes,""
  Read-only scalability,"",Yes (using multiple connection factories),"",Yes
  Clustered proxy,"","","",Yes
  Proxy integration,"","",ssh,PCP
  Minimum servers required,3,3,5,6
  Complexity,Low,Low,Medium,High
  Network hops,1,1,"",""
  Failover duration,Low,Medium,Low,Low

.. toctree::
  :maxdepth: 3

  Planning--efm_deploy_arch--03_efm_vip
  Planning--efm_deploy_arch--04_efm_client_connect_failover
  Planning--efm_deploy_arch--05_efm_pgbouncer
  Planning--efm_deploy_arch--06_efm_pgpool
