高可用性と災害復旧の概要

高可用性 (HA) は、IQ Bot のサービス、サーバー、またはデータベースで障害が発生した場合に、フェールオーバー ソリューションを提供します。災害復旧 (DR) は、データセンター全体を停止させるような災害の発生時に、地理的に離れた場所に復旧ソリューションを提供します。

IQ Bot の HA および DR ソリューション

IQ Bot のコンテキストでは、高可用性 (HA) と災害復旧 (DR) を実装することでダウンタイムを短縮し、botアクティビティのビジネス継続性 (CoB) を維持します。

  • 高可用性 (HA)—高可用性は、特定の障害シナリオからシステムを保護するよう試みるアーキテクチャ システム設計です。つまり、システムの一部で障害が発生した場合でも、全体としては引き続き使用可能になります。高可用性ソリューションは、通常、サーバー障害、単一コンポーネント障害、依存関係障害、可変負荷の増加、ネットワーク分断 (依存しているシステム コンポーネントがネットワーク上でアクセス不能になること) などの特定のシナリオからシステムを保護します。
  • 災害復旧 (DR) — 災害復旧は、自然災害や人災の後で重要なインフラストラクチャやシステムの復旧または継続を可能にする一連のポリシーや手順を伴います。災害復旧は、高可用性が予測可能な障害をカバーしているシステムにおいて、さまざまな障害の原因に対処します。災害復旧は、フェールオーバーだけでなく、インシデント発生後のサービスの再確立に重点を置いています。システムの復旧には、サービスまたはシステムの再起動、構成ファイルの復元、バックアップからのデータベースなどのシナリオが含まれます。
IQ Bot コンポーネントの HA や DR 保護を保証するには、既存の HA や DR インフラストラクチャ、ロード バランシング、フェールオーバー システムを構成して、IQ Bot のサーバーやサービスを組み込みます。自社の承認済みの HA と DR の手順については、データ センター管理者にご確認ください。

HA および DR インフラストラクチャの必須要素

  • 分散アプローチIQ Bot に関連するデータセンターのコンポーネントのクラスター化に加えて、IQ Bot を複数の物理および仮想サーバーに導入することをおすすめします。
  • ロード バランシング—ロード バランサーによって実行され、サービス活動を保護するために複数のサーバー間でアプリケーションまたはネットワークトラフィックを分散し、ワークロードを複数のサーバー間で分散するプロセスです。これにより、クラスター化されたサーバー上で bot のアクティビティを継続できます。

  • データベース—データベースは独自の組み込みフェールオーバーを使用してデータを保護します。これにより、データベースのデータが確実に復旧されます。

    • HA クラスター間で、データセンター内のプライマリ (アクティブ) とセカンダリ (パッシブ) のクラスター化された MS SQL Server 間の同期レプリケーションを設定します。これにより、データベース ノードに障害が発生した場合に一貫性が確保されます。

      必要とされる HA 同期レプリケーションのために、次のいずれかを設定します。

      • レプリカを SQL Server Always On の同期コミット モードの可用性グループにバックアップ
      • SQL からサーバー データベースへのミラーリング
    • DR サイト間で、プライマリ (実稼働) DR サイトから、セカンダリ (リカバリー) DR サイト (プライマリ DR サイトから地理的に離れた場所にあるサイト) への非同期レプリケーションを提供するようにデータベースを設定します。

シナリオの一例

同じクラスター内のすべての IQ Bot インスタンスを、同じデータベース ファイルとリポジトリ ファイルにポイントさせます。これは複数のサーバー間でデータを共有し、クラスター内の IQ Bot サーバー全体でデータの整合性を維持するために必要です。

HA および DR の導入モデル

HA または DR、あるいはその両方で IQ Bot が保護されていることを確実にするために、次に説明された導入モデルに従ってデータセンターを設定します。

HA の導入要件

  • IQ Bot を複数のサーバーにインストールします。
  • ロードバランサーを介して IQ Bot にアクセスします。
  • IQ Bot サーバー間で RabbitMQ の同期ポートを開きます。
  • 高可用性モードで Microsoft SQL Server を構成します。

HA および DR のインストールに関する構成要件

  • IQ Bot インストーラーはクラスターのインストールを直接サポートしません。クラスターを設定するには、次の操作を行います。
    • 各アプリケーションのサーバー ノードでインストーラーを実行します。
    • アクセス ロール全員を使用して出力フォルダーを共有します。
    • インストール後に、適切なコマンド ライン引数を指定して messagequeue_cluster_configuration.bat を実行します。
  • 高可用性構成で IQ Bot を構成します。
  • ファイアウォールポートの 4369 と 25672 を開きます。
  • クラスター内のすべての IQ Bot ノードに RabbitMQ をインストールします。

    IQ Bot がインストールされた最初のノードがプライマリ RabbitMQ ノードになります。プライマリ ノードのホスト名は、RabbitMQ クラスターを設定するために使用されます。

  • トラフィックをすべての IQ Botサーバーノードに分散するには、ロードバランサーが必要です。
  • Microsoft SQL Server を高可用性向けに設定します。Microsoft SQL Server 常にオン オプションを使用します。
  • RabbitMQ の特定のインストールについては、RabbitMQ ドキュメントをご覧ください。

HA および DR の既知の制限事項

  • IQ Bot インスタンスの可用性を検出するため、ロード バランサーは定期的に PING を送信、接続を試行、ならびにリクエストを送信して IQ Bot インスタンスをテストする必要があります。これらのテストをヘルスチェックと呼びます。
  • ヘルスチェックでは、RabbitMQ インスタンスの可用性は検証されません。