高可用性と災害復旧の概要
- 最終更新日2023/11/22
高可用性と災害復旧の概要
高可用性 (HA) は、IQ Bot のサービスまたはサーバーで障害が発生した場合に、フェールオーバー メカニズムを提供します。災害復旧 (DR) を使用すると、災害によってデータ センター全体が停止した場合に、地理的に離れた場所から復旧を行えるようになります。
IQ Bot は、高可用性 (HA) に、クラスター内の少なくとも 3 つのノード (最大で 5 つのノード) を使用します。
IQ Bot の HA および DR ソリューション
IQ Bot のコンテキストでは、高可用性 (HA) と災害復旧 (DR) を実装することでダウンタイムを短縮し、Botアクティビティのビジネス継続性 (CoB) を維持します。
- 高可用性 (HA) - 高可用性は、特定の障害シナリオからシステムを保護するよう試みるアーキテクチャ システム設計です。つまり、システムの一部で障害が発生した場合でも、全体としては引き続き使用可能になります。高可用性ソリューションは、通常、サーバー障害、単一コンポーネント障害、依存関係障害、可変負荷の増加、ネットワーク分断 (依存しているシステム コンポーネントがネットワーク上でアクセス不能になること) などの特定のシナリオからシステムを保護します。
- 災害復旧 (DR) - 災害復旧は、自然災害や人災の後で重要なインフラストラクチャやシステムの復旧または継続を可能にする一連のポリシーや手順が含まれます。災害復旧は、高可用性が予測可能な障害をカバーしているシステムにおいて、さまざまな障害の原因に対処します。災害復旧は、フェールオーバーだけでなく、インシデント発生後のサービスの再確立に重点を置いています。システムの復旧には、サービスまたはシステムの再起動、構成ファイルの復元、バックアップからのデータベースなどのシナリオが含まれます。
HA および DR インフラストラクチャの必須要素
- 分散アプローチ - IQ Bot に関連するデータセンターのコンポーネントのクラスター化に加えて、IQ Bot を複数の物理サーバー、または仮想サーバーに導入することをおすすめします。
- ロード バランシング - ロード バランサーによって実行され、サービス活動を保護するために複数のサーバー間でアプリケーションまたはネットワークトラフィックを分散し、ワークロードを複数のサーバー間で分散するプロセスです。これにより、クラスター化されたサーバー上で Bot のアクティビティを継続できます。
-
データベース - データベースは独自の組み込みフェールオーバーを使用してデータを保護します。これにより、データベースのデータが確実に復旧されます。
- HA クラスター間で、データセンター内のプライマリ (アクティブ) とセカンダリ (パッシブ) のクラスター化された Microsoft SQL Server インスタンス間の同期レプリケーションを設定します。これにより、データベース ノードに障害が発生した場合に一貫性が確保されます。
必要とされる HA 同期レプリケーションのために、以下のいずれかを設定します。
- レプリカを SQL Server Always On の同期コミット モードの可用性グループにバックアップ
- SQL からサーバー データベースへのミラーリング
- DR サイト間で、プライマリ (本番) DR サイトから、セカンダリ (復旧) DR サイト (プライマリ DR サイトから地理的に離れた場所にあるサイト) への非同期レプリケーションを提供するようにデータベースを設定します。
- HA クラスター間で、データセンター内のプライマリ (アクティブ) とセカンダリ (パッシブ) のクラスター化された Microsoft SQL Server インスタンス間の同期レプリケーションを設定します。これにより、データベース ノードに障害が発生した場合に一貫性が確保されます。
シナリオの一例
同じクラスター内のすべての IQ Bot インスタンスを、同じデータベース ファイルとリポジトリ ファイルにポイントさせます。これは複数のサーバー間でデータを共有し、クラスター内の IQ Bot サーバー全体でデータの整合性を維持するために必要です。
HA および DR の導入モデル
HA または DR、あるいはその両方で IQ Bot が保護されていることを確実にするために、次に説明された導入モデルに従ってデータセンターを設定します。
HA の導入要件
- IQ Bot を複数のサーバーにインストールします。
- ロードバランサーを介して IQ Bot にアクセスします。
- IQ Bot サーバー間で RabbitMQ v3.8.18 の同期ポートを開きます。
- 高可用性モードで Microsoft SQL Server を構成します。
HA および DR のインストールに関する構成要件
-
IQ Bot インストーラーはクラスターのインストールを直接サポートしません。クラスターを設定するには、次の操作を行います。
- 各アプリケーションのサーバーノードでインストーラーを実行します。
- アクセス ロールの
Everyone
を使用してoutput folder
を共有します。 - インストール後に、適切なコマンド ライン引数を指定して
messagequeue_cluster_configuration.bat
を実行します。
- 高可用性構成で IQ Bot を構成します。
- 次のファイアウォール ポートを開きます。4369 と 25672。
- クラスター内のすべての IQ Bot ノードに RabbitMQ v3.8.18 をインストールします。
IQ Bot がインストールされた最初のノードがプライマリ RabbitMQ v3.8.18 ノードになります。プライマリ ノードのホスト名は、RabbitMQ v3.8.18 クラスターを設定するために使用されます。
- トラフィックをすべての IQ Botサーバーノードに分散するには、ロードバランサーが必要です。
- Microsoft SQL Server を高可用性向けに設定します。Microsoft SQL Server の [常にオン] オプションを使用します。
- RabbitMQ v3.8.18 の特定のインストールについては、RabbitMQ v3.8.18 ドキュメントをご覧ください。
HA および DR の既知の制限事項
- IQ Bot インスタンスの可用性を検出するため、ロード バランサーは定期的に PING を送信、接続を試行、ならびにリクエストを送信して IQ Bot インスタンスをテストする必要があります。これらのテストをヘルスチェックと呼びます。
- ヘルスチェックでは、RabbitMQ v3.8.18 インスタンスの可用性は検証されません。