このトピックでは、ApsaraDB for MongoDB インスタンス用のノード障害処理メカニズムについて説明します。

スタンドアロンインスタンス

スタンドアロンインスタンスのノードは 1 つです。 そのため、ノードに障害が発生した場合、システムはノードのトラブルシューティングを行います。 トラブルシューティング中、関連するサービスは利用できません。
スタンドアロンインスタンスは、テスト、トレーニングおよび非コアビジネスシナリオに適用できます。 アプリケーションが本番環境にある場合、レプリカセットまたはシャードクラスターインスタンスを使用して、高可用性 (HA) を確保することを推奨します。

レプリカセットインスタンス

図 1. レプリカセットインスタンスのアーキテクチャ
レプリカセットインスタンスでは、複数のノードを使用します。 ノードの 1 つに障害が発生しても、システムは、中断することなくセカンダリノードまたは非表示ノードに切り替えてから、障害のあるノードのトラブルシューティングを行います。 この処理は、ユーザーによる操作を必要としません。 処理中に、30 秒未満の一時的な接続エラーが発生する場合があります。 一時的な接続エラーが発生しても、アプリケーションがレプリカセットインスタンスに自動的に再接続できるよう設定しておくことを推奨します。
アプリケーションが本番環境にある場合、プライマリノードの接続文字列を使用せずに、接続文字列 URI を使用してアプリケーションをレプリカセットインスタンスに接続することを推奨します。 接続文字列 URI を使用すると、インスタンスのノードに障害が発生した場合でも、アプリケーションの読み取り/書き込み操作を引き続き使用できます。 詳細については、「レプリカセットインスタンスの接続情報の取得」をご参照ください。

シャードクラスターインスタンス

図 2. シャーディングされたクラスターインスタンスのアーキテクチャ
シャードクラスターインスタンスでは、シャードノードと Configserver ノードで 3 ノードのレプリカセットアーキテクチャを使用します。 ノードに障害が発生した場合、システムは中断することなく非表示ノードに切り替え、障害が発生したノードのトラブルシューティングを行います。 この処理は、ユーザーによる操作を必要としません。 処理中に、30 秒未満の一時的な接続エラーが発生する場合があります。 一時的な接続エラーが発生しても、アプリケーションがシャーディングされたクラスターインスタンスに自動的に再接続できるよう設定しておくことを推奨します。
  • mongos ノードは単一ノードアーキテクチャを使用します。 mongos ノードに障害が発生した場合、関連するサービスは利用できなくなります。
  • アプリケーションが本番環境にある場合、mongos ノードの接続文字列を使用せずに、接続文字列 URI を使用してアプリケーションをシャードクラスターインスタンスに接続することを推奨します。 接続文字列 URI を使用すると、接続された mongos ノードに障害が発生した場合、クライアントは標準ステータスで mongos ノードにリクエストを自動的にリダイレクトします。 詳細については、「ApsaraDB for MongoDB インスタンスへの接続」をご参照ください。